@up-group-ui/react-controls
Version:
Up shared react controls
27 lines (26 loc) • 1.07 kB
TypeScript
import React from 'react';
declare type DefaultProps<P extends object = object> = {
props: P;
};
declare type RenderCallback = (args: ToggleableComponentProps) => JSX.Element;
declare const initialState: {
show: boolean;
};
declare type ToggleableState = Readonly<typeof initialState>;
declare type ToggleableProps<P extends object = object> = Partial<{
children: RenderCallback | React.ReactNode;
render: RenderCallback;
component: React.ComponentType<ToggleableComponentProps<P>>;
stateReducer?: (state: ToggleableState, changes: Partial<ToggleableState>) => ToggleableState;
onToggle?: (on: boolean) => void;
} & DefaultProps<P>>;
export declare type ToggleableComponentProps<P extends object = object> = ReturnType<Toggleable['getApi']> & P;
export declare class Toggleable<T extends object = object> extends React.Component<ToggleableProps<T>, ToggleableState> {
readonly state: ToggleableState;
reset: () => void;
private getApi;
private internalSetState;
render(): JSX.Element;
private toggle;
}
export {};