react-global-state-hooks
Version:
This is a package to easily handling global-state across your react components No-redux, No-context.
24 lines (23 loc) • 1.97 kB
TypeScript
import { BaseMetadata, StateHook, StateSetter, ActionCollectionConfig, ActionCollectionResult, GlobalStoreCallbacks, CustomGlobalHookBuilderParams } from 'react-hooks-global-states/types';
import { LocalStorageConfig } from './types';
export interface CustomCreateGlobalState<TCustomConfig extends BaseMetadata | unknown, InheritMetadata extends BaseMetadata | unknown = BaseMetadata> {
<State>(state: State): StateHook<State, StateSetter<State>, BaseMetadata>;
<State, Metadata extends BaseMetadata | unknown, ActionsConfig extends ActionCollectionConfig<State, InheritMetadata & Metadata> | null | {}, PublicStateMutator = keyof ActionsConfig extends never | undefined ? StateSetter<State> : ActionCollectionResult<State, InheritMetadata & Metadata, NonNullable<ActionsConfig>>>(state: State, args: {
name?: string;
metadata?: Metadata;
callbacks?: GlobalStoreCallbacks<State, InheritMetadata & Metadata>;
actions?: ActionsConfig;
config?: TCustomConfig;
localStorage?: LocalStorageConfig;
}): StateHook<State, PublicStateMutator, InheritMetadata & Metadata>;
<State, Metadata extends BaseMetadata | unknown, ActionsConfig extends Readonly<ActionCollectionConfig<State, InheritMetadata & Metadata>>>(state: State, args: {
name?: string;
metadata?: Metadata;
callbacks?: GlobalStoreCallbacks<State, InheritMetadata & Metadata>;
actions: ActionsConfig;
config?: TCustomConfig;
localStorage?: LocalStorageConfig;
}): StateHook<State, ActionCollectionResult<State, InheritMetadata & Metadata, ActionsConfig>, InheritMetadata & Metadata>;
}
export declare const createCustomGlobalState: <TCustomConfig extends unknown, InheritMetadata extends unknown = BaseMetadata>({ onInitialize, onChange, }: CustomGlobalHookBuilderParams<TCustomConfig, InheritMetadata>) => CustomCreateGlobalState<TCustomConfig, InheritMetadata>;
export default createCustomGlobalState;