piral-tracker
Version:
Plugin for registering always-on components in Piral.
2 lines (1 loc) • 1.82 kB
JavaScript
var piralTracker=(()=>{var P=Object.create;var p=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var k=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var T=(r,e)=>{for(var t in e)p(r,t,{get:e[t],enumerable:!0})},l=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of b(e))!h.call(r,i)&&i!==t&&p(r,i,{get:()=>e[i],enumerable:!(o=d(e,i))||o.enumerable});return r};var A=(r,e,t)=>(t=r!=null?P(C(r)):{},l(e||!r||!r.__esModule?p(t,"default",{value:r,enumerable:!0}):t,r)),G=r=>l(p({},"__esModule",{value:!0}),r);var K={};T(K,{Tracker:()=>u,createTrackerApi:()=>w});var f={};T(f,{registerTracker:()=>R,unregisterTracker:()=>S});var g=k("piral-core");function R(r,e,t){r.dispatch(o=>({...o,registry:{...o.registry,trackers:(0,g.withKey)(o.registry.trackers,e,t)}}))}function S(r,e){r.dispatch(t=>({...t,registry:{...t.registry,trackers:(0,g.withoutKey)(t.registry.trackers,e)}}))}var a=k("piral-core");function w(r={}){return e=>(e.defineActions(f),(t,o)=>{let i=o.name,y=0;return{registerTracker(c,s){typeof c!="string"&&(s=c,c=y++);let x=(0,a.buildName)(i,c);return e.registerTracker(x,{pilet:i,component:(0,a.withApi)(e,s,t,"tracker")}),()=>t.unregisterTracker(c)},unregisterTracker(c){let s=(0,a.buildName)(i,c);e.unregisterTracker(s)}}})}var n=A(k("react")),m=k("piral-core"),u=()=>{let r=(0,m.useGlobalState)(e=>e.registry.trackers);return n.createElement(n.Fragment,null,Object.keys(r).map(e=>{let t=r[e].component;return n.createElement(t,{key:e})}))};u.displayName="Tracker";return G(K);})();