From 7f905cb69ffd2b3fb7389c04d4480b6624ada2d4 Mon Sep 17 00:00:00 2001 From: Theodore Li Date: Mon, 13 Apr 2026 16:10:53 -0700 Subject: [PATCH 1/2] feat(ui): show folder path in search modal --- .../search-modal/components/command-items.tsx | 8 ++++++ .../search-modal/components/search-groups.tsx | 3 ++- .../sidebar/components/search-modal/utils.ts | 1 + .../w/components/sidebar/sidebar.tsx | 26 ++++++++++++------- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/command-items.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/command-items.tsx index d5c81dcf55a..e79dee7cd2b 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/command-items.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/command-items.tsx @@ -51,12 +51,14 @@ export const MemoizedWorkflowItem = memo( onSelect, color, name, + folderPath, isCurrent, }: { value: string onSelect: () => void color: string name: string + folderPath?: string isCurrent?: boolean }) { return ( @@ -73,6 +75,11 @@ export const MemoizedWorkflowItem = memo( {name} {isCurrent && ' (current)'} + {folderPath && ( + + {folderPath} + + )} ) }, @@ -80,6 +87,7 @@ export const MemoizedWorkflowItem = memo( prev.value === next.value && prev.color === next.color && prev.name === next.name && + prev.folderPath === next.folderPath && prev.isCurrent === next.isCurrent ) diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/search-groups.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/search-groups.tsx index d8bebbbcb9a..4fd1ceaf9cb 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/search-groups.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/search-groups.tsx @@ -163,10 +163,11 @@ export const WorkflowsGroup = memo(function WorkflowsGroup({ {items.map((workflow) => ( onSelect(workflow)} color={workflow.color} name={workflow.name} + folderPath={workflow.folderPath} isCurrent={workflow.isCurrent} /> ))} diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/utils.ts b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/utils.ts index ec646f1d033..538d90c1a92 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/utils.ts +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/utils.ts @@ -11,6 +11,7 @@ export interface WorkflowItem { name: string href: string color: string + folderPath?: string isCurrent?: boolean } diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx index aec38cbc1b3..5f628c8cfa5 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx @@ -40,7 +40,7 @@ import { useSession } from '@/lib/auth/auth-client' import { SIM_RESOURCES_DRAG_TYPE } from '@/lib/copilot/resource-types' import { cn } from '@/lib/core/utils/cn' import { isMacPlatform } from '@/lib/core/utils/platform' -import { buildFolderTree } from '@/lib/folders/tree' +import { buildFolderTree, getFolderPath } from '@/lib/folders/tree' import { captureEvent } from '@/lib/posthog/client' import { START_NAV_TOUR_EVENT, @@ -613,14 +613,22 @@ export const Sidebar = memo(function Sidebar() { const searchModalWorkflows = useMemo( () => - regularWorkflows.map((workflow) => ({ - id: workflow.id, - name: workflow.name, - href: `/workspace/${workspaceId}/w/${workflow.id}`, - color: workflow.color, - isCurrent: workflow.id === workflowId, - })), - [regularWorkflows, workspaceId, workflowId] + regularWorkflows.map((workflow) => { + const folderPath = workflow.folderId + ? getFolderPath(folderMap, workflow.folderId) + .map((folder) => folder.name) + .join(' / ') + : '' + return { + id: workflow.id, + name: workflow.name, + href: `/workspace/${workspaceId}/w/${workflow.id}`, + color: workflow.color, + folderPath: folderPath || undefined, + isCurrent: workflow.id === workflowId, + } + }), + [regularWorkflows, folderMap, workspaceId, workflowId] ) const searchModalWorkspaces = useMemo( From a5f4a1769809dddb4c9ab7cdec69e00120f8dfa0 Mon Sep 17 00:00:00 2001 From: Theodore Li Date: Mon, 13 Apr 2026 16:32:53 -0700 Subject: [PATCH 2/2] Switch truncate folder over workspace name --- .../components/search-modal/components/command-items.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/command-items.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/command-items.tsx index e79dee7cd2b..7b845995acb 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/command-items.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/components/command-items.tsx @@ -76,7 +76,7 @@ export const MemoizedWorkflowItem = memo( {isCurrent && ' (current)'} {folderPath && ( - + {folderPath} )}