MCPcopy Create free account
hub / github.com/arctic-cli/interface / createSimpleContext

Function createSimpleContext

packages/ui/src/context/helper.tsx:3–25  ·  view source on GitHub ↗
(input: {
  name: string
  init: ((input: Props) => T) | (() => T)
})

Source from the content-addressed store, hash-verified

1import { createContext, Show, useContext, type ParentProps } from "solid-js"
2
3export function createSimpleContext<T, Props extends Record<string, any>>(input: {
4 name: string
5 init: ((input: Props) => T) | (() => T)
6}) {
7 const ctx = createContext<T>()
8
9 return {
10 provider: (props: ParentProps<Props>) => {
11 const init = input.init(props)
12 return (
13 // @ts-expect-error
14 <Show when={init.ready === undefined || init.ready === true}>
15 <ctx.Provider value={init}>{props.children}</ctx.Provider>
16 </Show>
17 )
18 },
19 use() {
20 const value = useContext(ctx)
21 if (!value) throw new Error(`${input.name} context must be used within a context provider`)
22 return value
23 },
24 }
25}

Callers 2

marked.tsxFile · 0.90
data.tsxFile · 0.90

Calls 1

initMethod · 0.45

Tested by

no test coverage detected