@reffuse/extension-query 0.1.4 #15
@@ -1,6 +1,8 @@
|
|||||||
import { R } from "@/reffuse"
|
import { R } from "@/reffuse"
|
||||||
|
import { Button, Flex, Text } from "@radix-ui/themes"
|
||||||
import { createFileRoute } from "@tanstack/react-router"
|
import { createFileRoute } from "@tanstack/react-router"
|
||||||
import { Stream } from "effect"
|
import { Option, Random, Stream } from "effect"
|
||||||
|
import { useMemo } from "react"
|
||||||
|
|
||||||
|
|
||||||
export const Route = createFileRoute("/streams/pull")({
|
export const Route = createFileRoute("/streams/pull")({
|
||||||
@@ -8,7 +10,14 @@ export const Route = createFileRoute("/streams/pull")({
|
|||||||
})
|
})
|
||||||
|
|
||||||
function RouteComponent() {
|
function RouteComponent() {
|
||||||
const stream = R.useMemo(() => Stream.)
|
const stream = useMemo(() => Stream.repeatEffect(Random.nextInt), [])
|
||||||
|
const [value, pull] = R.usePullStream(stream)
|
||||||
|
const pullNext = R.useCallbackSync(() => pull, [pull])
|
||||||
|
|
||||||
return <div>Hello "/streams/pull"!</div>
|
return (
|
||||||
|
<Flex direction="column" align="center" gap="2">
|
||||||
|
{Option.isSome(value) && <Text>{value.value}</Text>}
|
||||||
|
<Button onClick={pullNext}>Pull next</Button>
|
||||||
|
</Flex>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user