import React, { createContext, useContext, useState, ReactNode, useEffect, } from "react"; import { DateType } from "./util/EthiopianDateUtils"; type LocalizationContextProps = { localType: DateType; setLocalType: React.Dispatch>; getLocalMonthName?: (month: number) => string; disableEt?: boolean; disableGregorian?: boolean; disableSwitcher?: boolean; }; const defaultState: LocalizationContextProps = { localType: "EC", setLocalType: () => {}, }; const EtLocalizationContext = createContext(defaultState); export type LocalizationProviderProps = { children: ReactNode; locale?: DateType; getLocalMonthName?: (month: number) => string; disableEt?: boolean; disableGregorian?: boolean; disableSwitcher?: boolean; }; export const EtLocalizationProvider: React.FC = ({ children, locale = "EC", getLocalMonthName, disableEt, disableGregorian, disableSwitcher, }) => { const [localType, setLocalType] = useState(locale); useEffect(() => { setLocalType(locale); }, [locale]); return ( {children} ); }; export const useEtLocalization = () => { const context = useContext(EtLocalizationContext); if (context) return context; const local: DateType = "EC"; return { localType: local, getLocalMonthName: (m: number) => "", disableEt: false, disableGregorian: false, disableSwitcher: false, }; };