feat: implement recovery incidents dashboard with list view and creation forms

This commit is contained in:
azeeee05
2026-08-24 11:35:33 +05:30
parent b024171f08
commit 1b52d7ede4
3 changed files with 17 additions and 12 deletions
@@ -663,9 +663,7 @@ export default function AddPolicyEngine() {
await createPolicy(payload); await createPolicy(payload);
} }
let actionWord = isDeploy ? 'created' : 'saved as draft';
if (isEditMode) { if (isEditMode) {
actionWord = isDeploy ? 'updated' : 'saved as draft';
} }
setSuccessTitle(isDeploy setSuccessTitle(isDeploy
@@ -18,7 +18,7 @@ import type { RecoveryIncident } from '../RecoveryIncidentsTypes';
interface AddRecoveryIncidentsProps { interface AddRecoveryIncidentsProps {
isOpen: boolean; isOpen: boolean;
onClose: () => void; onClose: () => void;
onSuccess?: (createdCount: number, flightNumber: string, passengerName: string) => void; onSuccess?: (createdCount: number, flightNumber: string, passengerName: string, isEdit?: boolean) => void;
incident?: RecoveryIncident | null; incident?: RecoveryIncident | null;
} }
@@ -353,7 +353,8 @@ export default function AddRecoveryIncidents({ isOpen, onClose, onSuccess, incid
onSuccess( onSuccess(
selectedPassengers.length, selectedPassengers.length,
formData.flightNumber || "TBD", formData.flightNumber || "TBD",
selectedPassengers[0]?.passengerName || "Unknown" selectedPassengers[0]?.passengerName || "Unknown",
!!incident
); );
} }
} }
@@ -143,7 +143,8 @@ export default function RecoveryIncidentsList() {
count: number; count: number;
flightNumber: string; flightNumber: string;
passengerName: string; passengerName: string;
}>({ isOpen: false, count: 0, flightNumber: "", passengerName: "" }); isEdit?: boolean;
}>({ isOpen: false, count: 0, flightNumber: "", passengerName: "", isEdit: false });
// ─── Fetch data ───────────────────────────────────────────── // ─── Fetch data ─────────────────────────────────────────────
@@ -656,12 +657,13 @@ export default function RecoveryIncidentsList() {
setEditingIncident(null); setEditingIncident(null);
fetchIncidents(); // Refresh list fetchIncidents(); // Refresh list
}} }}
onSuccess={(createdCount, flightNumber, passengerName) => { onSuccess={(createdCount, flightNumber, passengerName, isEdit) => {
setSuccessModalData({ setSuccessModalData({
isOpen: true, isOpen: true,
count: createdCount, count: createdCount,
flightNumber, flightNumber,
passengerName, passengerName,
isEdit,
}); });
}} }}
/> />
@@ -673,16 +675,20 @@ export default function RecoveryIncidentsList() {
setSuccessModalData((prev) => ({ ...prev, isOpen: false })) setSuccessModalData((prev) => ({ ...prev, isOpen: false }))
} }
title={ title={
successModalData.count > 1 successModalData.isEdit
? "Recovery Incidents Created." ? (successModalData.count > 1 ? "Recovery Incidents Updated." : "Recovery Incident Updated.")
: "Recovery Incident Created." : (successModalData.count > 1 ? "Recovery Incidents Created." : "Recovery Incident Created.")
} }
label="FLIGHT & PASSENGER DETAILS" label="FLIGHT & PASSENGER DETAILS"
cohortName={`Flight ${successModalData.flightNumber}`} cohortName={`Flight ${successModalData.flightNumber}`}
cohortDescription={ cohortDescription={
successModalData.count > 1 successModalData.isEdit
? `Successfully logged incidents for ${successModalData.count} passengers, including ${successModalData.passengerName}.` ? (successModalData.count > 1
: `Successfully logged incident for ${successModalData.passengerName}.` ? `Successfully updated incidents for ${successModalData.count} passengers, including ${successModalData.passengerName}.`
: `Successfully updated incident for ${successModalData.passengerName}.`)
: (successModalData.count > 1
? `Successfully logged incidents for ${successModalData.count} passengers, including ${successModalData.passengerName}.`
: `Successfully logged incident for ${successModalData.passengerName}.`)
} }
/> />
</div> </div>