From 4b67552a14f0cc63db8b50e92d7881a87d3d92d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 25 Nov 2025 16:11:03 +0100 Subject: [PATCH] Tests --- packages/example/src/routes/query.tsx | 44 ++++++++++++++++----------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/packages/example/src/routes/query.tsx b/packages/example/src/routes/query.tsx index 1ae4659..eab443b 100644 --- a/packages/example/src/routes/query.tsx +++ b/packages/example/src/routes/query.tsx @@ -1,8 +1,8 @@ import { HttpClient, type HttpClientError } from "@effect/platform" -import { Container, Heading, Slider, Text } from "@radix-ui/themes" +import { Button, Container, Flex, Heading, Slider, Text } from "@radix-ui/themes" import { createFileRoute } from "@tanstack/react-router" import { Array, Cause, Chunk, Console, Effect, flow, Match, Option, Schema, Stream } from "effect" -import { Component, ErrorObserver, Query, Subscribable, SubscriptionRef } from "effect-fc" +import { Component, ErrorObserver, Query, Result, Subscribable, SubscriptionRef } from "effect-fc" import { runtime } from "@/runtime" @@ -14,6 +14,8 @@ const Post = Schema.Struct({ }) const ResultView = Component.makeUntraced("Result")(function*() { + const runPromise = yield* Component.useRunPromise() + const [idRef, query] = yield* Component.useOnMount(() => Effect.gen(function*() { const idRef = yield* SubscriptionRef.make(1) const key = Stream.zipLatest(Stream.make("posts" as const), idRef.changes) @@ -51,22 +53,30 @@ const ResultView = Component.makeUntraced("Result")(function*() { return ( - + + - {Match.value(result).pipe( - Match.tag("Running", () => Loading...), - Match.tag("Success", result => <> - {result.value.title} - {result.value.body} - ), - Match.tag("Failure", result => - An error has occured: {result.cause.toString()} - ), - Match.orElse(() => <>), - )} + {Match.value(result).pipe( + Match.tag("Running", () => Loading...), + Match.tag("Success", result => <> + {result.value.title} + {result.value.body} + {Result.isRefreshing(result) && Refreshing...} + ), + Match.tag("Failure", result => + An error has occured: {result.cause.toString()} + ), + Match.orElse(() => <>), + )} + + + + + + ) })