21
packages/example/src/todos/views/VTodos.tsx
Normal file
21
packages/example/src/todos/views/VTodos.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
import { Effect, Stream } from "effect"
|
||||
import { Reffuse } from "../reffuse"
|
||||
import { TodosState } from "../services"
|
||||
|
||||
|
||||
export function VTodos() {
|
||||
|
||||
// Sync changes to the todos with the local storage
|
||||
Reffuse.useFork(TodosState.TodosState.pipe(
|
||||
Effect.flatMap(state =>
|
||||
Stream.runForEach(state.todos, () => state.saveToLocalStorage)
|
||||
)
|
||||
))
|
||||
|
||||
const todosRef = Reffuse.useMemo(TodosState.TodosState.pipe(Effect.map(state => state.todos)))
|
||||
const [todos] = Reffuse.useRefState(todosRef)
|
||||
|
||||
|
||||
return <></>
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user