Server IP : 192.158.238.246 / Your IP : 3.145.57.4 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/store/ |
Upload File : |
import {createContext, ReactNode, useContext, useReducer} from 'react'; import type {Gateway} from '@givewp/forms/types'; import reducer from '@givewp/forms/app/store/reducer'; import {ObjectSchema} from 'joi'; const StoreContext = createContext(null); StoreContext.displayName = 'DonationFormState'; const StoreContextDispatch = createContext(null); StoreContextDispatch.displayName = 'DonationFormStateDispatch'; type PropTypes = { initialState: { gateways: Gateway[]; defaultValues: object; validationSchema: ObjectSchema; }; children: ReactNode; }; /** * @since 3.0.0 */ const DonationFormStateProvider = ({initialState, children}: PropTypes) => { const [state, dispatch] = useReducer(reducer, initialState); return ( <StoreContext.Provider value={state}> <StoreContextDispatch.Provider value={dispatch}>{children}</StoreContextDispatch.Provider> </StoreContext.Provider> ); }; const useDonationFormState = () => useContext<PropTypes['initialState']>(StoreContext); const useDonationFormStateDispatch = () => useContext(StoreContextDispatch); export {DonationFormStateProvider, useDonationFormState, useDonationFormStateDispatch};