@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
19 lines • 836 B
TypeScript
type Selector<S, R> = (state: S) => R;
type Listener<S> = (state: S, prevState: S) => void;
export interface ReadonlyAsyncStore<S> {
get(): S;
subscribe<R>(selector: Selector<S, R>, listener: Listener<S>): () => void;
unsubscribe(listener: Listener<S>): void;
}
export default class AsyncStore<S> implements ReadonlyAsyncStore<S> {
_state: S;
_listeners: [Selector<S, unknown>, Listener<S>][];
constructor(state: S);
get(): S;
set(cb: (state: S) => S): void;
subscribe<R>(selector: Selector<S, R>, listener: Listener<S>): () => void;
unsubscribe(listener: Listener<S>): void;
}
export declare function useReaction<S, R>(store: ReadonlyAsyncStore<S>, selector: Selector<S, R>, effect: Listener<R>): void;
export declare function useSelector<S, R>(store: ReadonlyAsyncStore<S>, selector: Selector<S, R>): R;
export {};