UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

55 lines (54 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const React = require("react"); const EventManager = require("../utils/EventManager.cjs"); const utils = require("./utils.cjs"); function _interopNamespace(e) { if (e && e.__esModule) return e; const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } }); if (e) { for (const k in e) { if (k !== "default") { const d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: () => e[k] }); } } } n.default = e; return Object.freeze(n); } const React__namespace = /* @__PURE__ */ _interopNamespace(React); const isSyntheticEvent = (event) => { return event.isPropagationStopped !== void 0; }; const useTreeViewInstanceEvents = ({ instance }) => { const [eventManager] = React__namespace.useState(() => new EventManager.EventManager()); const publishEvent = React__namespace.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__namespace.useCallback( (event, handler) => { eventManager.on(event, handler); return () => { eventManager.removeListener(event, handler); }; }, [eventManager] ); utils.populateInstance(instance, { $$publishEvent: publishEvent, $$subscribeEvent: subscribeEvent }); }; exports.useTreeViewInstanceEvents = useTreeViewInstanceEvents;