"use client"; import { AlertCircleIcon, CheckIcon, ClockIcon, SaveIcon } from "lucide-react"; import { useState } from "react"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Spinner } from "@/components/ui/spinner"; import type { SaveState } from "@/hooks/use-manual-save"; import { FloatingSavePanel } from "./floating-save-panel"; interface SaveFeedbackProps { state: SaveState; issues?: readonly string[]; conflictVersion?: number | null; canOverwrite?: boolean; onReloadLatest?: () => void; onOverwrite?: () => void; } function SaveFeedback({ state, issues = [], conflictVersion, canOverwrite = false, onReloadLatest, onOverwrite, }: SaveFeedbackProps) { const [showIssues, setShowIssues] = useState(false); if (state === "saving") return ( กำลังบันทึก… ); if (state === "unsaved") return ( ยังไม่ได้บันทึก ); if (state === "incomplete") return (
{showIssues ? ( ) : null}
); if (state === "conflict") return ( ); if (state === "error") return (
บันทึกไม่สำเร็จ
); return ( บันทึกแล้ว ); } export function SaveStatus({ canSave, onSave, ...props }: SaveFeedbackProps & { canSave: boolean; onSave: () => void }) { return ( <>