UNPKG

@guanghechen/react-viewmodel

Version:
29 lines (21 loc) 1.49 kB
import { IComputed, IImmutableCollection, IObservableCollection, IViewModel, IState } from '@guanghechen/viewmodel'; export * from '@guanghechen/viewmodel'; import { IObservableKey } from '@guanghechen/observable'; declare function useComputed<T>(computed$: IComputed<T>): T; declare function useObserveKey<K, V, C extends IImmutableCollection<K, V>>(collection: IObservableCollection<K, V, C>, key: K): V | undefined; declare function useObserveSignal<M extends IViewModel, K extends IObservableKey<M>>(viewmodel: M, keys: K[]): number; type ISetState<T> = (patch: (prev: T) => T) => void; type IUpdateState<T> = T | ISetState<T>; declare function useStateValue<T>(state$: IState<T>): T; declare function useSetState<T>(state$: IState<T>): ISetState<T>; declare function useState<T>(state$: IState<T>): [T, ISetState<T>]; declare function useReactState<T>(state$: IState<T>): [T, IUpdateState<T>]; declare function useToggleState(state$: IState<boolean>): () => void; declare const useSyncExternalStore: <T>(subscribe: (onStoreChange: () => void) => () => void, getSnapshot: () => T, getServerSnapshot?: () => T) => T; type V = IViewModel & { name?: string | null; }; type F<T extends V> = () => T | Promise<T>; declare const useViewModel: <T extends V>(fn: F<T>) => T | null; export { useComputed, useObserveKey, useObserveSignal, useReactState, useSetState, useState, useStateValue, useSyncExternalStore, useToggleState, useViewModel }; export type { ISetState, IUpdateState };