subapp-redux
Version:
Electrode subapp redux support
1 lines • 1.25 kB
JavaScript
import React from"react";import{createRoot,hydrateRoot}from"react-dom/client";import{Provider}from"react-redux";import{loadSubApp}from"subapp-web";import{setStoreContainer,getReduxCreateStore}from"./shared";import{jsx as _jsx}from"react/jsx-runtime";export{hotReloadSubApp}from"subapp-web";export{getReduxCreateStore}from"./shared";setStoreContainer(window);export function reduxRenderStart(e){const r=e._store||e.reduxCreateStore(e.initialState),{Component:t,props:o}=e;let n;return e.serverSideRendering?n=hydrateRoot(e.element,_jsx(Provider,{store:r,children:_jsx(t,{...o})})):(n=createRoot(e.element),n.render(_jsx(Provider,{store:r,children:_jsx(t,{...o})}))),{store:r,subappRoot:n}}export function reduxLoadSubApp(e){const r={__redux:!0};return e.reduxCreateStore||(r._genReduxCreateStore="subapp"),loadSubApp(Object.assign(r,e,{reduxCreateStore:getReduxCreateStore(e)}),function(e,r){const t=e._prepared||e.initialState,o=e.reduxCreateStore||this.info.reduxCreateStore,n=this.info.StartComponent||this.info.Component,a=e.props||{},{store:i,subappRoot:p}=reduxRenderStart({_store:e._store,initialState:t,reduxCreateStore:o,Component:n,serverSideRendering:e.serverSideRendering,element:r,props:a});return e._store=i,this.info.subappRoot=p,i})}