Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 27x 27x 129x 129x 27x 199x 199x 199x 129x 9x 9x 9x 27x | import { Component, ReactNode } from 'react';
export interface ToggleProps {
openByDefault?: boolean;
children(props: any): ReactNode;
}
export interface ToggleState {
isOpen: boolean;
}
export default class Toggle extends Component<ToggleProps, ToggleState> {
constructor(props: ToggleProps) {
super(props);
this.state = { isOpen: !!props.openByDefault };
}
render(): ReactNode {
const { children } = this.props;
const { isOpen } = this.state;
return children({
isOpen,
toggle: this.toggle,
});
}
private toggle: (event: Event) => void = event => {
const { isOpen } = this.state;
event.preventDefault();
this.setState({ isOpen: !isOpen });
};
}
|