From 5d1ea033f8186417214e447acd5afded99a800fd Mon Sep 17 00:00:00 2001 From: Daniel Raab Date: Tue, 13 Oct 2026 08:58:41 +0200 Subject: [PATCH] feat(frontend): change item navigation to use itemModalStore for opening items --- .../lib/features/collections/CollectionList.svelte | 10 ++-------- .../lib/features/collections/CollectionMap.svelte | 13 ++++--------- .../lib/features/collections/CollectionTree.svelte | 1 - .../src/lib/features/collections/Collections.svelte | 1 - .../features/collections/ListCellRenderer.svelte | 9 --------- .../features/collections/WorkItemListTable.svelte | 2 -- 6 files changed, 6 insertions(+), 30 deletions(-) diff --git a/frontend/src/lib/features/collections/CollectionList.svelte b/frontend/src/lib/features/collections/CollectionList.svelte index 3b562c86a..65405386f 100644 --- a/frontend/src/lib/features/collections/CollectionList.svelte +++ b/frontend/src/lib/features/collections/CollectionList.svelte @@ -2,7 +2,6 @@ import { useEventListener } from 'runed'; import { t } from '../../stores/i18n.svelte.js'; import { errorToast } from '../../stores/toasts.svelte.js'; - import { navigate } from '../../router.js'; import { applyCollectionItem, collectionStore, refreshCollectionDeltas, reloadCollection } from '../../stores/collectionContext.js'; import { useCollectionEventStream } from '../../composables/useCollectionEventStream.svelte.js'; import { createDeleteItemHandler, createItemActionsBuilder } from '../../utils/workItemTableHelpers.js'; @@ -13,7 +12,7 @@ } from '../../utils/workItemListColumns.js'; import { useGradientStyles } from '../../stores/workspaceGradient.svelte.js'; import { workspacePermissions } from '../../stores/workspacePermissions.svelte.js'; - import { collectionEditorOptions, collectionFieldLinks, workspaceDataStore } from '../../stores/index.js'; + import { collectionEditorOptions, collectionFieldLinks, itemModalStore, workspaceDataStore } from '../../stores/index.js'; import { MoreHorizontal, ArrowUp, ArrowDown, ArrowUpDown } from '@lucide/svelte'; import { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter'; import SearchInput from '../../components/SearchInput.svelte'; @@ -213,11 +212,7 @@ }); function viewItem(item) { - const wsId = workspaceId || item.workspace_id; - const url = collectionId && workspaceId - ? `/workspaces/${workspaceId}/collections/${collectionId}/items/${item.id}` - : `/workspaces/${wsId}/items/${item.id}`; - navigate(url); + itemModalStore.open(item.id, item.workspace_id ?? workspaceId); } const deleteItem = createDeleteItemHandler({ @@ -347,7 +342,6 @@ {item} {column} {workspace} - {collectionId} canEdit={workspacePermissions.canEdit(item.workspace_id)} {statuses} {statusCategories} diff --git a/frontend/src/lib/features/collections/CollectionMap.svelte b/frontend/src/lib/features/collections/CollectionMap.svelte index 0c77e4546..dd5ea7b41 100644 --- a/frontend/src/lib/features/collections/CollectionMap.svelte +++ b/frontend/src/lib/features/collections/CollectionMap.svelte @@ -2,11 +2,10 @@ import { onMount, untrack } from 'svelte'; import { useEventListener } from 'runed'; import { api } from '../../api.js'; - import { navigate } from '../../router.js'; import { t } from '../../stores/i18n.svelte.js'; import { getCollection, checkItemVisibility } from '../collections/collectionService.js'; import { collectionStore, refreshCollectionDeltas, reloadCollection } from '../../stores/collectionContext.js'; - import { workspaceDataStore, workspacesStore, capabilitiesStore } from '../../stores/index.js'; + import { workspaceDataStore, workspacesStore, capabilitiesStore, itemModalStore } from '../../stores/index.js'; import { useGradientStyles, loadWorkspaceGradient } from '../../stores/workspaceGradient.svelte.js'; import { Plus, ChevronDown, ChevronRight, Home, MapPin, Settings } from '@lucide/svelte'; import ItemTypeIcon from '../../components/ItemTypeIcon.svelte'; @@ -440,12 +439,8 @@ return itemTypes.find(type => type.id === itemTypeId); } - function navigateToItem(item) { - const wsId = workspaceId || item.workspace_id; - const url = collectionId && workspaceId - ? `/workspaces/${workspaceId}/collections/${collectionId}/items/${item.id}` - : `/workspaces/${wsId}/items/${item.id}`; - navigate(url); + function openItem(item) { + itemModalStore.open(item.id, item.workspace_id ?? workspaceId); } function getPriorityColor(priority) { @@ -802,7 +797,7 @@