Server IP : 192.158.238.246 / Your IP : 3.139.237.218 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/cwd/plugins/give/src/DonationForms/resources/app/form/MultiStepForm/store/ |
Upload File : |
import {createContext, ReactNode, useContext, useReducer} from 'react'; import reducer from './reducer'; import {StepObject} from '@givewp/forms/app/form/MultiStepForm/types'; const StoreContext = createContext(null); StoreContext.displayName = 'DonationFormMultiStepState'; const StoreContextDispatch = createContext(null); StoreContextDispatch.displayName = 'DonationFormMultiStepStateDispatch'; /** * @since 3.4.0 removed showHeader in favor of DonationFormSettings context * @since 3.0.0 */ export type MultiStepFormContextState = { steps: StepObject[]; currentStep: number; }; /** * @since 3.0.0 */ type PropTypes = { initialState: MultiStepFormContextState; children: ReactNode; }; /** * @since 3.0.0 */ const DonationFormMultiStepStateProvider = ({initialState, children}: PropTypes) => { const [state, dispatch] = useReducer(reducer, initialState); return ( <StoreContext.Provider value={state}> <StoreContextDispatch.Provider value={dispatch}>{children}</StoreContextDispatch.Provider> </StoreContext.Provider> ); }; const useDonationFormMultiStepState = () => useContext<MultiStepFormContextState>(StoreContext); const useDonationFormMultiStepStateDispatch = () => useContext(StoreContextDispatch); export {DonationFormMultiStepStateProvider, useDonationFormMultiStepState, useDonationFormMultiStepStateDispatch};