diff options
Diffstat (limited to 'packages/ui/src')
| -rw-r--r-- | packages/ui/src/context/helper.tsx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/packages/ui/src/context/helper.tsx b/packages/ui/src/context/helper.tsx index 53f987945..86684c876 100644 --- a/packages/ui/src/context/helper.tsx +++ b/packages/ui/src/context/helper.tsx @@ -3,12 +3,19 @@ import { createContext, createMemo, Show, useContext, type ParentProps, type Acc export function createSimpleContext<T, Props extends Record<string, any>>(input: { name: string init: ((input: Props) => T) | (() => T) + gate?: boolean }) { const ctx = createContext<T>() return { provider: (props: ParentProps<Props>) => { const init = input.init(props) + const gate = input.gate ?? true + + if (!gate) { + return <ctx.Provider value={init}>{props.children}</ctx.Provider> + } + // Access init.ready inside the memo to make it reactive for getter properties const isReady = createMemo(() => { // @ts-expect-error |
