Tests
Lint / lint (push) Successful in 11s

This commit is contained in:
Julien Valverdé
2025-08-17 22:01:15 +02:00
parent fc503a3847
commit baaa3aa844
2 changed files with 67 additions and 3 deletions
+35
View File
@@ -0,0 +1,35 @@
import { TextFieldInput } from "@/lib/TextFieldInput"
import { runtime } from "@/runtime"
import { Container } from "@radix-ui/themes"
import { createFileRoute } from "@tanstack/react-router"
import { Console, Schema, Stream, SubscriptionRef } from "effect"
import { Component, Memo } from "effect-fc"
import { useOnce } from "effect-fc/hooks"
import { useFork } from "effect-fc/hooks/Hooks/useFork"
const IntTextFieldInput = TextFieldInput({ schema: Schema.NumberFromString.pipe(Schema.int()) })
const StringTextFieldInput = TextFieldInput({ schema: Schema.String })
const Input = Component.makeUntraced(function* Input() {
const IntTextFieldInputFC = yield* IntTextFieldInput
const StringTextFieldInputFC = yield* StringTextFieldInput
const intRef = yield* useOnce(() => SubscriptionRef.make(0))
const stringRef = yield* useOnce(() => SubscriptionRef.make(""))
yield* useFork(() => Stream.runForEach(intRef.changes, Console.log), [intRef])
return (
<Container>
<IntTextFieldInputFC ref={intRef} />
<StringTextFieldInputFC ref={stringRef} />
</Container>
)
}).pipe(
Memo.memo,
Component.withRuntime(runtime.context)
)
export const Route = createFileRoute("/dev/input")({
component: Input,
})