Change useSubscribe to useSubscribables
All checks were successful
Lint / lint (push) Successful in 11s

This commit is contained in:
Julien Valverdé
2025-09-24 01:20:21 +02:00
parent 8c1fed7800
commit bfd4b7f073
6 changed files with 9 additions and 9 deletions

View File

@@ -137,7 +137,7 @@ export const useInput: {
]), [self, ...path]) ]), [self, ...path])
const [value, setValue] = yield* Hooks.useRefState(internalValueRef) const [value, setValue] = yield* Hooks.useRefState(internalValueRef)
const [issues] = yield* Hooks.useSubscribe(issuesSubscribable) const [issues] = yield* Hooks.useSubscribables(issuesSubscribable)
yield* Hooks.useFork(() => Stream.runForEach( yield* Hooks.useFork(() => Stream.runForEach(
internalValueRef.changes.pipe( internalValueRef.changes.pipe(

View File

@@ -12,5 +12,5 @@ export * from "./useRefFromState.js"
export * from "./useRefState.js" export * from "./useRefState.js"
export * from "./useScope.js" export * from "./useScope.js"
export * from "./useStreamFromReactiveValues.js" export * from "./useStreamFromReactiveValues.js"
export * from "./useSubscribe.js" export * from "./useSubscribables.js"
export * from "./useSubscribeStream.js" export * from "./useSubscribeStream.js"

View File

@@ -5,7 +5,7 @@ import { useCallbackSync } from "../useCallbackSync.js"
import { useFork } from "../useFork.js" import { useFork } from "../useFork.js"
import { useOnce } from "../useOnce.js" import { useOnce } from "../useOnce.js"
import { useRefState } from "../useRefState.js" import { useRefState } from "../useRefState.js"
import { useSubscribe } from "../useSubscribe.js" import { useSubscribables } from "../useSubscribables.js"
export namespace useOptionalInput { export namespace useOptionalInput {
@@ -101,7 +101,7 @@ export const useOptionalInput: {
[options.schema, options.ref, internalRef, enabledRef], [options.schema, options.ref, internalRef, enabledRef],
) )
const [enabled] = yield* useSubscribe(enabledRef) const [enabled] = yield* useSubscribables(enabledRef)
const [value, setValue] = yield* useRefState(internalRef) const [value, setValue] = yield* useRefState(internalRef)
return { value, setValue, enabled, setEnabled, error } return { value, setValue, enabled, setEnabled, error }
}) })

View File

@@ -4,7 +4,7 @@ import { useFork } from "./useFork.js"
import { useOnce } from "./useOnce.js" import { useOnce } from "./useOnce.js"
export const useSubscribe: { export const useSubscribables: {
<const T extends readonly Subscribable.Subscribable<any, any, any>[]>( <const T extends readonly Subscribable.Subscribable<any, any, any>[]>(
...elements: T ...elements: T
): Effect.Effect< ): Effect.Effect<

View File

@@ -6,7 +6,7 @@ import { Box, Button, Flex, IconButton } from "@radix-ui/themes"
import { GetRandomValues, makeUuid4 } from "@typed/id" import { GetRandomValues, makeUuid4 } from "@typed/id"
import { Chunk, DateTime, Effect, Match, Option, Ref, Runtime, Schema, Stream, SubscriptionRef } from "effect" import { Chunk, DateTime, Effect, Match, Option, Ref, Runtime, Schema, Stream, SubscriptionRef } from "effect"
import { Component, Memo } from "effect-fc" import { Component, Memo } from "effect-fc"
import { useMemo, useOnce, useSubscribe } from "effect-fc/hooks" import { useMemo, useOnce, useSubscribables } from "effect-fc/hooks"
import { Subscribable, SubscriptionSubRef } from "effect-fc/types" import { Subscribable, SubscriptionSubRef } from "effect-fc/types"
import { FaArrowDown, FaArrowUp } from "react-icons/fa" import { FaArrowDown, FaArrowUp } from "react-icons/fa"
import { FaDeleteLeft } from "react-icons/fa6" import { FaDeleteLeft } from "react-icons/fa6"
@@ -51,7 +51,7 @@ export class Todo extends Component.makeUntraced("Todo")(function*(props: TodoPr
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
), [props._tag, props._tag === "edit" ? props.id : undefined]) ), [props._tag, props._tag === "edit" ? props.id : undefined])
const [index, size] = yield* useSubscribe(indexRef, state.sizeSubscribable) const [index, size] = yield* useSubscribables(indexRef, state.sizeSubscribable)
const StringTextAreaInputFC = yield* StringTextAreaInput const StringTextAreaInputFC = yield* StringTextAreaInput
const OptionalDateTimeInputFC = yield* OptionalDateTimeInput const OptionalDateTimeInputFC = yield* OptionalDateTimeInput

View File

@@ -1,14 +1,14 @@
import { Container, Flex, Heading } from "@radix-ui/themes" import { Container, Flex, Heading } from "@radix-ui/themes"
import { Chunk, Console, Effect } from "effect" import { Chunk, Console, Effect } from "effect"
import { Component } from "effect-fc" import { Component } from "effect-fc"
import { useOnce, useSubscribe } from "effect-fc/hooks" import { useOnce, useSubscribables } from "effect-fc/hooks"
import { Todo } from "./Todo" import { Todo } from "./Todo"
import { TodosState } from "./TodosState.service" import { TodosState } from "./TodosState.service"
export class Todos extends Component.makeUntraced("Todos")(function*() { export class Todos extends Component.makeUntraced("Todos")(function*() {
const state = yield* TodosState const state = yield* TodosState
const [todos] = yield* useSubscribe(state.ref) const [todos] = yield* useSubscribables(state.ref)
yield* useOnce(() => Effect.andThen( yield* useOnce(() => Effect.andThen(
Console.log("Todos mounted"), Console.log("Todos mounted"),