import { useState, useEffect, useMemo } from "react"; import { BookOpen, Smartphone, Monitor } from "lucide-react"; import { DEFAULT_GUIDE_LOCALES } from "../guideContent"; import { KIOSK_EVENT, loadGuideOverrides, mergeGuideLocales } from "../kioskStorage"; import { PAGE_CONTENT_INSET } from "../pageContentInset"; import { useI18n } from "../i18n"; export function GuidePage() { const { lang } = useI18n(); const [guideRev, setGuideRev] = useState(0); useEffect(() => { const h = () => setGuideRev((r) => r + 1); window.addEventListener(KIOSK_EVENT, h); window.addEventListener("storage", h); return () => { window.removeEventListener(KIOSK_EVENT, h); window.removeEventListener("storage", h); }; }, []); const LOCALES = useMemo( () => mergeGuideLocales(DEFAULT_GUIDE_LOCALES, loadGuideOverrides()), [guideRev] ); const locale = useMemo(() => { const hit = LOCALES.find((l) => l.htmlLang === lang); return hit ?? LOCALES[0]!; }, [LOCALES, lang]); useEffect(() => { document.documentElement.lang = locale.htmlLang; return () => { document.documentElement.lang = "zh-CN"; }; }, [locale.htmlLang]); return (