import { createContext, useContext, useState } from 'react' import type { PopupFormState } from '#types/PopupFormState' type UsePopupFormManagerResult = ReturnType const PoupFormContext = createContext({ popupForm: {} as PopupFormState | null, setPopupForm: () => { /* empty function */ }, }) function usePopupFormManager(): { popupForm: PopupFormState | null setPopupForm: React.Dispatch> } { const [popupForm, setPopupForm] = useState(null) return { popupForm, setPopupForm } } interface Props { children?: React.ReactNode } export const PopupFormProvider: React.FunctionComponent = ({ children }: Props) => ( {children} ) export const usePopupForm = (): UsePopupFormManagerResult => { const { popupForm, setPopupForm } = useContext(PoupFormContext) return { popupForm, setPopupForm } }