UNPKG

react-aptor

Version:
39 lines (35 loc) 1.14 kB
System.register(['react'], (function (exports) { 'use strict'; var useState, useRef, useEffect, useMemo, useImperativeHandle; return { setters: [function (module) { useState = module.useState; useRef = module.useRef; useEffect = module.useEffect; useMemo = module.useMemo; useImperativeHandle = module.useImperativeHandle; }], execute: (function () { exports({ default: useAptor, useAptor: useAptor }); function useAptor(ref, configuration, deps = []) { const [instance, setInstance] = useState(null); const domRef = useRef(null); const { instantiate, destroy, getAPI, params } = configuration; useEffect(() => { const instanceReference = instantiate(domRef.current, params); setInstance(instanceReference); return () => { if (destroy) destroy(instanceReference, params); }; }, deps); const api = useMemo(() => getAPI(instance, params), [instance]); useImperativeHandle(ref, api, [api]); return domRef; } }) }; }));