diff --git a/index.d.ts b/index.d.ts index 55a5301..4a1dc6a 100644 --- a/index.d.ts +++ b/index.d.ts @@ -6,10 +6,6 @@ type StoreKeys = T extends { setKey: (k: infer K, v: any) => unknown } : never export interface UseStoreOptions { - /** - * Will re-render components only on specific key changes. - */ - keys?: StoreKeys[] /** * @default * ```ts @@ -17,6 +13,11 @@ export interface UseStoreOptions { * ``` */ deps?: DependencyList + + /** + * Will re-render components only on specific key changes. + */ + keys?: StoreKeys[] } /** diff --git a/index.js b/index.js index 26549b6..de565de 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,11 @@ import { listenKeys } from 'nanostores' import { useCallback, useRef, useSyncExternalStore } from 'react' +let emit = (snapshotRef, onChange) => value => { + snapshotRef.current = value + onChange() +} + export function useStore(store, { keys, deps = [store, keys] } = {}) { let snapshotRef = useRef() snapshotRef.current = store.get() @@ -16,8 +21,3 @@ export function useStore(store, { keys, deps = [store, keys] } = {}) { return useSyncExternalStore(subscribe, get, get) } - -let emit = (snapshotRef, onChange) => value => { - snapshotRef.current = value - onChange() -}