diff --git a/distribution_fe/app/(dashboard)/configuration/_components/invoice-creation-mode-card.tsx b/distribution_fe/app/(dashboard)/configuration/_components/invoice-creation-mode-card.tsx index 1366ea3..8cb8cf7 100644 --- a/distribution_fe/app/(dashboard)/configuration/_components/invoice-creation-mode-card.tsx +++ b/distribution_fe/app/(dashboard)/configuration/_components/invoice-creation-mode-card.tsx @@ -4,8 +4,7 @@ import { useEffect, useState } from 'react' import { HugeiconsIcon } from '@hugeicons/react' import { ReceiptDollarIcon } from '@hugeicons/core-free-icons' import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card' -import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group' -import { FieldDescription } from '@/components/ui/field' +import { Switch } from '@/components/ui/switch' import { toast } from '@/components/ui/toast' import { invoiceCreationMode as invoiceCreationModeApi, @@ -14,15 +13,11 @@ import { } from '@/lib/api/index' import type { InvoiceCreationMode } from '@/lib/api/sys-config' -const MODE_LABELS: Record = { - ModeA: 'Auto on confirm', - ModeB: 'Separate step', -} - -const MODE_HINTS: Record = { - ModeA: 'Confirming a Shop PO immediately creates a draft invoice.', - ModeB: 'Confirmation and invoice creation are two distinct actions.', -} +// What each toggle stands for. Both end the same way: edit the draft, print, finalize. +const POSITIONS: { mode: InvoiceCreationMode; label: string; meaning: string; steps: string[] }[] = [ + { mode: 'ModeA', label: 'Auto', meaning: 'Confirming a PO also creates its draft invoice.', steps: ['Confirm PO', 'Draft created'] }, + { mode: 'ModeB', label: 'Manual', meaning: 'Confirm first, then create the invoice yourself.', steps: ['Confirm PO', 'Create invoice'] }, +] export function InvoiceCreationModeCard() { const [loading, setLoading] = useState(true) @@ -66,18 +61,34 @@ export function InvoiceCreationModeCard() { - - v[0] && save(v[0] as InvoiceCreationMode)} - disabled={pending} - className="w-full" - > - {MODE_LABELS.ModeA} - {MODE_LABELS.ModeB} - - {MODE_HINTS[mode]} + + {POSITIONS.map((p) => { + const active = p.mode === mode + return ( +
+ + {/* One mode is always on: turning one on turns the other off; the active one cannot be switched off. */} + v && save(p.mode)} + /> +
+ ) + })} + +

+ {[...(POSITIONS.find((p) => p.mode === mode)?.steps ?? []), 'Edit draft', 'Print', 'Finalize'].join(' → ')} +

)