react-toggle-management
Version:
A lightweight React library for managing toggleable global state—designed to be simpler than Zustand and more focused than Redux.
31 lines (26 loc) • 1.02 kB
TypeScript
import * as react_jsx_runtime from 'react/jsx-runtime';
import React from 'react';
interface ToggleStateContextProviderProps {
children: React.ReactNode;
initialState?: Set<string>;
}
declare function ToggleGlobalProvider({ children, initialState }: ToggleStateContextProviderProps): react_jsx_runtime.JSX.Element;
type ToggleState = Set<string>;
type Listener = () => void;
type ToggleStore = {
getState: () => ToggleState;
subscribe: (listener: Listener) => () => void;
setToggle: (key: string, value: boolean) => void;
toggle: (key: string) => void;
reset: () => void;
};
declare const createToggleStore: (initialState?: ToggleState) => ToggleStore;
declare function useToggle(defaultKey: string): {
isOpen: boolean;
open: (key?: string) => void;
close: (key?: string) => void;
toggle: (key?: string) => void;
reset: (key?: string) => void;
readIsOpen: (key?: string) => boolean;
};
export { ToggleGlobalProvider, type ToggleStore, createToggleStore, useToggle };