@j.u.p.iter/react-switcher
Version:
The best react switcher ever
40 lines (39 loc) • 1.14 kB
TypeScript
import * as React from "react";
interface IPseudoEvent {
currentTarget: {
name: string;
value: boolean;
};
}
interface IChildrenProps {
api: {
getOn: SwitcherController["getOn"];
setOn: SwitcherController["setOn"];
resetOn: SwitcherController["resetOn"];
toggleOn: SwitcherController["toggleOn"];
};
}
export interface ISwitcherProps {
onChange: (pseudoEvent?: IPseudoEvent) => void;
children: (childrenProps: IChildrenProps) => React.ReactNode;
name: string;
defaultOn?: boolean;
}
interface IDefaultProps {
defaultOn: boolean;
}
declare type SwitcherWithDefaultProps = ISwitcherProps & IDefaultProps;
interface ISwitcherState {
on: boolean;
}
export declare class SwitcherController extends React.Component<ISwitcherProps, ISwitcherState> {
static defaultProps: IDefaultProps;
getProps: () => SwitcherWithDefaultProps;
state: ISwitcherState;
getOn: () => boolean;
setOn: (on: boolean) => void;
resetOn: () => void;
toggleOn: () => void;
render(): React.ReactNode;
}
export {};