From 3bb4490d9eae371606f7d390cd31c7ad56cf0b19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 12 Jul 2025 07:53:56 +0200 Subject: [PATCH] Memo tests --- packages/example/src/routes/dev/memo.tsx | 31 +++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/packages/example/src/routes/dev/memo.tsx b/packages/example/src/routes/dev/memo.tsx index e2e2bdd..aede091 100644 --- a/packages/example/src/routes/dev/memo.tsx +++ b/packages/example/src/routes/dev/memo.tsx @@ -1,16 +1,41 @@ import { runtime } from "@/runtime" +import { Flex, Text, TextField } from "@radix-ui/themes" import { createFileRoute } from "@tanstack/react-router" +import { GetRandomValues, makeUuid4 } from "@typed/id" +import { Effect } from "effect" import { Component } from "effect-fc" +import * as React from "react" -const RouteComponent = Component.make(function*() { - return <> +const RouteComponent = Component.make(function* RouteComponent() { + const VSubComponent = yield* Component.useFC(SubComponent) + const VMemoizedSubComponent = yield* Component.useFC(MemoizedSubComponent) + + const [value, setValue] = React.useState("") + + return ( + + setValue(e.target.value)} + /> + + + + + ) }).pipe( Component.withRuntime(runtime.context) ) +const SubComponent = Component.make(function* SubComponent() { + const id = yield* makeUuid4.pipe(Effect.provide(GetRandomValues.CryptoRandom)) + return {id} +}) - +const MemoizedSubComponent = Component.memo(SubComponent) +console.log(SubComponent) +console.log(MemoizedSubComponent) export const Route = createFileRoute("/dev/memo")({ component: RouteComponent,