Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const initialState = { termsAccepted: false, showTerms: false };
- function reducer(state, action) {
- switch (action.type) {
- case "toggleShowTerms":
- return { ...state, showTerms: !state.showTerms };
- case "toggleTermsAccepted":
- return { ...state, termsAccepted: !state.termsAccepted };
- default:
- throw new Error();
- }
- }
- const [state, dispatch] = useReducer(reducer, initialState);
- ...
- const openTerms = event => {
- event.preventDefault();
- dispatch({ type: "toggleShowTerms" });
- };
- const exitTerms = accepted => {
- dispatch({ type: "toggleShowTerms" });
- dispatch({ type: "toggleTermsAccepted" });
- setTimeout(() => handleTermsAndSubmit(), 0);
- };
- const handleTermsAndSubmit = () => {
- // state is currently: {showTerms: true, termsAccepted: false}
- // I want the exact opposite
- }
- return (
- ...
- Form onSubmit={openTerms}>
- ...
- <child show={state.showTerms} exit={exitTerms} />
- )
- const [show, setShow] = useState(props.show);
- const [checked, setChecked] = useState(false);
- useEffect(() => {
- setShow(props.show);
- }, [props.show]);
- const toggleChecked = () => {
- setChecked(!checked);
- };
- return (
- ...
- <Button onClick={() => { props.exit(checked);}}>Submit<Button/>
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement