UNPKG

react-aptor

Version:
39 lines (34 loc) 1.36 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["react-aptor"] = {}, global.react)); })(this, (function (exports, react) { 'use strict'; function useAptor(ref, configuration, deps) { if (deps === void 0) { deps = []; } var _useState = react.useState(null), instance = _useState[0], setInstance = _useState[1]; var domRef = react.useRef(null); var instantiate = configuration.instantiate, destroy = configuration.destroy, getAPI = configuration.getAPI, params = configuration.params; react.useEffect(function () { var instanceReference = instantiate(domRef.current, params); setInstance(instanceReference); return function () { if (destroy) destroy(instanceReference, params); }; }, deps); var api = react.useMemo(function () { return getAPI(instance, params); }, [instance]); react.useImperativeHandle(ref, api, [api]); return domRef; } exports["default"] = useAptor; exports.useAptor = useAptor; Object.defineProperty(exports, '__esModule', { value: true }); }));