"use client"; import { useState, useTransition } from "react"; import { toast } from "sonner"; import { setCommissionSlipProvider } from "@/app/admin/commission/actions"; import type { SlipProvider } from "@/lib/commission/slip-provider"; import { Alert, AlertDescription } from "@/components/ui/alert"; import { Button } from "@/components/ui/button"; import { Settings } from "lucide-react"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; import { Field, FieldGroup, FieldLabel } from "@/components/ui/field"; import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; export function AdminCommissionSlipProviderControl({ provider, configured }: { provider: SlipProvider; configured: Record; }) { const [open, setOpen] = useState(false); const [selected, setSelected] = useState(provider); const [pending, startTransition] = useTransition(); const [error, setError] = useState(""); function save() { setError(""); startTransition(async () => { try { const result = await setCommissionSlipProvider(selected); if (result.status === "error") { setError(result.message); return; } setOpen(false); toast.success("บันทึกผู้ให้บริการตรวจสลิปแล้ว"); } catch { setError("บันทึกไม่สำเร็จ กรุณาลองอีกครั้งหรือโหลดหน้าใหม่"); } }); } return { if (pending) return; if (nextOpen) { setSelected(provider); setError(""); } setOpen(nextOpen); }}> }> ตั้งค่าการชำระเงิน ผู้ให้บริการ { const value = values[0]; if (value === "slip2go" || value === "slipok") { setSelected(value); setError(""); } }}> Slip2Go SlipOK {error && {error}} ; }