fix : remove unused code

This commit is contained in:
2026-10-08 21:22:14 +07:00 Unverified
parent 5747ddb42c
commit 065099b2b1
2 changed files with 0 additions and 129 deletions
-53
View File
@@ -1,53 +0,0 @@
"use client";
import { ListTreeIcon } from "lucide-react";
import { Button } from "@/components/ui/button";
import {
Drawer,
DrawerClose,
DrawerContent,
DrawerDescription,
DrawerHeader,
DrawerTitle,
DrawerTrigger,
} from "@/components/ui/drawer";
export interface GuideSectionLink {
id: string;
label: string;
}
export function SectionDrawer({ sections }: { sections: GuideSectionLink[] }) {
return (
<div className="lg:hidden">
<Drawer showSwipeHandle>
<DrawerTrigger render={<Button variant="outline" className="w-full" />}>
<ListTreeIcon aria-hidden="true" />
สารบัญหน้านี้
</DrawerTrigger>
<DrawerContent>
<DrawerHeader>
<DrawerTitle>สารบัญหน้านี้</DrawerTitle>
<DrawerDescription>เลือกหัวข้อเพื่อเลื่อนไปยังเนื้อหา</DrawerDescription>
</DrawerHeader>
<nav aria-label="สารบัญบนมือถือ" className="grid gap-1 overflow-y-auto p-4">
{sections.map((section) => (
<DrawerClose
key={section.id}
render={
<a
href={`#${section.id}`}
className="flex min-h-11 items-center rounded-lg px-3 text-left text-sm hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
/>
}
>
{section.label}
</DrawerClose>
))}
</nav>
</DrawerContent>
</Drawer>
</div>
);
}
-76
View File
@@ -1,76 +0,0 @@
"use client";
import { useEffect, useState } from "react";
import { DownloadIcon } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
type InstallEvent = Event & {
prompt: () => Promise<void>;
userChoice: Promise<{ outcome: string }>;
};
export function SiteInstallButton() {
const [open, setOpen] = useState(false);
const [installed, setInstalled] = useState(false);
const [installEvent, setInstallEvent] = useState<InstallEvent | null>(null);
const [busy, setBusy] = useState(false);
const [error, setError] = useState("");
useEffect(() => {
const displayMode = window.matchMedia("(display-mode: standalone)");
const frame = requestAnimationFrame(() => setInstalled(displayMode.matches ||
(navigator as Navigator & { standalone?: boolean }).standalone === true));
const beforeInstall = (event: Event) => {
event.preventDefault();
setInstallEvent(event as InstallEvent);
};
const onInstalled = () => { setInstalled(true); setOpen(false); setInstallEvent(null); };
window.addEventListener("beforeinstallprompt", beforeInstall);
window.addEventListener("appinstalled", onInstalled);
return () => {
cancelAnimationFrame(frame);
window.removeEventListener("beforeinstallprompt", beforeInstall);
window.removeEventListener("appinstalled", onInstalled);
};
}, []);
async function install() {
if (!installEvent || busy) return;
setBusy(true);
setError("");
try {
await installEvent.prompt();
const result = await installEvent.userChoice;
setInstallEvent(null);
if (result.outcome === "accepted") setOpen(false);
} catch { setError("ติดตั้งไม่สำเร็จ กรุณาลองจากเมนูของเบราว์เซอร์"); }
finally { setBusy(false); }
}
if (installed) return null;
return <>
<Button variant="ghost" size="sm" onClick={() => setOpen(true)} aria-label="ติดตั้ง Buzz Guide">
<DownloadIcon data-icon="inline-start" />ติดตั้งแอป
</Button>
<Dialog open={open} onOpenChange={setOpen}>
<DialogContent>
<DialogHeader>
<DialogTitle>ติดตั้ง Buzz Guide</DialogTitle>
<DialogDescription>เพิ่มไกด์ลงหน้าจอหลักเพื่อเปิดอ่านได้สะดวก</DialogDescription>
</DialogHeader>
{!installEvent && <div className="flex flex-col gap-3 text-sm text-muted-foreground">
<p>บน iPhone/iPad เปิดใน Safari แตะปุ่มแชร์ แล้วเลือก “เพิ่มไปยังหน้าจอโฮม”</p>
<p>บน Android หรือคอมพิวเตอร์ เปิดเมนูของเบราว์เซอร์ แล้วเลือก “ติดตั้งแอป” หรือ “เพิ่มไปยังหน้าจอหลัก” หากมีตัวเลือกนี้</p>
</div>}
{error && <p role="alert" className="text-sm text-destructive">{error}</p>}
<DialogFooter>
<Button variant="outline" onClick={() => setOpen(false)}>ปิด</Button>
{installEvent && <Button disabled={busy} onClick={() => void install()}>{busy ? "กำลังติดตั้ง…" : "ติดตั้งแอป"}</Button>}
</DialogFooter>
</DialogContent>
</Dialog>
</>;
}