import { Container, Flex, Heading } from "@radix-ui/themes" import { Chunk, Console, Effect } from "effect" import { Component, Subscribable } from "effect-fc" import { TodosState } from "./TodosState" import { TodoView } from "./TodoView" export class TodosView extends Component.make("TodosView")(function*() { const state = yield* TodosState const [todos] = yield* Subscribable.useSubscribables([state.ref]) yield* Component.useOnMount(() => Effect.andThen( Console.log("Todos mounted"), Effect.addFinalizer(() => Console.log("Todos unmounted")), )) const Todo = yield* TodoView.use return ( Todos {Chunk.map(todos, todo => )} ) }) {}