From 222679e73d5877cb02b21782f6602b270bbc7c8d Mon Sep 17 00:00:00 2001 From: wolfganggreschus Date: Thu, 20 Nov 2025 13:17:53 +0100 Subject: [PATCH 01/17] Remove the edit-share logic from the MediaBoard --- src/modules/feature/media-shelf/MediaBoard.vue | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/modules/feature/media-shelf/MediaBoard.vue b/src/modules/feature/media-shelf/MediaBoard.vue index f75c876515..6db562914a 100644 --- a/src/modules/feature/media-shelf/MediaBoard.vue +++ b/src/modules/feature/media-shelf/MediaBoard.vue @@ -17,7 +17,6 @@ group: 'lines', delay: 200, delayOnTouchOnly: true, - disabled: isInEditMode, ghostClass: 'sortable-drag-ghost', chosenClass: isDesktop ? '' : 'sortable-chosen', easing: 'cubic-bezier(1, 0, 0, 1)', @@ -57,8 +56,6 @@ import { lineLimit, LineMove, useSharedMediaBoardState } from "./data"; import MediaBoardAvailableLine from "./MediaBoardAvailableLine.vue"; import MediaBoardLine from "./MediaBoardLine.vue"; import MediaBoardLineGhost from "./MediaBoardLineGhost.vue"; -// eslint-disable-next-line @typescript-eslint/no-restricted-imports -import { useSharedEditMode } from "@/modules/util/board/editMode.composable"; // FIX_CIRCULAR_DEPENDENCY import { MediaAvailableLineResponse, MediaBoardResponse } from "@/serverApi/v3"; import { DeviceMediaQuery } from "@/types/enum/device-media-query.enum"; import { extractDataAttribute } from "@util-board"; @@ -94,8 +91,6 @@ const { createElement, } = useSharedMediaBoardState(); -const { isInEditMode } = useSharedEditMode(); - const onLineDragEnd = async (event: SortableEvent) => { const { newIndex, oldIndex, item } = event; From 8dce360f45d845c01466dc3858479bdc0e0beb3b Mon Sep 17 00:00:00 2001 From: wolfganggreschus Date: Thu, 20 Nov 2025 13:28:46 +0100 Subject: [PATCH 02/17] Revert "Remove the edit-share logic from the MediaBoard" This reverts commit 222679e73d5877cb02b21782f6602b270bbc7c8d. --- src/modules/feature/media-shelf/MediaBoard.vue | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/modules/feature/media-shelf/MediaBoard.vue b/src/modules/feature/media-shelf/MediaBoard.vue index 6db562914a..f75c876515 100644 --- a/src/modules/feature/media-shelf/MediaBoard.vue +++ b/src/modules/feature/media-shelf/MediaBoard.vue @@ -17,6 +17,7 @@ group: 'lines', delay: 200, delayOnTouchOnly: true, + disabled: isInEditMode, ghostClass: 'sortable-drag-ghost', chosenClass: isDesktop ? '' : 'sortable-chosen', easing: 'cubic-bezier(1, 0, 0, 1)', @@ -56,6 +57,8 @@ import { lineLimit, LineMove, useSharedMediaBoardState } from "./data"; import MediaBoardAvailableLine from "./MediaBoardAvailableLine.vue"; import MediaBoardLine from "./MediaBoardLine.vue"; import MediaBoardLineGhost from "./MediaBoardLineGhost.vue"; +// eslint-disable-next-line @typescript-eslint/no-restricted-imports +import { useSharedEditMode } from "@/modules/util/board/editMode.composable"; // FIX_CIRCULAR_DEPENDENCY import { MediaAvailableLineResponse, MediaBoardResponse } from "@/serverApi/v3"; import { DeviceMediaQuery } from "@/types/enum/device-media-query.enum"; import { extractDataAttribute } from "@util-board"; @@ -91,6 +94,8 @@ const { createElement, } = useSharedMediaBoardState(); +const { isInEditMode } = useSharedEditMode(); + const onLineDragEnd = async (event: SortableEvent) => { const { newIndex, oldIndex, item } = event; From c42fbc2a45582cdf17bdfeb136ef3307e21ed02f Mon Sep 17 00:00:00 2001 From: wolfganggreschus Date: Thu, 20 Nov 2025 13:53:13 +0100 Subject: [PATCH 03/17] Remove the logic for edit mode from the Card.store, Board, and BoardAddCardButton components. --- src/modules/data/board/Card.store.ts | 9 +-------- src/modules/feature/board/board/Board.vue | 6 +----- src/modules/feature/board/board/BoardAddCardButton.vue | 7 ------- 3 files changed, 2 insertions(+), 20 deletions(-) diff --git a/src/modules/data/board/Card.store.ts b/src/modules/data/board/Card.store.ts index a0cb9bbdbb..4d4bae6530 100644 --- a/src/modules/data/board/Card.store.ts +++ b/src/modules/data/board/Card.store.ts @@ -17,7 +17,7 @@ import { useCardSocketApi } from "./cardActions/cardSocketApi.composable"; import { CardResponse, ContentElementType, PreferredToolResponse, ToolContextType } from "@/serverApi/v3"; import { notifyInfo } from "@data-app"; import { useEnvConfig } from "@data-env"; -import { useSharedEditMode, useSharedLastCreatedElement } from "@util-board"; +import { useSharedLastCreatedElement } from "@util-board"; import { defineStore } from "pinia"; import { nextTick, Ref, ref } from "vue"; @@ -34,7 +34,6 @@ export const useCardStore = defineStore("cardStore", () => { const socketOrRest = isSocketEnabled ? useCardSocketApi() : restApi; const { setFocus, forceFocus } = useBoardFocusHandler(); - const { setEditModeId, editModeId } = useSharedEditMode(); const fetchCardRequest = socketOrRest.fetchCardRequest; @@ -101,9 +100,6 @@ export const useCardStore = defineStore("cardStore", () => { const card = cards.value[payload.cardId]; if (card === undefined) return; - if (payload.cardId === editModeId.value) { - setEditModeId(undefined); - } delete cards.value[payload.cardId]; }; @@ -190,7 +186,6 @@ export const useCardStore = defineStore("cardStore", () => { if (index !== undefined && index > -1) { card.elements.splice(index, 1); } - setEditModeId(payload.cardId); }; const updateElementRequest = socketOrRest.updateElementRequest; @@ -214,8 +209,6 @@ export const useCardStore = defineStore("cardStore", () => { if (elementIndex <= 0) return cardId; const previousElement = elements[elementIndex - 1]; - const { setEditModeId } = useSharedEditMode(); - setEditModeId(cardId); if (previousElement.type === ContentElementType.RichText) { return getPreviousElementId(previousElement.id, cardId); diff --git a/src/modules/feature/board/board/Board.vue b/src/modules/feature/board/board/Board.vue index 887468c48a..3f1af0e134 100644 --- a/src/modules/feature/board/board/Board.vue +++ b/src/modules/feature/board/board/Board.vue @@ -34,7 +34,7 @@ tag="div" :options="{ direction: 'horizontal', - disabled: isEditMode || !hasMovePermission, + disabled: !hasMovePermission, group: 'columns', delayOnTouchOnly: true, delay: 300, @@ -127,8 +127,6 @@ import { useCopy } from "@/composables/copy"; import { useLoadingState } from "@/composables/loadingState"; // eslint-disable-next-line @typescript-eslint/no-restricted-imports import { useBoardStore } from "@/modules/data/board/Board.store"; // FIX_CIRCULAR_DEPENDENCY -// eslint-disable-next-line @typescript-eslint/no-restricted-imports -import { useSharedEditMode } from "@/modules/util/board/editMode.composable"; // FIX_CIRCULAR_DEPENDENCY import { BoardLayout, ShareTokenBodyParamsParentTypeEnum, ToolContextType } from "@/serverApi/v3"; import { CopyParamsTypeEnum } from "@/store/copy"; import { HttpStatusCode } from "@/store/types/http-status-code.enum"; @@ -152,8 +150,6 @@ const props = defineProps({ }); const { t } = useI18n(); -const { editModeId } = useSharedEditMode(); -const isEditMode = computed(() => editModeId.value !== undefined); const boardStore = useBoardStore(); const cardStore = useCardStore(); const board = computed(() => boardStore.board); diff --git a/src/modules/feature/board/board/BoardAddCardButton.vue b/src/modules/feature/board/board/BoardAddCardButton.vue index 7255536a0c..ac70c5543c 100644 --- a/src/modules/feature/board/board/BoardAddCardButton.vue +++ b/src/modules/feature/board/board/BoardAddCardButton.vue @@ -1,7 +1,6 @@