@tanstack/react-store
Advanced tools
@@ -1,2 +0,2 @@ | ||
import { AnyUpdater, Store } from '@tanstack/store'; | ||
import { Derived, Store } from '@tanstack/store'; | ||
export * from '@tanstack/store'; | ||
@@ -7,3 +7,4 @@ /** | ||
export type NoInfer<T> = [T][T extends any ? 0 : never]; | ||
export declare function useStore<TState, TSelected = NoInfer<TState>, TUpdater extends AnyUpdater = AnyUpdater>(store: Store<TState, TUpdater>, selector?: (state: NoInfer<TState>) => TSelected): TSelected; | ||
export declare function useStore<TState, TSelected = NoInfer<TState>>(store: Store<TState, any>, selector?: (state: NoInfer<TState>) => TSelected): TSelected; | ||
export declare function useStore<TState, TSelected = NoInfer<TState>>(store: Derived<TState, any>, selector?: (state: NoInfer<TState>) => TSelected): TSelected; | ||
export declare function shallow<T>(objA: T, objB: T): boolean; |
{ | ||
"name": "@tanstack/react-store", | ||
"version": "0.6.1", | ||
"version": "0.7.0", | ||
"description": "Framework agnostic type-safe store w/ reactive framework adapters", | ||
@@ -45,8 +45,8 @@ "author": "Tanner Linsley", | ||
"dependencies": { | ||
"use-sync-external-store": "^1.2.2", | ||
"@tanstack/store": "0.6.0" | ||
"use-sync-external-store": "^1.4.0", | ||
"@tanstack/store": "0.7.0" | ||
}, | ||
"devDependencies": { | ||
"@types/use-sync-external-store": "^0.0.6", | ||
"@vitejs/plugin-react": "^4.3.3" | ||
"@vitejs/plugin-react": "^4.3.4" | ||
}, | ||
@@ -53,0 +53,0 @@ "peerDependencies": { |
import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector.js' | ||
import type { AnyUpdater, Store } from '@tanstack/store' | ||
import type { Derived, Store } from '@tanstack/store' | ||
@@ -11,10 +11,14 @@ export * from '@tanstack/store' | ||
export function useStore< | ||
TState, | ||
TSelected = NoInfer<TState>, | ||
TUpdater extends AnyUpdater = AnyUpdater, | ||
>( | ||
store: Store<TState, TUpdater>, | ||
export function useStore<TState, TSelected = NoInfer<TState>>( | ||
store: Store<TState, any>, | ||
selector?: (state: NoInfer<TState>) => TSelected, | ||
): TSelected | ||
export function useStore<TState, TSelected = NoInfer<TState>>( | ||
store: Derived<TState, any>, | ||
selector?: (state: NoInfer<TState>) => TSelected, | ||
): TSelected | ||
export function useStore<TState, TSelected = NoInfer<TState>>( | ||
store: Store<TState, any> | Derived<TState, any>, | ||
selector: (state: NoInfer<TState>) => TSelected = (d) => d as any, | ||
) { | ||
): TSelected { | ||
const slice = useSyncExternalStoreWithSelector( | ||
@@ -21,0 +25,0 @@ store.subscribe, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
14907
8.01%181
2.84%