react-native-global-state-hooks
Version:
This is a package to easily handling global-state across your react-native-components No-redux... The library now includes @react-native-async-storage/async-storage to persist your state across sessions... if you want to keep using the old version without
22 lines (21 loc) • 1.43 kB
TypeScript
import type { StateHook, StateSetter, ActionCollectionConfig, ActionCollectionResult, GlobalStoreCallbacks } from "react-hooks-global-states/types";
import { AsyncStorageConfig, BaseMetadata, StateMeta } from "./types";
export interface CreateGlobalState {
<State>(state: State): StateHook<State, StateSetter<State>, BaseMetadata>;
<State, Metadata extends BaseMetadata | unknown, ActionsConfig extends ActionCollectionConfig<State, Metadata> | null | {}, PublicStateMutator = keyof ActionsConfig extends never | undefined ? StateSetter<State> : ActionCollectionResult<State, Metadata, NonNullable<ActionsConfig>>>(state: State, args: {
name?: string;
metadata?: Metadata;
callbacks?: GlobalStoreCallbacks<State, Metadata>;
actions?: ActionsConfig;
asyncStorage?: AsyncStorageConfig;
}): StateHook<State, PublicStateMutator, StateMeta<Metadata>>;
<State, Metadata extends BaseMetadata | unknown, ActionsConfig extends ActionCollectionConfig<State, StateMeta<Metadata>>>(state: State, args: {
name?: string;
metadata?: Metadata;
callbacks?: GlobalStoreCallbacks<State, Metadata>;
actions: ActionsConfig;
asyncStorage?: AsyncStorageConfig;
}): StateHook<State, ActionCollectionResult<State, StateMeta<Metadata>, ActionsConfig>, Metadata>;
}
export declare const createGlobalState: CreateGlobalState;
export default createGlobalState;