diff --git a/taxonomy-editor-frontend/src/pages/project/editentry/AccumulateAllComponents.tsx b/taxonomy-editor-frontend/src/pages/project/editentry/AccumulateAllComponents.tsx
index a1d0dbab..cf4b8500 100644
--- a/taxonomy-editor-frontend/src/pages/project/editentry/AccumulateAllComponents.tsx
+++ b/taxonomy-editor-frontend/src/pages/project/editentry/AccumulateAllComponents.tsx
@@ -180,7 +180,11 @@ const AccumulateAllComponents = ({
{
+const ListEntryChildren = ({
+ url,
+ urlPrefix,
+ updateChildren,
+ setUpdateNodeChildren,
+ previousUpdateChildren,
+ setPreviousUpdateChildren,
+ hasChanges,
+}) => {
const [relations, setRelations] = useState([]);
const [newChild, setNewChild] = useState("");
const [newLanguageCode, setNewLanguageCode] = useState("");
@@ -46,6 +56,9 @@ const ListEntryChildren = ({ url, urlPrefix, setUpdateNodeChildren }) => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
setUpdateNodeChildren(incomingData.map((el) => el?.[0]));
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
+ setPreviousUpdateChildren(incomingData.map((el) => el?.[0]));
const arrayData: Relations[] = [];
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
@@ -54,7 +67,7 @@ const ListEntryChildren = ({ url, urlPrefix, setUpdateNodeChildren }) => {
);
setRelations(arrayData);
}
- }, [incomingData, setUpdateNodeChildren]);
+ }, [incomingData, setPreviousUpdateChildren, setUpdateNodeChildren]);
// Helper functions for Dialog component
const handleCloseDialog = () => {
@@ -122,6 +135,17 @@ const ListEntryChildren = ({ url, urlPrefix, setUpdateNodeChildren }) => {
+ {/* Renders warning message to save changes to be able to click on a child node */}
+ {(!equal(updateChildren, previousUpdateChildren) || hasChanges) && (
+
+ {!equal(updateChildren, previousUpdateChildren) &&
+ "You've just created a new child. To navigate to it, please ensure your changes are saved first."}
+ {!equal(updateChildren, previousUpdateChildren) &&
}
+ {hasChanges &&
+ "Changes are pending and have not been saved. Please save your changes before navigating to any child node. If you prefer not to save your pending changes but wish to avoid losing them, you can navigate to a child node in a new window."}
+
+ )}
+
{/* Renders parents or children of the node */}
{relations.map((relationObject) => (
@@ -131,7 +155,13 @@ const ListEntryChildren = ({ url, urlPrefix, setUpdateNodeChildren }) => {
alignItems="center"
>