import { useState, useEffect, useMemo } from "react"; import { BookOpen, Smartphone, Monitor } from "lucide-react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs"; import { DEFAULT_GUIDE_LOCALES } from "../guideContent"; import { KIOSK_EVENT, loadGuideOverrides, mergeGuideLocales } from "../kioskStorage"; import { PAGE_CONTENT_INSET } from "../pageContentInset"; export function GuidePage() { const [guideRev, setGuideRev] = useState(0); const [langIdx, setLangIdx] = 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 = LOCALES[langIdx]!; useEffect(() => { document.documentElement.lang = locale.htmlLang; return () => { document.documentElement.lang = "zh-CN"; }; }, [locale.htmlLang]); return (
{ const i = LOCALES.findIndex((l) => l.htmlLang === v); if (i >= 0) setLangIdx(i); }} className="flex min-h-0 w-full min-w-0 flex-1 flex-col gap-3 overflow-hidden sm:gap-4" >

{locale.title}

{LOCALES.map((item) => ( {item.label} ))}
{LOCALES.map((loc, localeIdx) => (

{loc.touchTitle}

    {loc.touchItems.map((line, idx) => (
  • {line}
  • ))}

{loc.softwareTitle}

    {loc.softwareItems.map((line, idx) => (
  • {line}
  • ))}
))}
); }