feat(notebook-widget): add confirmation on dismiss (#4064)

This commit is contained in:
Meier Lukas
2025-09-13 12:32:21 +02:00
committed by GitHub
parent cd4c236e5e
commit cb7a6abca7
2 changed files with 23 additions and 3 deletions

View File

@@ -1543,7 +1543,15 @@
"width": "Width",
"height": "Height"
},
"placeholder": "Start writing your notes"
"placeholder": "Start writing your notes",
"dismiss": {
"title": "Dismiss changes?",
"message": "You have unsaved changes in your notebook. Are you sure you want to discard them?",
"action": {
"discard": "Discard changes",
"keepEditing": "Keep editing"
}
}
},
"iframe": {
"name": "iFrame",

View File

@@ -72,6 +72,7 @@ import "./notebook.css";
import { useSession } from "@homarr/auth/client";
import { constructBoardPermissions } from "@homarr/auth/shared";
import { useRequiredBoard } from "@homarr/boards/context";
import { useConfirmModal } from "@homarr/modals";
const iconProps = {
size: 30,
@@ -240,9 +241,20 @@ export function Notebook({ options, setOptions, isEditMode, boardId, itemId }: W
return false;
}, [editor]);
const { openConfirmModal } = useConfirmModal();
const handleEditCancel = useCallback(() => {
setIsEditing(handleEditCancelCallback);
}, [setIsEditing, handleEditCancelCallback]);
openConfirmModal({
title: t("widget.notebook.dismiss.title"),
children: t("widget.notebook.dismiss.message"),
labels: {
confirm: t("widget.notebook.dismiss.action.discard"),
cancel: t("widget.notebook.dismiss.action.keepEditing"),
},
onConfirm: () => {
setIsEditing(handleEditCancelCallback);
},
});
}, [setIsEditing, handleEditCancelCallback, openConfirmModal, t]);
const handleEditToggle = useCallback(() => {
setIsEditing(handleEditToggleCallback);