diff --git a/apps/client/src/services/toast.ts b/apps/client/src/services/toast.ts index cc67fa225..5325a06bc 100644 --- a/apps/client/src/services/toast.ts +++ b/apps/client/src/services/toast.ts @@ -77,11 +77,11 @@ function closePersistent(id: string) { $(`#toast-${id}`).remove(); } -function showMessage(message: string, delay = 2000) { +function showMessage(message: string, delay = 2000, icon = "check") { console.debug(utils.now(), "message:", message); toast({ - icon: "check", + icon, message: message, autohide: true, delay diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index ef9605d5e..54025d690 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -2035,7 +2035,8 @@ "add-column": "Add Column", "add-column-placeholder": "Enter column name...", "edit-note-title": "Click to edit note title", - "edit-column-title": "Click to edit column title" + "edit-column-title": "Click to edit column title", + "column-already-exists": "This column already exists on the board." }, "presentation_view": { "edit-slide": "Edit this slide", diff --git a/apps/client/src/widgets/collections/board/api.ts b/apps/client/src/widgets/collections/board/api.ts index 52f7a6d4a..af88f935e 100644 --- a/apps/client/src/widgets/collections/board/api.ts +++ b/apps/client/src/widgets/collections/board/api.ts @@ -75,10 +75,10 @@ export default class BoardApi { // Add the new column to persisted data if it doesn't exist const existingColumn = this.viewConfig.columns.find(col => col.value === columnName); - if (!existingColumn) { - this.viewConfig.columns.push({ value: columnName }); - this.saveConfig(this.viewConfig); - } + if (existingColumn) return false; + this.viewConfig.columns.push({ value: columnName }); + this.saveConfig(this.viewConfig); + return true; } async removeColumn(column: string) { diff --git a/apps/client/src/widgets/collections/board/index.tsx b/apps/client/src/widgets/collections/board/index.tsx index a2a0d9001..519e1103c 100644 --- a/apps/client/src/widgets/collections/board/index.tsx +++ b/apps/client/src/widgets/collections/board/index.tsx @@ -14,6 +14,7 @@ import BoardApi from "./api"; import FormTextArea from "../../react/FormTextArea"; import FNote from "../../../entities/fnote"; import NoteAutocomplete from "../../react/NoteAutocomplete"; +import toast from "../../../services/toast"; export interface BoardViewData { columns?: BoardColumnData[]; @@ -213,7 +214,12 @@ function AddNewColumn({ api, isInRelationMode }: { api: BoardApi, isInRelationMo : ( api.addNewColumn(columnName)} + save={async (columnName) => { + const created = await api.addNewColumn(columnName); + if (!created) { + toast.showMessage(t("board_view.column-already-exists"), undefined, "bx bx-duplicate"); + } + }} dismiss={() => setIsCreatingNewColumn(false)} isNewItem mode={isInRelationMode ? "relation" : "normal"}