UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

37 lines (36 loc) 1.04 kB
import * as React from "react"; import { EventManager } from "../utils/EventManager.js"; import { populateInstance } from "./utils.js"; const isSyntheticEvent = (event) => { return event.isPropagationStopped !== void 0; }; const useTreeViewInstanceEvents = ({ instance }) => { 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] ); populateInstance(instance, { $$publishEvent: publishEvent, $$subscribeEvent: subscribeEvent }); }; export { useTreeViewInstanceEvents };