Socket
Socket
Sign inDemoInstall

@stackflow/react

Package Overview
Dependencies
Maintainers
1
Versions
91
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@stackflow/react - npm Package Compare versions

Comparing version 0.15.3 to 0.15.4-alpha.14

dist/activity/makeStepId.d.ts

1

dist/activity/index.d.ts

@@ -5,3 +5,4 @@ export * from "./ActivityComponentType";

export * from "./makeActivityId";
export * from "./makeStepId";
export * from "./useActivity";
export * from "./useActivityParams";

5

dist/core/useCoreActions.d.ts

@@ -1,2 +0,2 @@

import type { PoppedEvent, PushedEvent, ReplacedEvent } from "@stackflow/core/dist/event-types";
import type { PoppedEvent, PushedEvent, ReplacedEvent, StepPoppedEvent, StepPushedEvent, StepReplacedEvent } from "@stackflow/core/dist/event-types";
import type { BaseDomainEvent } from "@stackflow/core/dist/event-types/_base";

@@ -9,2 +9,5 @@ export declare const useCoreActions: () => {

pop: (params?: Omit<PoppedEvent, keyof BaseDomainEvent>) => void;
stepPush: (params: Omit<StepPushedEvent, keyof BaseDomainEvent>) => void;
stepReplace: (params: Omit<StepReplacedEvent, keyof BaseDomainEvent>) => void;
stepPop: (params?: Omit<StepPoppedEvent, keyof BaseDomainEvent>) => void;
};

@@ -9,1 +9,2 @@ export * from "./activity/ActivityComponentType";

export * from "./useActions";
export * from "./useStepActions";

@@ -1,2 +0,2 @@

