UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

31 lines (30 loc) 963 B
'use client'; import * as React from 'react'; import { EventManager } from '@mui/x-internals/EventManager'; const isSyntheticEvent = event => { return event.isPropagationStopped !== undefined; }; export const useTreeViewInstanceEvents = () => { const [eventManager] = React.useState(() => new EventManager()); const publishEvent = React.useCallback((...args) => { const [name, params, event = {}] = args; event.defaultMuiPrevented = false; if (isSyntheticEvent(event) && event.isPropagationStopped()) { return; } eventManager.emit(name, params, event); }, [eventManager]); const subscribeEvent = React.useCallback((event, handler) => { eventManager.on(event, handler); return () => { eventManager.removeListener(event, handler); }; }, [eventManager]); return { instance: { $$publishEvent: publishEvent, $$subscribeEvent: subscribeEvent } }; }; useTreeViewInstanceEvents.params = {};