reactjrx 1.50.0 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -194,9 +194,19 @@ function signal(config) {
194
194
  subject
195
195
  };
196
196
  }
197
- const useSignalValue = (signal2, key) => {
198
- return useObserve(signal2.subject, { defaultValue: signal2.getValue(), key });
199
- };
197
+ function useSignalValue(signal2, selector) {
198
+ const selectorOrDefault = selector ?? ((v) => v);
199
+ return useObserve(
200
+ () => signal2.subject.pipe(
201
+ rxjs.map((value) => selectorOrDefault(value)),
202
+ rxjs.distinctUntilChanged()
203
+ ),
204
+ {
205
+ defaultValue: selectorOrDefault(signal2.getValue())
206
+ },
207
+ []
208
+ );
209
+ }
200
210
  const normalizeStore = (store) => {
201
211
  if (!store || typeof store !== "object") {
202
212
  return void 0;
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => {
5
5
  return value;
6
6
  };
7
7
  import { useRef, useMemo, useCallback, useSyncExternalStore, useEffect, createContext, memo, useContext } from "react";
8
- import { distinctUntilChanged, tap, finalize, catchError, EMPTY, Subject, identity, BehaviorSubject, of, zip, map, merge, throttleTime, asyncScheduler, switchMap, from, defer, iif, timer, throwError, scan, take, startWith, combineLatest, first, takeUntil, filter, concatMap as concatMap$1, mergeMap, fromEvent, skip, withLatestFrom, retry, shareReplay, endWith, delay, share, pairwise, NEVER, takeWhile } from "rxjs";
8
+ import { distinctUntilChanged, tap, finalize, catchError, EMPTY, Subject, identity, BehaviorSubject, map, of, zip, merge, throttleTime, asyncScheduler, switchMap, from, defer, iif, timer, throwError, scan, take, startWith, combineLatest, first, takeUntil, filter, concatMap as concatMap$1, mergeMap, fromEvent, skip, withLatestFrom, retry, shareReplay, endWith, delay, share, pairwise, NEVER, takeWhile } from "rxjs";
9
9
  import { retryWhen, concatMap, tap as tap$1 } from "rxjs/operators";
10
10
  import { jsxs, jsx } from "react/jsx-runtime";
11
11
  const useLiveRef = (value) => {
@@ -192,9 +192,19 @@ function signal(config) {
192
192
  subject
193
193
  };
194
194
  }
195
- const useSignalValue = (signal2, key) => {
196
- return useObserve(signal2.subject, { defaultValue: signal2.getValue(), key });
197
- };
195
+ function useSignalValue(signal2, selector) {
196
+ const selectorOrDefault = selector ?? ((v) => v);
197
+ return useObserve(
198
+ () => signal2.subject.pipe(
199
+ map((value) => selectorOrDefault(value)),
200
+ distinctUntilChanged()
201
+ ),
202
+ {
203
+ defaultValue: selectorOrDefault(signal2.getValue())
204
+ },
205
+ []
206
+ );
207
+ }
198
208
  const normalizeStore = (store) => {
199
209
  if (!store || typeof store !== "object") {
200
210
  return void 0;
@@ -20,4 +20,5 @@ export interface Signal<S = undefined, R = undefined, K = undefined> {
20
20
  }
21
21
  export declare function signal<T = undefined>(config: Config<T, string>): Signal<T, T, string>;
22
22
  export declare function signal<T = undefined>(config: Config<T, undefined>): Signal<T, T>;
23
+ export type SignalValue<S extends Signal<any, any, any>> = ReturnType<S["getValue"]>;
23
24
  export {};
@@ -1,2 +1,3 @@
1
1
  import { type Signal } from "./signal";
2
- export declare const useSignalValue: <S, K>(signal: Signal<S, S, K>, key?: string) => S;
2
+ export declare function useSignalValue<S, K, L>(signal: Signal<S, S, K>, selector: (value: S) => L): L;
3
+ export declare function useSignalValue<S, K>(signal: Signal<S, S, K>): S;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "reactjrx",
3
3
  "private": false,
4
- "version": "1.50.0",
4
+ "version": "1.52.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"