From 44fc6bbbc46e048ffdb2d60f3ea8bfb3426dcbdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 10 May 2025 05:26:15 +0200 Subject: [PATCH] Stream tests --- packages/example/src/routes/tests.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/example/src/routes/tests.tsx b/packages/example/src/routes/tests.tsx index 9b859ea..0e609af 100644 --- a/packages/example/src/routes/tests.tsx +++ b/packages/example/src/routes/tests.tsx @@ -1,8 +1,8 @@ import { R } from "@/reffuse" -import { Button, Flex } from "@radix-ui/themes" +import { Button, Flex, Text } from "@radix-ui/themes" import { createFileRoute } from "@tanstack/react-router" import { GetRandomValues, makeUuid4 } from "@typed/id" -import { Console, Effect, Scope } from "effect" +import { Console, Effect, Option, Scope } from "effect" import { useEffect, useState } from "react" @@ -21,6 +21,9 @@ function RouteComponent() { Effect.tap(v => Effect.sync(() => setUuid(v))) ), []) + const uuidStream = R.useStreamFromReactiveValues([uuid]) + const uuidStreamLatestValue = R.useSubscribeStream(uuidStream) + const scope = R.useScope([uuid]) useEffect(() => Effect.addFinalizer(() => Console.log("Scope cleanup!")).pipe( @@ -32,6 +35,12 @@ function RouteComponent() { return ( + + {Option.match(uuidStreamLatestValue, { + onSome: ([v]) => v, + onNone: () => <>, + })} + ) }