diff --git a/frontend/src/components/ConfirmModal.tsx b/frontend/src/components/ConfirmModal.tsx index 3ca4d52..1b4443d 100644 --- a/frontend/src/components/ConfirmModal.tsx +++ b/frontend/src/components/ConfirmModal.tsx @@ -13,6 +13,7 @@ export interface ConfirmModalProps { onCancel: () => void; isLoading?: boolean; confirmVariant?: "primary" | "danger" | "success"; + overlayClassName?: string; } export function ConfirmModal({ @@ -24,9 +25,10 @@ export function ConfirmModal({ onCancel, isLoading = false, confirmVariant = "primary", + overlayClassName, }: ConfirmModalProps) { return ( -
+
e.stopPropagation()} style={{ maxWidth: "450px" }}>
- - + )} +
@@ -547,10 +583,12 @@ export function MedicationsPage() {
- - + )} +
@@ -1145,10 +1183,27 @@ export function MedicationsPage() { title={t("common.unsavedChanges.title", "Unsaved Changes")} message={t("common.unsavedChanges.message")} confirmLabel={t("common.unsavedChanges.leave", "Leave")} - cancelLabel={t("common.unsavedChanges.stay", "Stay")} + cancelLabel={ + unsavedConfirmSource === "mobile-edit" ? t("common.back") : t("common.unsavedChanges.stay", "Stay") + } onConfirm={handleConfirmClose} onCancel={handleCancelClose} confirmVariant="danger" + overlayClassName={showEditModal ? "nested-confirm" : undefined} + /> + )} + + {/* Delete Medication Confirmation Modal */} + {showDeleteConfirm && deleteCandidate && ( + )} diff --git a/frontend/src/styles.css b/frontend/src/styles.css index 368a4d2..ed99a9d 100644 --- a/frontend/src/styles.css +++ b/frontend/src/styles.css @@ -5497,6 +5497,10 @@ a.about-version-link:hover { background: rgba(0, 0, 0, 0.6); } +.modal-overlay.nested-confirm { + z-index: 1200; +} + /* ============================================================================= Shared Schedule Page (Public) ============================================================================= */