Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. const initialState = { termsAccepted: false, showTerms: false };
  2.  
  3. function reducer(state, action) {
  4. switch (action.type) {
  5. case "toggleShowTerms":
  6. return { ...state, showTerms: !state.showTerms };
  7. case "toggleTermsAccepted":
  8. return { ...state, termsAccepted: !state.termsAccepted };
  9. default:
  10. throw new Error();
  11. }
  12. }
  13.  
  14. const [state, dispatch] = useReducer(reducer, initialState);
  15.  
  16. ...
  17. const openTerms = event => {
  18. event.preventDefault();
  19. dispatch({ type: "toggleShowTerms" });
  20. };
  21.  
  22. const exitTerms = accepted => {
  23. dispatch({ type: "toggleShowTerms" });
  24. dispatch({ type: "toggleTermsAccepted" });
  25. setTimeout(() => handleTermsAndSubmit(), 0);
  26. };
  27.  
  28. const handleTermsAndSubmit = () => {
  29. // state is currently: {showTerms: true, termsAccepted: false}
  30. // I want the exact opposite
  31. }
  32.  
  33. return (
  34. ...
  35. Form onSubmit={openTerms}>
  36. ...
  37. <child show={state.showTerms} exit={exitTerms} />
  38. )
  39.  
  40. const [show, setShow] = useState(props.show);
  41. const [checked, setChecked] = useState(false);
  42.  
  43. useEffect(() => {
  44. setShow(props.show);
  45. }, [props.show]);
  46.  
  47. const toggleChecked = () => {
  48. setChecked(!checked);
  49. };
  50.  
  51. return (
  52. ...
  53. <Button onClick={() => { props.exit(checked);}}>Submit<Button/>
  54. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement