diff --git a/src/pages/Missions.tsx b/src/pages/Missions.tsx index b197b81..165ba8e 100644 --- a/src/pages/Missions.tsx +++ b/src/pages/Missions.tsx @@ -58,6 +58,8 @@ export default function Missions() { const [addEditTitle, setAddEditTitle] = useState(t("Add Mission")); const [selectedGroups, setSelectedGroups] = useState([]); const [loading, setLoading] = useState(false); + const [isDirty, setIsDirty] = useState(false); + const [showUnsavedWarning, setShowUnsavedWarning] = useState(false); const [sortStatus, setSortStatus] = useState>({ columnAccessor: 'name', direction: 'asc', @@ -156,6 +158,7 @@ export default function Missions() { }); setShowAddMission(true); setAddEditTitle(t("Edit Mission")); + setIsDirty(false); let selected_groups: string[] = []; row.groups.map((group: any) => { selected_groups.push("" + group.id); @@ -397,9 +400,15 @@ export default function Missions() { - {setShowAddMission(false);}} title={addEditTitle}> - { missionProperties.name = e.target.value; }} mb="md" /> - { missionProperties.description = e.target.value; }} mb="md" /> + setShowUnsavedWarning(false)} title={t("Discard unsaved changes?")}> +
+ + +
+
+ { if (isDirty) { setShowUnsavedWarning(true); } else { setShowAddMission(false); } }} title={addEditTitle}> + { missionProperties.name = e.target.value; setIsDirty(true); }} mb="md" /> + { missionProperties.description = e.target.value; setIsDirty(true); }} mb="md" /> {setGroups(value)}} + onChange={(value) => { setGroups(value); setIsDirty(true); }} data={allGroups} />