Add Effect v4 support, Fast Refresh tooling, and revamped docs #56

Merged
Thilawyn merged 133 commits from next into master 2026-07-26 02:32:59 +02:00
Showing only changes of commit cc01e46997 - Show all commits
+9 -6
View File
@@ -46,11 +46,6 @@ export namespace Provider {
export const Provider = <R, ER>( export const Provider = <R, ER>(
{ runtime, children, ...suspenseProps }: Provider.Props<R, ER> { runtime, children, ...suspenseProps }: Provider.Props<R, ER>
): React.ReactNode => { ): React.ReactNode => {
Effect.runSync(Component.useOnChange(
() => Effect.addFinalizer(() => runtime.runtime.disposeEffect),
[runtime],
))
const promise = React.useMemo(() => runtime.runtime.context(), [runtime]) const promise = React.useMemo(() => runtime.runtime.context(), [runtime])
return React.createElement( return React.createElement(
@@ -66,4 +61,12 @@ const ProviderInner = <R, ER>(
readonly promise: Promise<Context.Context<R>> readonly promise: Promise<Context.Context<R>>
readonly children?: React.ReactNode readonly children?: React.ReactNode
} }
): React.ReactNode => React.createElement(runtime.context, { value: React.use(promise) }, children) ): React.ReactNode => {
const context = React.use(promise)
Effect.runSyncWith(context)(Component.useOnChange(
() => Effect.addFinalizer(() => runtime.runtime.disposeEffect),
[runtime],
))
return React.createElement(runtime.context, { value: context }, children)
}