mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-08 01:55:41 +00:00
Throttling configuration from the backoffice added
This commit is contained in:
@@ -34,6 +34,7 @@ export default function PackagesPage() {
|
||||
const [editingId, setEditingId] = useState<string | null>(null);
|
||||
const [viewPackage, setViewPackage] = useState<any>(null);
|
||||
const [activateConfirm, setActivateConfirm] = useState<any>(null);
|
||||
const [deactivateConfirm, setDeactivateConfirm] = useState<any>(null);
|
||||
const [tiersPackage, setTiersPackage] = useState<any>(null);
|
||||
const [editingTier, setEditingTier] = useState<any>(null);
|
||||
const [tierForm, setTierForm] = useState({ seatType: '', label: '', priceMinor: '', availableSeats: '' });
|
||||
@@ -76,6 +77,11 @@ export default function PackagesPage() {
|
||||
onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['packages'] }); setActivateConfirm(null); },
|
||||
});
|
||||
|
||||
const deactivateMutation = useMutation({
|
||||
mutationFn: packagesApi.deactivate,
|
||||
onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['packages'] }); setDeactivateConfirm(null); },
|
||||
});
|
||||
|
||||
const emptyTierForm = { seatType: '', label: '', priceMinor: '', availableSeats: '' };
|
||||
|
||||
const addTierMutation = useMutation({
|
||||
@@ -261,7 +267,12 @@ export default function PackagesPage() {
|
||||
{
|
||||
label: 'Activate', icon: CheckCircle, variant: 'primary' as const,
|
||||
onClick: (p: any) => setActivateConfirm(p),
|
||||
hidden: (p: any) => p.status === 'ACTIVE',
|
||||
show: (p: any) => p.status !== 'ACTIVE',
|
||||
},
|
||||
{
|
||||
label: 'Deactivate', icon: CheckCircle, variant: 'secondary' as const,
|
||||
onClick: (p: any) => setDeactivateConfirm(p),
|
||||
show: (p: any) => p.status === 'ACTIVE',
|
||||
},
|
||||
{
|
||||
label: 'Delete', icon: Trash2, variant: 'danger' as const,
|
||||
@@ -343,6 +354,18 @@ export default function PackagesPage() {
|
||||
isDanger={false}
|
||||
/>
|
||||
|
||||
{/* Deactivate Confirmation */}
|
||||
<ConfirmDialog
|
||||
isOpen={!!deactivateConfirm}
|
||||
onClose={() => setDeactivateConfirm(null)}
|
||||
onConfirm={() => deactivateMutation.mutate(deactivateConfirm.id)}
|
||||
title="Deactivate Package"
|
||||
message={`Deactivate "${deactivateConfirm?.name}"? It will no longer be available for booking.`}
|
||||
confirmText="Deactivate"
|
||||
isDanger={false}
|
||||
isLoading={deactivateMutation.isPending}
|
||||
/>
|
||||
|
||||
{/* Tiers Modal */}
|
||||
<Modal isOpen={!!tiersPackage} onClose={() => { setTiersPackage(null); setEditingTier(null); setTierError(null); }} title={`Price Tiers — ${tiersPackage?.name ?? ''}`} size="lg">
|
||||
{tiersPackage && (
|
||||
|
||||
Reference in New Issue
Block a user