UNPKG

substate

Version:

Pub/Sub pattern with State Management

32 lines 1.48 kB
import type { TState } from '../../core/Substate/interfaces'; import type { ISubstate } from '../../core/Substate/Substate.interface'; import type { StateSelector, StringSelector } from './types'; type State = TState; /** * React hook for subscribing to Substate store changes with optional selector * * @param store - The Substate store instance * @param selector - Optional selector function or string for nested property access * @returns Selected state value or entire state if no selector provided * * @example * // Define your state type * interface AppState { * count: number; * user: { name: string; age: number }; * } * * // Get entire state * const state = useSubstate(store); // Returns AppState * * // Get specific property with function selector * const count = useSubstate(store, state => state.count); // Returns number * * // Get nested property with string selector * const userName = useSubstate(store, 'user.name'); // Returns unknown */ declare function useSubstate<TSubstateState extends State = State>(store: ISubstate<TSubstateState>): TSubstateState; declare function useSubstate<TSubstateState extends State = State, TReturn = unknown>(store: ISubstate<TSubstateState>, selector: StateSelector<TSubstateState, TReturn>): TReturn; declare function useSubstate<TSubstateState extends State = State>(store: ISubstate<TSubstateState>, selector: StringSelector): unknown; export { useSubstate }; //# sourceMappingURL=useSubstate.d.ts.map