"use strict";var bt=Object.create;var b=Object.defineProperty,Mt=Object.defineProperties,Nt=Object.getOwnPropertyDescriptor,Ut=Object.getOwnPropertyDescriptors,Ft=Object.getOwnPropertyNames,Y=Object.getOwnPropertySymbols,Ht=Object.getPrototypeOf,tt=Object.prototype.hasOwnProperty,Vt=Object.prototype.propertyIsEnumerable;var Z=(t,o,e)=>o in t?b(t,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[o]=e,m=(t,o)=>{for(var e in o||(o={}))tt.call(o,e)&&Z(t,e,o[e]);if(Y)for(var e of Y(o))Vt.call(o,e)&&Z(t,e,o[e]);return t},k=(t,o)=>Mt(t,Ut(o));var qt=(t,o)=>{for(var e in o)b(t,e,{get:o[e],enumerable:!0})},et=(t,o,e,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of Ft(o))!tt.call(t,p)&&p!==e&&b(t,p,{get:()=>o[p],enumerable:!(a=Nt(o,p))||a.enumerable});return t};var d=(t,o,e)=>(e=t!=null?bt(Ht(t)):{},et(o||!t||!t.__esModule?b(e,"default",{value:t,enumerable:!0}):e,t)),Kt=t=>et(b({},"__esModule",{value:!0}),t);var Zt={};qt(Zt,{stackflow:()=>Yt,useActions:()=>N,useActivity:()=>_t,useActivityParams:()=>Gt,useInitContext:()=>M,useStack:()=>Lt});module.exports=Kt(Zt);var rt=require("react");var ot=require("react"),R=(0,ot.createContext)(null);var _t=()=>(0,rt.useContext)(R);var it=require("react");function Gt(){return(0,it.useContext)(R).params}var at=d(require("react"));var nt=require("react"),F=(0,nt.createContext)({});function M(){return at.default.useContext(F)}var st=require("react");var ct=require("react"),H=(0,ct.createContext)(null);var Lt=()=>(0,st.useContext)(H);var C=d(require("react"));var pt=require("react"),V=(0,pt.createContext)(null);var g=require("@stackflow/core"),l=d(require("react")),Ct=d(require("react-fast-compare"));var ft=d(require("react"));var q=require("react"),mt=d(require("react-fast-compare"));function K(t){let o=(0,q.useRef)(t),e=o.current,a=(0,mt.default)(e,t);return(0,q.useEffect)(()=>{a||(o.current=t)}),a?e:t}var ut=({children:t,value:o})=>ft.default.createElement(R.Provider,{value:K(o)},t);var lt=require("@stackflow/core");function T(){return(0,lt.id)()}var vt=d(require("react"));var dt=({children:t,value:o})=>vt.default.createElement(F.Provider,{value:o},t);var Pt=require("react"),_=(0,Pt.createContext)(null);var yt=d(require("react"));var xt=({children:t,value:o})=>yt.default.createElement(_.Provider,{value:o},t);var kt=require("react");function A(){return(0,kt.useContext)(_)}var At=require("react"),G=(0,At.createContext)(null);var Wt=1e3,jt=Wt/60,St=({transitionDuration:t,initialActivity:o,activities:e,children:a})=>{let p=A(),s=M(),r=(0,l.useMemo)(()=>{let x=new Date().getTime()-t,u=o?(0,g.makeEvent)("Pushed",{activityId:T(),activityName:o({initContext:s}),activityParams:{},eventDate:x,skipEnterActiveState:!1}):null,y=p.reduce((U,j)=>{var Q,X;return(X=(Q=j.overrideInitialPushedEvent)==null?void 0:Q.call(j,{pushedEvent:U}))!=null?X:U},u);!!y&&!!u&&y.id!==u.id&&console.warn(`Stackflow - Some plugin overrides an "initialActivity" option. The "initialActivity" option you set to "${u.activityName}" in the "stackflow" is ignored.`);let S=y;S||console.warn("Stackflow - There is no initial activity. If you want to set the initial activity, add the `initialActivity` option of the `stackflow()` function or add a plugin that sets the initial activity. (e.g. `@stackflow/plugin-history-sync`)");let Bt=Object.keys(e).map(U=>(0,g.makeEvent)("ActivityRegistered",{activityName:U,eventDate:x})),J=[(0,g.makeEvent)("Initialized",{transitionDuration:t,eventDate:x}),...Bt];return S&&J.push(S),J},[]),n=(0,l.useMemo)(()=>(0,g.aggregate)(r,new Date().getTime()),[]),[i,c]=(0,l.useState)(()=>n),f=(0,l.useRef)(r),v=(0,l.useRef)(n),P=(0,l.useCallback)(()=>v.current,[v]),w=(0,l.useCallback)((x,u)=>{let y=[...f.current,(0,g.makeEvent)(x,u)],B=new Date().getTime(),S=(0,g.aggregate)(y,B);c(S),f.current=y,v.current=S},[f,c]);return(0,l.useEffect)(()=>{let x=setInterval(()=>{let u=f.current,y=(0,g.aggregate)(u,new Date().getTime());(0,Ct.default)(i,y)||(c(y),v.current=y),y.globalTransitionState==="idle"&&clearInterval(x)},jt);return()=>{clearInterval(x)}},[f,i,c]),l.default.createElement(G.Provider,{value:i},l.default.createElement(V.Provider,{value:(0,l.useMemo)(()=>({getStack:P,dispatchEvent:w}),[P,w])},a))};var E=d(require("react"));var I=()=>{let t=A(),o=M(),{dispatchEvent:e,getStack:a}=E.default.useContext(V),p=(0,E.useCallback)(c=>{let{isPrevented:f,params:v}=i("PUSHED",c);f||e("Pushed",m({},v))},[e]),s=(0,E.useCallback)(c=>{let{isPrevented:f,params:v}=i("REPLACED",c);f||e("Replaced",m({},v))},[e]),r=(0,E.useCallback)(c=>{let f=c!=null?c:{},{isPrevented:v,params:P}=i("POPPED",f);v||e("Popped",m({},P))},[e]),n=(0,E.useMemo)(()=>({dispatchEvent:e,getStack:a,push:p,replace:s,pop:r}),[e,a,p,s,r]),i=(0,E.useCallback)((c,f)=>{let v=!1,P=m({},f),w=()=>{v=!0},x=u=>{P=m(m({},P),u)};return t.forEach(u=>{var y,B,S;switch(c){case"PUSHED":(y=u.onBeforePush)==null||y.call(u,{actionParams:P,actions:k(m({},n),{preventDefault:w,overrideActionParams:x})});break;case"REPLACED":(B=u.onBeforeReplace)==null||B.call(u,{actionParams:P,actions:k(m({},n),{preventDefault:w,overrideActionParams:x})});break;case"POPPED":(S=u.onBeforePop)==null||S.call(u,{actionParams:P,actions:k(m({},n),{preventDefault:w,overrideActionParams:x})});break;default:break}}),{isPrevented:v,params:P}},[t,o]);return n};var gt=d(require("react"));var D=()=>gt.default.useContext(G);var Et=require("@stackflow/core"),h=require("react");var $t=()=>{let t=A(),o=D(),e=I(),a=(0,h.useCallback)(r=>{t.forEach(n=>{var i;(i=n.onInit)==null||i.call(n,r)})},[]),p=(0,h.useCallback)(({actions:r,effect:n})=>{switch(n._TAG){case"PUSHED":{t.forEach(i=>{var c;return(c=i.onPushed)==null?void 0:c.call(i,{actions:r,effect:n})});break}case"POPPED":{t.forEach(i=>{var c;return(c=i.onPopped)==null?void 0:c.call(i,{actions:r,effect:n})});break}case"REPLACED":{t.forEach(i=>{var c;return(c=i.onReplaced)==null?void 0:c.call(i,{actions:r,effect:n})});break}case"%SOMETHING_CHANGED%":{t.forEach(i=>{var c;return(c=i.onChanged)==null?void 0:c.call(i,{actions:r,effect:n})});break}default:break}},[]);(0,h.useEffect)(()=>{a==null||a({actions:e})},[]);let s=(0,h.useRef)(o);return(0,h.useEffect)(()=>{let r=s.current;(r?(0,Et.produceEffects)(r,o):[]).forEach(i=>{p({actions:e,effect:i})}),s.current=m({},o)},[o]),null},ht=$t;var O=d(require("react"));var L=d(require("react"));var wt=d(require("react"));var Rt=({children:t,value:o})=>wt.default.createElement(H.Provider,{value:K(o)},t);var zt=({activities:t,plugin:o})=>{let e=D(),a=A();return o.render({stack:k(m({},e),{render(p){let s=m(m({},e),p);return{activities:s.activities.map(r=>k(m({},r),{key:r.id,render(n){let i=t[r.name],c=L.default.createElement(i,{params:r.params});return a.forEach(f=>{var v,P;c=(P=(v=f.wrapActivity)==null?void 0:v.call(f,{activity:k(m({},r),{render:()=>c})}))!=null?P:c}),L.default.createElement(Rt,{value:s},L.default.createElement(ut,{key:r.id,value:m(m({},r),n)},c))}}))}}})})},Tt=zt;var Jt=({activities:t})=>{let o=D(),e=A(),a=e.filter(s=>!!s.render);(0,O.useEffect)(()=>{a.length===0&&console.warn(`Stackflow - There is no rendering plugin, so "<Stack />" doesn't render anything. If you want to render some UI, use "@stackflow/plugin-renderer-basic" or add another rendering plugin.`)},[a]);let p=O.default.createElement(O.default.Fragment,null,a.map(s=>O.default.createElement(Tt,{activities:t,key:s.key,plugin:s})));return e.forEach(s=>{var r,n;p=(n=(r=s.wrapStack)==null?void 0:r.call(s,{stack:k(m({},o),{render(){return p}})}))!=null?n:p}),p},It=Jt;var z=d(require("react"));var W=d(require("react"));function $(t){return t?t.animate===void 0||t.animate==null?{skipActiveState:!1}:{skipActiveState:!t.animate}:{skipActiveState:!1}}var Dt,Qt=(Dt=W.default.useTransition)!=null?Dt:()=>[!1,t=>t()];function N(){let t=I(),[o,e]=Qt();return(0,W.useMemo)(()=>({pending:o,push(a,p,s){let r=T();return e(()=>{t.push({activityId:r,activityName:a,activityParams:p,skipEnterActiveState:$(s).skipActiveState})}),{activityId:r}},replace(a,p,s){let r=T();return e(()=>{var n;t.replace({activityId:(n=s==null?void 0:s.activityId)!=null?n:T(),activityName:a,activityParams:p,skipEnterActiveState:$(s).skipActiveState})}),{activityId:r}},pop(a){e(()=>{t.pop({skipExitActiveState:$(a).skipActiveState})})}}),[t.push,t.replace,t.pop,o,e])}var Xt=z.default.forwardRef((t,o)=>{let{dispatchEvent:e,getStack:a}=I(),{push:p,pop:s,replace:r}=N();return z.default.useImperativeHandle(o,()=>({actions:{dispatchEvent:e,getStack:a,push:p,pop:s,replace:r}})),null}),Ot=Xt;function Yt(t){let o=Object.entries(t.activities).reduce((r,[n,i])=>k(m({},r),{[n]:C.default.memo(i)}),{});typeof window!="undefined"&&window.document.documentElement.style.setProperty("--stackflow-transition-duration",`${t.transitionDuration}ms`);let e={current:null},a=r=>`\`<Stack />\` component has not been mounted. Make sure you include \`<Stack />\` within your React tree. Or, make sure you call \`${r}()\` after it is rendered.`;return{Stack:r=>{var i;let n=(0,C.useMemo)(()=>{var c;return((c=t.plugins)!=null?c:[]).flat(1/0).map(f=>f).map(f=>f({initContext:r.initContext}))},[]);return C.default.createElement(dt,{value:(i=r.initContext)!=null?i:{}},C.default.createElement(xt,{value:n},C.default.createElement(St,{activities:o,initialActivity:t.initialActivity,transitionDuration:t.transitionDuration},C.default.createElement(It,{activities:o}),C.default.createElement(ht,null),C.default.createElement(Ot,{ref:e}))))},useFlow:N,actions:{dispatchEvent(r,n){if(!e.current)throw new Error(a("dispatchEvent"));return e.current.actions.dispatchEvent(r,n)},getStack(){if(!e.current)throw new Error(a("getStack"));return e.current.actions.getStack()},push(r,n,i){if(!e.current)throw new Error(a("push"));return e.current.actions.push(r,n,i)},pop(r){if(!e.current)throw new Error(a("pop"));return e.current.actions.pop(r)},replace(r,n,i){if(!e.current)throw new Error(a("replace"));return e.current.actions.replace(r,n,i)}}}}
"use strict";var _t=Object.create;var _=Object.defineProperty,Ht=Object.defineProperties,Kt=Object.getOwnPropertyDescriptor,Lt=Object.getOwnPropertyDescriptors,Vt=Object.getOwnPropertyNames,ot=Object.getOwnPropertySymbols,qt=Object.getPrototypeOf,it=Object.prototype.hasOwnProperty,Gt=Object.prototype.propertyIsEnumerable;var rt=(t,o,e)=>o in t?_(t,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[o]=e,p=(t,o)=>{for(var e in o||(o={}))it.call(o,e)&&rt(t,e,o[e]);if(ot)for(var e of ot(o))Gt.call(o,e)&&rt(t,e,o[e]);return t},S=(t,o)=>Ht(t,Lt(o));var Wt=(t,o)=>{for(var e in o)_(t,e,{get:o[e],enumerable:!0})},nt=(t,o,e,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of Vt(o))!it.call(t,c)&&c!==e&&_(t,c,{get:()=>o[c],enumerable:!(n=Kt(o,c))||n.enumerable});return t};var x=(t,o,e)=>(e=t!=null?_t(qt(t)):{},nt(o||!t||!t.__esModule?_(e,"default",{value:t,enumerable:!0}):e,t)),jt=t=>nt(_({},"__esModule",{value:!0}),t);var ne={};Wt(ne,{stackflow:()=>ie,useActions:()=>K,useActivity:()=>$t,useActivityParams:()=>zt,useInitContext:()=>H,useStack:()=>Jt,useStepActions:()=>L});module.exports=jt(ne);var at=require("react");var st=require("react"),I=(0,st.createContext)(null);var $t=()=>(0,at.useContext)(I);var ct=require("react");function zt(){return(0,ct.useContext)(I).params}var mt=x(require("react"));var pt=require("react"),q=(0,pt.createContext)({});function H(){return mt.default.useContext(q)}var ut=require("react");var ft=require("react"),G=(0,ft.createContext)(null);var Jt=()=>(0,ut.useContext)(G);var h=x(require("react"));var vt=require("react"),W=(0,vt.createContext)(null);var w=require("@stackflow/core"),y=x(require("react")),Rt=x(require("react-fast-compare"));var dt=x(require("react"));var j=require("react"),Pt=x(require("react-fast-compare"));function $(t){let o=(0,j.useRef)(t),e=o.current,n=(0,Pt.default)(e,t);return(0,j.useEffect)(()=>{n||(o.current=t)}),n?e:t}var lt=({children:t,value:o})=>dt.default.createElement(I.Provider,{value:$(o)},t);var yt=require("@stackflow/core");function B(){return(0,yt.id)()}var kt=require("@stackflow/core");function Z(){return(0,kt.id)()}var xt=x(require("react"));var St=({children:t,value:o})=>xt.default.createElement(q.Provider,{value:o},t);var At=require("react"),z=(0,At.createContext)(null);var Et=x(require("react"));var Ct=({children:t,value:o})=>Et.default.createElement(z.Provider,{value:o},t);var ht=require("react");function C(){return(0,ht.useContext)(z)}var Tt=require("react"),J=(0,Tt.createContext)(null);var Qt=1e3,Xt=Qt/60,wt=({transitionDuration:t,initialActivity:o,activities:e,children:n})=>{let c=C(),m=H(),r=(0,y.useMemo)(()=>{let v=new Date().getTime()-t,P=o?[(0,w.makeEvent)("Pushed",{activityId:B(),activityName:o({initContext:m}),activityParams:{},eventDate:v,skipEnterActiveState:!1})]:[],l=c.reduce((R,O)=>{var N,F;return(F=(N=O.overrideInitialEvents)==null?void 0:N.call(O,{initialEvents:R}))!=null?F:R},P);!!l&&!!P&&l!==P&&console.warn(`Stackflow - Some plugin overrides an "initialActivity" option. The "initialActivity" option you set to "${P[0].activityName}" in the "stackflow" is ignored.`);let f=l;f.length===0&&console.warn("Stackflow - There is no initial activity. If you want to set the initial activity, add the `initialActivity` option of the `stackflow()` function or add a plugin that sets the initial activity. (e.g. `@stackflow/plugin-history-sync`)");let V=Object.keys(e).map(R=>(0,w.makeEvent)("ActivityRegistered",{activityName:R,eventDate:v})),M=[(0,w.makeEvent)("Initialized",{transitionDuration:t,eventDate:v}),...V];return f.forEach(R=>{M.push(R)}),M},[]),s=(0,y.useMemo)(()=>(0,w.aggregate)(r,new Date().getTime()),[]),[i,a]=(0,y.useState)(()=>s),d=(0,y.useRef)(r),A=(0,y.useRef)(s),u=(0,y.useCallback)(()=>A.current,[A]),k=(0,y.useCallback)((v,P)=>{let l=[...d.current,(0,w.makeEvent)(v,P)],T=new Date().getTime(),f=(0,w.aggregate)(l,T);a(f),d.current=l,A.current=f},[d,a]);return(0,y.useEffect)(()=>{let v=setInterval(()=>{let P=d.current,l=(0,w.aggregate)(P,new Date().getTime());(0,Rt.default)(i,l)||(a(l),A.current=l),l.globalTransitionState==="idle"&&clearInterval(v)},Xt);return()=>{clearInterval(v)}},[d,i,a]),y.default.createElement(J.Provider,{value:i},y.default.createElement(W.Provider,{value:(0,y.useMemo)(()=>({getStack:u,dispatchEvent:k}),[u,k])},n))};var E=x(require("react"));var g=()=>{let t=C(),o=H(),{dispatchEvent:e,getStack:n}=E.default.useContext(W),c=(0,E.useCallback)(u=>{let{isPrevented:k,params:v}=A("PUSHED",u);k||e("Pushed",p({},v))},[e]),m=(0,E.useCallback)(u=>{let{isPrevented:k,params:v}=A("REPLACED",u);k||e("Replaced",p({},v))},[e]),r=(0,E.useCallback)(u=>{let k=u!=null?u:{},{isPrevented:v,params:P}=A("POPPED",k);v||e("Popped",p({},P))},[e]),s=(0,E.useCallback)(u=>{let{isPrevented:k,params:v}=A("STEP_PUSHED",u);k||e("StepPushed",p({},v))},[e]),i=(0,E.useCallback)(u=>{let{isPrevented:k,params:v}=A("STEP_REPLACED",u);k||e("StepReplaced",p({},v))},[e]),a=(0,E.useCallback)(u=>{let k=u!=null?u:{},{isPrevented:v,params:P}=A("STEP_POPPED",k);v||e("StepPopped",p({},P))},[e]),d=(0,E.useMemo)(()=>({dispatchEvent:e,getStack:n,push:c,replace:m,pop:r,stepPush:s,stepReplace:i,stepPop:a}),[e,n,c,m,r,s,i,a]),A=(0,E.useCallback)((u,k)=>{let v=!1,P=p({},k),l=()=>{v=!0},T=f=>{P=p(p({},P),f)};return t.forEach(f=>{var V,M,R,O,N,F;switch(u){case"PUSHED":(V=f.onBeforePush)==null||V.call(f,{actionParams:P,actions:S(p({},d),{preventDefault:l,overrideActionParams:T})});break;case"REPLACED":(M=f.onBeforeReplace)==null||M.call(f,{actionParams:P,actions:S(p({},d),{preventDefault:l,overrideActionParams:T})});break;case"POPPED":(R=f.onBeforePop)==null||R.call(f,{actionParams:P,actions:S(p({},d),{preventDefault:l,overrideActionParams:T})});break;case"STEP_PUSHED":(O=f.onBeforeStepPush)==null||O.call(f,{actionParams:P,actions:S(p({},d),{preventDefault:l,overrideActionParams:T})});break;case"STEP_REPLACED":(N=f.onBeforeStepReplace)==null||N.call(f,{actionParams:P,actions:S(p({},d),{preventDefault:l,overrideActionParams:T})});break;case"STEP_POPPED":(F=f.onBeforeStepPop)==null||F.call(f,{actionParams:P,actions:S(p({},d),{preventDefault:l,overrideActionParams:T})});break;default:break}}),{isPrevented:v,params:P}},[t,o]);return d};var gt=x(require("react"));var b=()=>gt.default.useContext(J);var Dt=require("@stackflow/core"),D=require("react");var Yt=()=>{let t=C(),o=b(),e=g(),n=(0,D.useCallback)(r=>{t.forEach(s=>{var i;(i=s.onInit)==null||i.call(s,r)})},[]),c=(0,D.useCallback)(({actions:r,effect:s})=>{switch(s._TAG){case"PUSHED":{t.forEach(i=>{var a;return(a=i.onPushed)==null?void 0:a.call(i,{actions:r,effect:s})});break}case"REPLACED":{t.forEach(i=>{var a;return(a=i.onReplaced)==null?void 0:a.call(i,{actions:r,effect:s})});break}case"POPPED":{t.forEach(i=>{var a;return(a=i.onPopped)==null?void 0:a.call(i,{actions:r,effect:s})});break}case"STEP_PUSHED":{t.forEach(i=>{var a;return(a=i.onStepPushed)==null?void 0:a.call(i,{actions:r,effect:s})});break}case"STEP_REPLACED":{t.forEach(i=>{var a;return(a=i.onStepReplaced)==null?void 0:a.call(i,{actions:r,effect:s})});break}case"STEP_POPPED":{t.forEach(i=>{var a;return(a=i.onStepPopped)==null?void 0:a.call(i,{actions:r,effect:s})});break}case"%SOMETHING_CHANGED%":{t.forEach(i=>{var a;return(a=i.onChanged)==null?void 0:a.call(i,{actions:r,effect:s})});break}default:break}},[]);(0,D.useEffect)(()=>{n==null||n({actions:e})},[]);let m=(0,D.useRef)(o);return(0,D.useEffect)(()=>{let r=m.current;(r?(0,Dt.produceEffects)(r,o):[]).forEach(i=>{c({actions:e,effect:i})}),m.current=p({},o)},[o]),null},Ot=Yt;var U=x(require("react"));var Q=x(require("react"));var It=x(require("react"));var Bt=({children:t,value:o})=>It.default.createElement(G.Provider,{value:$(o)},t);var Zt=({activities:t,plugin:o})=>{let e=b(),n=C();return o.render({stack:S(p({},e),{render(c){let m=p(p({},e),c);return{activities:m.activities.map(r=>S(p({},r),{key:r.id,render(s){let i=t[r.name],a=Q.default.createElement(i,{params:r.params});return n.forEach(d=>{var A,u;a=(u=(A=d.wrapActivity)==null?void 0:A.call(d,{activity:S(p({},r),{render:()=>a})}))!=null?u:a}),Q.default.createElement(Bt,{value:m},Q.default.createElement(lt,{key:r.id,value:p(p({},r),s)},a))}}))}}})})},bt=Zt;var te=({activities:t})=>{let o=b(),e=C(),n=e.filter(m=>!!m.render);(0,U.useEffect)(()=>{n.length===0&&console.warn(`Stackflow - There is no rendering plugin, so "<Stack />" doesn't render anything. If you want to render some UI, use "@stackflow/plugin-renderer-basic" or add another rendering plugin.`)},[n]);let c=U.default.createElement(U.default.Fragment,null,n.map(m=>U.default.createElement(bt,{activities:t,key:m.key,plugin:m})));return e.forEach(m=>{var r,s;c=(s=(r=m.wrapStack)==null?void 0:r.call(m,{stack:S(p({},o),{render(){return c}})}))!=null?s:c}),c},Ut=te;var et=x(require("react"));var X=x(require("react"));function tt(t){return t?t.animate===void 0||t.animate==null?{skipActiveState:!1}:{skipActiveState:!t.animate}:{skipActiveState:!1}}var Mt,ee=(Mt=X.default.useTransition)!=null?Mt:()=>[!1,t=>t()];function K(){let t=g(),[o,e]=ee();return(0,X.useMemo)(()=>({pending:o,push(n,c,m){let r=B();return e(()=>{t.push({activityId:r,activityName:n,activityParams:c,skipEnterActiveState:tt(m).skipActiveState})}),{activityId:r}},replace(n,c,m){let r=B();return e(()=>{var s;t.replace({activityId:(s=m==null?void 0:m.activityId)!=null?s:B(),activityName:n,activityParams:c,skipEnterActiveState:tt(m).skipActiveState})}),{activityId:r}},pop(n){e(()=>{t.pop({skipExitActiveState:tt(n).skipActiveState})})}}),[t.push,t.replace,t.pop,o,e])}var Y=x(require("react"));var Nt,oe=(Nt=Y.default.useTransition)!=null?Nt:()=>[!1,t=>t()],L=()=>{let t=g(),[o,e]=oe();return(0,Y.useMemo)(()=>({pending:o,stepPush(n){let c=Z();e(()=>{t.stepPush({stepId:c,stepParams:n})})},stepReplace(n){let c=Z();e(()=>{t.stepReplace({stepId:c,stepParams:n})})},stepPop(){e(()=>{t.stepPop({})})}}),[t.stepPush,t.stepReplace,t.stepPop,o,e])};var re=et.default.forwardRef((t,o)=>{let{dispatchEvent:e,getStack:n}=g(),{push:c,pop:m,replace:r}=K(),{stepPush:s,stepPop:i,stepReplace:a}=L("");return et.default.useImperativeHandle(o,()=>({actions:{dispatchEvent:e,getStack:n,push:c,pop:m,replace:r,stepPush:s,stepPop:i,stepReplace:a}})),null}),Ft=re;function ie(t){let o=Object.entries(t.activities).reduce((r,[s,i])=>S(p({},r),{[s]:h.default.memo(i)}),{});typeof window!="undefined"&&window.document.documentElement.style.setProperty("--stackflow-transition-duration",`${t.transitionDuration}ms`);let e={current:null},n=r=>`\`<Stack />\` component has not been mounted. Make sure you include \`<Stack />\` within your React tree. Or, make sure you call \`${r}()\` after it is rendered.`;return{Stack:r=>{var i;let s=(0,h.useMemo)(()=>{var a;return((a=t.plugins)!=null?a:[]).flat(1/0).map(d=>d).map(d=>d({initContext:r.initContext}))},[]);return h.default.createElement(St,{value:(i=r.initContext)!=null?i:{}},h.default.createElement(Ct,{value:s},h.default.createElement(wt,{activities:o,initialActivity:t.initialActivity,transitionDuration:t.transitionDuration},h.default.createElement(Ut,{activities:o}),h.default.createElement(Ot,null),h.default.createElement(Ft,{ref:e}))))},useFlow:K,useStepFlow:L,actions:{dispatchEvent(r,s){if(!e.current)throw new Error(n("dispatchEvent"));return e.current.actions.dispatchEvent(r,s)},getStack(){if(!e.current)throw new Error(n("getStack"));return e.current.actions.getStack()},push(r,s,i){if(!e.current)throw new Error(n("push"));return e.current.actions.push(r,s,i)},pop(r){if(!e.current)throw new Error(n("pop"));return e.current.actions.pop(r)},replace(r,s,i){if(!e.current)throw new Error(n("replace"));return e.current.actions.replace(r,s,i)},stepPush(r){if(!e.current)throw new Error(n("stepPush"));return e.current.actions.stepPush(r)},stepReplace(r){if(!e.current)throw new Error(n("stepReplace"));return e.current.actions.stepReplace(r)},stepPop(){if(!e.current)throw new Error(n("stepPop"));return e.current.actions.stepPop()}}}}
//# sourceMappingURL=index.js.map

