@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
55 lines (54 loc) • 1.71 kB
JavaScript
;
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;