import type { CoreStore, Stack } from "@stackflow/core"; import { createContext } from "react"; import { useDeferredValue, useSyncExternalStore } from "../shims"; export const CoreActionsContext = createContext( null as any, ); export const CoreStateContext = createContext(null as any); export interface CoreProviderProps { coreStore: CoreStore; children: React.ReactNode; } export const CoreProvider: React.FC = ({ coreStore, children, }) => { const stack = useSyncExternalStore( coreStore.subscribe, coreStore.actions.getStack, coreStore.actions.getStack, ); const deferredStack = useDeferredValue(stack); return ( {children} ); }; CoreProvider.displayName = "CoreProvider";