Files
blitzkit/packages/website/src/hooks/useLocale.tsx
T
2026-09-22 16:38:30 -05:00

33 lines
753 B
TypeScript

import locales from "@blitzkit/i18n/locales.json";
import { createContext, useContext, type ReactNode } from "react";
const LocaleContext = createContext<{
locale: string;
} | null>(null);
interface LocaleProviderProps extends LocaleAcceptorProps {
children: ReactNode;
}
export function LocaleProvider({ locale, children }: LocaleProviderProps) {
return (
<LocaleContext.Provider value={{ locale: locale ?? locales.default }}>
{children}
</LocaleContext.Provider>
);
}
export function useLocale() {
const context = useContext(LocaleContext);
if (!context) {
throw new Error("useLocale must be used within a LocaleProvider");
}
return context.locale;
}
export interface LocaleAcceptorProps {
locale: string;
}