"use client";

import { useAppLocale, useLocaleActions } from "./LocaleProvider";
import type { AppLocale } from "./locale";

export function LocaleSwitcher() {
  const locale = useAppLocale();
  const { setLocale } = useLocaleActions();

  const handleToggle = () => {
    const nextLocale: AppLocale = locale === "en" ? "ko" : "en";
    setLocale(nextLocale);

    try {
      const maxAgeSeconds = 60 * 60 * 24 * 365; // 1 year
      document.cookie = `pb-locale=${nextLocale}; path=/; max-age=${maxAgeSeconds}`;
    } catch {
      // 쿠키 저장 실패는 무시 (로케일 상태는 여전히 컨텍스트에서 유지된다)
    }
  };

  const labelText = locale === "en" ? "EN" : "KO";

  return (
    <div className="fixed bottom-4 right-4 z-50 text-xs">
      <button
        type="button"
        aria-label="Toggle locale"
        className="inline-flex items-center justify-center rounded-full border border-slate-300 bg-white/80 px-2 py-1 text-slate-700 shadow-sm backdrop-blur dark:border-slate-700 dark:bg-slate-900/80 dark:text-slate-100"
        onClick={handleToggle}
      >
        {labelText}
      </button>
    </div>
  );
}

