UNPKG

react-aptor

Version:
35 lines (30 loc) 943 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var react = require('react'); 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;