"use client";

import { createContext, useContext, useEffect, useState, type ReactNode } from "react";

import { syncPreferredLanguage } from "@/i18n";

const I18nHydrationContext = createContext(false);

/** hydration 完成前保持 DEFAULT_LANGUAGE，与 SSR 一致；完成后再同步用户偏好语言。 */
export function I18nHydrationProvider({ children }: { children: ReactNode }) {
  const [hydrated, setHydrated] = useState(false);

  useEffect(() => {
    syncPreferredLanguage();
    setHydrated(true);
  }, []);

  return (
    <I18nHydrationContext.Provider value={hydrated}>{children}</I18nHydrationContext.Provider>
  );
}

export function useI18nHydrated(): boolean {
  return useContext(I18nHydrationContext);
}