From c1f8e85fce11c5ad0793d4973d55e23049fddd20 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 30 May 2024 10:48:48 +1200 Subject: [PATCH] useRxRefPropValue --- .changeset/famous-drinks-perform.md | 5 +++++ packages/rx-react/src/index.ts | 16 +++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 .changeset/famous-drinks-perform.md diff --git a/.changeset/famous-drinks-perform.md b/.changeset/famous-drinks-perform.md new file mode 100644 index 0000000..59d5c38 --- /dev/null +++ b/.changeset/famous-drinks-perform.md @@ -0,0 +1,5 @@ +--- +"@effect-rx/rx-react": patch +--- + +useRxRefPropValue diff --git a/packages/rx-react/src/index.ts b/packages/rx-react/src/index.ts index ffcd2e6..013a00f 100644 --- a/packages/rx-react/src/index.ts +++ b/packages/rx-react/src/index.ts @@ -324,15 +324,21 @@ export const useRxSubscribe = ( * @category hooks */ export const useRxRef = (ref: RxRef.ReadonlyRef): A => { - const [value, setValue] = React.useState(ref.value) + const [, setValue] = React.useState(ref.value) React.useEffect(() => ref.subscribe(setValue), [ref]) - return value + return ref.value } /** * @since 1.0.0 * @category hooks */ -export const useRxRefProp = (ref: RxRef.RxRef, prop: K): RxRef.RxRef => { - return React.useMemo(() => ref.prop(prop), [ref, prop]) -} +export const useRxRefProp = (ref: RxRef.RxRef, prop: K): RxRef.RxRef => + React.useMemo(() => ref.prop(prop), [ref, prop]) + +/** + * @since 1.0.0 + * @category hooks + */ +export const useRxRefPropValue = (ref: RxRef.RxRef, prop: K): A[K] => + useRxRef(useRxRefProp(ref, prop))