From d38a5a4afd60bb579351c8ee1a08c7642615ee7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Thu, 7 Aug 2025 04:58:56 +0200 Subject: [PATCH] Example cleanup --- packages/example/src/routes/dev/async-rendering.tsx | 12 ++++++------ packages/example/src/routes/dev/memo.tsx | 8 ++++---- packages/example/src/routes/index.tsx | 4 ++-- packages/example/src/todo/Todo.tsx | 4 ++-- packages/example/src/todo/Todos.tsx | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/example/src/routes/dev/async-rendering.tsx b/packages/example/src/routes/dev/async-rendering.tsx index 4bc8eaa..345eb5e 100644 --- a/packages/example/src/routes/dev/async-rendering.tsx +++ b/packages/example/src/routes/dev/async-rendering.tsx @@ -9,7 +9,7 @@ import * as React from "react" // Generator version -const RouteComponent = Component.make(function* AsyncRendering() { +const RouteComponent = Component.make(Effect.fnUntraced(function* AsyncRendering() { const MemoizedAsyncComponentFC = yield* MemoizedAsyncComponent const AsyncComponentFC = yield* AsyncComponent const [input, setInput] = React.useState("") @@ -25,7 +25,7 @@ const RouteComponent = Component.make(function* AsyncRendering() { ) -}).pipe( +})).pipe( Component.withRuntime(runtime.context) ) @@ -51,7 +51,7 @@ const RouteComponent = Component.make(function* AsyncRendering() { // ) -class AsyncComponent extends Component.make(function* AsyncComponent() { +class AsyncComponent extends Component.make(Effect.fnUntraced(function* AsyncComponent() { const SubComponentFC = yield* SubComponent yield* Effect.sleep("500 millis") // Async operation @@ -63,16 +63,16 @@ class AsyncComponent extends Component.make(function* AsyncComponent() { ) -}).pipe( +})).pipe( Suspense.suspense, Suspense.withOptions({ defaultFallback:

Loading...

}), ) {} class MemoizedAsyncComponent extends Memoized.memo(AsyncComponent) {} -class SubComponent extends Component.make(function* SubComponent() { +class SubComponent extends Component.make(Effect.fnUntraced(function* SubComponent() { const [state] = React.useState(yield* Hooks.useOnce(() => Effect.provide(makeUuid4, GetRandomValues.CryptoRandom))) return {state} -}) {} +})) {} export const Route = createFileRoute("/dev/async-rendering")({ component: RouteComponent diff --git a/packages/example/src/routes/dev/memo.tsx b/packages/example/src/routes/dev/memo.tsx index 42f2f41..107595e 100644 --- a/packages/example/src/routes/dev/memo.tsx +++ b/packages/example/src/routes/dev/memo.tsx @@ -7,7 +7,7 @@ import { Component, Memoized } from "effect-fc" import * as React from "react" -const RouteComponent = Component.make(function* RouteComponent() { +const RouteComponent = Component.make(Effect.fnUntraced(function* RouteComponent() { const [value, setValue] = React.useState("") return ( @@ -21,14 +21,14 @@ const RouteComponent = Component.make(function* RouteComponent() { {yield* Effect.map(MemoizedSubComponent, FC => )} ) -}).pipe( +})).pipe( Component.withRuntime(runtime.context) ) -class SubComponent extends Component.make(function* SubComponent() { +class SubComponent extends Component.make(Effect.fnUntraced(function* SubComponent() { const id = yield* makeUuid4.pipe(Effect.provide(GetRandomValues.CryptoRandom)) return {id} -}) {} +})) {} class MemoizedSubComponent extends Memoized.memo(SubComponent) {} diff --git a/packages/example/src/routes/index.tsx b/packages/example/src/routes/index.tsx index 143b18c..d2cd35c 100644 --- a/packages/example/src/routes/index.tsx +++ b/packages/example/src/routes/index.tsx @@ -10,12 +10,12 @@ import { Hooks } from "effect-fc/hooks" const TodosStateLive = TodosState.Default("todos") export const Route = createFileRoute("/")({ - component: Component.make(function* Index() { + component: Component.make(Effect.fnUntraced(function* Index() { return yield* Todos.pipe( Effect.map(FC => ), Effect.provide(yield* Hooks.useContext(TodosStateLive, { finalizerExecutionMode: "fork" })), ) - }).pipe( + })).pipe( Component.withRuntime(runtime.context) ) }) diff --git a/packages/example/src/todo/Todo.tsx b/packages/example/src/todo/Todo.tsx index 1cf0aed..425e4c4 100644 --- a/packages/example/src/todo/Todo.tsx +++ b/packages/example/src/todo/Todo.tsx @@ -25,7 +25,7 @@ export type TodoProps = ( | { readonly _tag: "edit", readonly index: number } ) -export class Todo extends Component.make(function* Todo(props: TodoProps) { +export class Todo extends Component.make(Effect.fnUntraced(function* Todo(props: TodoProps) { const runtime = yield* Effect.runtime() const state = yield* TodosState @@ -122,6 +122,6 @@ export class Todo extends Component.make(function* Todo(props: TodoProps) { } ) -}).pipe( +})).pipe( Memoized.memo ) {} diff --git a/packages/example/src/todo/Todos.tsx b/packages/example/src/todo/Todos.tsx index b6af608..b0b9871 100644 --- a/packages/example/src/todo/Todos.tsx +++ b/packages/example/src/todo/Todos.tsx @@ -6,7 +6,7 @@ import { Todo } from "./Todo" import { TodosState } from "./TodosState.service" -export class Todos extends Component.make(function* Todos() { +export class Todos extends Component.make(Effect.fnUntraced(function* Todos() { const state = yield* TodosState const [todos] = yield* Hooks.useSubscribeRefs(state.ref) @@ -30,4 +30,4 @@ export class Todos extends Component.make(function* Todos() { ) -}) {} +})) {}