@@ -7,2 +7,3 @@ import type { StackflowPluginActions } from "@stackflow/core";

import type { UseActionsOutputType } from "./useActions";
import type { UseStepActions, UseStepActionsOutputType } from "./useStepActions";
export interface StackProps {

@@ -48,5 +49,9 @@ /**

/**
* Created `useStepFlow()` hooks
*/
useStepFlow: UseStepActions<T>;
/**
* Created action triggers
*/
actions: Pick<StackflowPluginActions, "dispatchEvent" | "getStack"> & Pick<UseActionsOutputType<T>, "push" | "pop" | "replace">;
actions: Pick<StackflowPluginActions, "dispatchEvent" | "getStack"> & Pick<UseActionsOutputType<T>, "push" | "pop" | "replace"> & Pick<UseStepActionsOutputType<{}>, "stepPush" | "stepReplace" | "stepPop">;
};

@@ -53,0 +58,0 @@ /**

@@ -5,6 +5,7 @@ import type { StackflowPluginActions } from "@stackflow/core";

import type { UseActionsOutputType } from "./useActions";
import type { UseStepActionsOutputType } from "./useStepActions";
export declare type StackRefCurrentType<T extends BaseActivities> = {
actions: Pick<StackflowPluginActions, "dispatchEvent" | "getStack"> & Pick<UseActionsOutputType<T>, "push" | "pop" | "replace">;
actions: Pick<StackflowPluginActions, "dispatchEvent" | "getStack"> & Pick<UseActionsOutputType<T>, "push" | "pop" | "replace"> & Pick<UseStepActionsOutputType<{}>, "stepPush" | "stepReplace" | "stepPop">;
};
declare const StackRefManager: React.ForwardRefExoticComponent<React.RefAttributes<StackRefCurrentType<BaseActivities>>>;
export default StackRefManager;
{
"name": "@stackflow/react",
"version": "0.15.3",
"version": "0.15.4-alpha.14+df2a2363",
"license": "MIT",

@@ -30,3 +30,3 @@ "exports": {

"devDependencies": {
"@stackflow/core": "^0.15.1",
"@stackflow/core": "^0.15.2-alpha.33+df2a2363",
"@stackflow/esbuild-config": "^0.15.0",

@@ -53,3 +53,3 @@ "@types/react": "^18.0.9",

},
"gitHead": "3a6532ace70f6738cf90f617e777ae25c367c3b2"
"gitHead": "df2a2363c3e48a6a5fc09a567a66e9d52e956eb6"
}

@@ -5,3 +5,4 @@ export * from "./ActivityComponentType";

export * from "./makeActivityId";
export * from "./makeStepId";
export * from "./useActivity";
export * from "./useActivityParams";

@@ -6,2 +6,5 @@ import type { Effect } from "@stackflow/core";

ReplacedEvent,
StepPoppedEvent,
StepPushedEvent,
StepReplacedEvent,
} from "@stackflow/core/dist/event-types";

@@ -72,2 +75,53 @@ import type { BaseDomainEvent } from "@stackflow/core/dist/event-types/_base";

const stepPush = useCallback(
(params: Omit<StepPushedEvent, keyof BaseDomainEvent>) => {
// eslint-disable-next-line no-use-before-define
const { isPrevented, params: eventParams } = triggerPreEffectHook(
"STEP_PUSHED",
params,
);
if (!isPrevented) {
dispatchEvent("StepPushed", {
...eventParams,
});
}
},
[dispatchEvent],
);
const stepReplace = useCallback(
(params: Omit<StepReplacedEvent, keyof BaseDomainEvent>) => {
// eslint-disable-next-line no-use-before-define
const { isPrevented, params: eventParams } = triggerPreEffectHook(
"STEP_REPLACED",
params,
);
if (!isPrevented) {
dispatchEvent("StepReplaced", {
...eventParams,
});
}
},
[dispatchEvent],
);
const stepPop = useCallback(
(params?: Omit<StepPoppedEvent, keyof BaseDomainEvent>) => {
const initialParams = params ?? {};
// eslint-disable-next-line no-use-before-define
const { isPrevented, params: eventParams } = triggerPreEffectHook(
"STEP_POPPED",
initialParams,
);
if (!isPrevented) {
dispatchEvent("StepPopped", { ...eventParams });
}
},
[dispatchEvent],
);
const coreActions = useMemo(

@@ -80,4 +134,16 @@ () => ({

pop,
stepPush,
stepReplace,
stepPop,
}),
[dispatchEvent, getStack, push, replace, pop],
[
dispatchEvent,
getStack,
push,
replace,
pop,
stepPush,
stepReplace,
stepPop,
],
);

@@ -134,2 +200,32 @@

break;
case "STEP_PUSHED":
plugin.onBeforeStepPush?.({
actionParams,
actions: {
...coreActions,
preventDefault,
overrideActionParams,
},
});
break;
case "STEP_REPLACED":
plugin.onBeforeStepReplace?.({
actionParams,
actions: {
...coreActions,
preventDefault,
overrideActionParams,
},
});
break;
case "STEP_POPPED":
plugin.onBeforeStepPop?.({
actionParams,
actions: {
...coreActions,
preventDefault,
overrideActionParams,
},
});
break;
default:

@@ -136,0 +232,0 @@ break;

@@ -9,1 +9,2 @@ export * from "./activity/ActivityComponentType";

export * from "./useActions";
export * from "./useStepActions";

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc