diff --git a/integrations/solid/src/__internal__/core/CoreProvider.tsx b/integrations/solid/src/__internal__/core/CoreProvider.tsx index 3fefa169e..d5dc7e586 100644 --- a/integrations/solid/src/__internal__/core/CoreProvider.tsx +++ b/integrations/solid/src/__internal__/core/CoreProvider.tsx @@ -13,6 +13,7 @@ export const CoreStateContext = createContext<{ export interface CoreProviderProps { coreStore: CoreStore; + transition: boolean; children: JSXElement; } export const CoreProvider: Component = (props) => { @@ -20,9 +21,10 @@ export const CoreProvider: Component = (props) => { const [pending, startTransition] = useTransition(); props.coreStore.subscribe(() => { - startTransition(() => { + const update = () => setStack(reconcile(props.coreStore.actions.getStack(), { merge: true })); - }); + if (props.transition) startTransition(update); + else update(); }); return ( diff --git a/integrations/solid/src/future/StackComponentType.ts b/integrations/solid/src/future/StackComponentType.ts index 0f59b3b23..3037e26d8 100644 --- a/integrations/solid/src/future/StackComponentType.ts +++ b/integrations/solid/src/future/StackComponentType.ts @@ -3,4 +3,5 @@ import type { Component } from "solid-js"; export type StackComponentType = Component<{ initialContext?: any; initialLoaderData?: any; + transition?: boolean; }>; diff --git a/integrations/solid/src/future/stackflow.tsx b/integrations/solid/src/future/stackflow.tsx index f9c35fdce..0c550244d 100644 --- a/integrations/solid/src/future/stackflow.tsx +++ b/integrations/solid/src/future/stackflow.tsx @@ -149,7 +149,10 @@ export function stackflow< return ( - + ; type StackflowPluginsEntry = @@ -197,7 +198,10 @@ export function stackflow( return ( - +