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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 3x 3x 3x 1x 1x 3x | import React, { createContext, useReducer, useContext } from "react"; function formReducer(state, action) { switch (action.type) { case "CHANGE_STEP": return { ...state, step: action.payload }; case "RESULT_CHANGE": return { ...state, subtitle: action.payload }; case "TOGGLE_WARNING_BYPASS": return { ...state, bypassWarning: action.payload }; case "USERNAME_CHANGE": return { ...state, username: action.payload }; case "EMAIL_CHANGE": return { ...state, email: action.payload }; case "PASSWORD_CHANGE": return { ...state, password: action.payload }; case "SAGITTA_CHANGE": return { ...state, sagitta: action.payload }; case "HEIGHT_CHANGE": return { ...state, height: action.payload }; case "WEIGHT_CHANGE": return { ...state, weight: action.payload }; case "SUBMIT": return { ...state, isSubmitLoading: true }; case "SUBMISSION_RECIEVED": return { ...state, isSubmitLoading: false, isSubmissionReceived: true }; case "RESET": return { result: "", username: "", email: "", password: "", height: "", weight: "", sagitta: false, isSubmitLoading: false, isSubmissionReceived: false, isSubmissionProcessed: false, bypassWarning: false, }; default: throw new Error(); } } const RegistrationFormContext = createContext(); const regFormState = { step: 1, result: "", username: "", email: "", password: "", height: "", weight: "", sagitta: false, isSubmitLoading: false, isSubmissionReceived: false, isSubmissionProcessed: false, bypassWarning: false, }; export const RegistrationFormProvider = ({ children }) => { const [state, dispatch] = useReducer(formReducer, regFormState); return ( <RegistrationFormContext.Provider value={{ state, dispatch }}> {children} </RegistrationFormContext.Provider> ); }; export const useRegistrationFormState = () => { const context = useContext(RegistrationFormContext); if (context === undefined) { throw new Error( "userRegistrationFormState must be used within a RegistrationFormProvider" ); } return context; } |