From 3a48980916785cfcc3b5d55e5c1812e3630ce775 Mon Sep 17 00:00:00 2001 From: Waleed Latif Date: Sat, 28 Jun 2025 00:38:15 -0400 Subject: [PATCH] fix(kb): fix kb navigation URLs --- .../[id]/[documentId]/components/document-loading.tsx | 7 +++++-- .../knowledge/[id]/[documentId]/document.tsx | 10 ++++++---- .../workspace/[workspaceId]/knowledge/[id]/base.tsx | 4 ++-- .../knowledge-base-loading/knowledge-base-loading.tsx | 5 ++++- .../components/base-overview/base-overview.tsx | 7 +++++-- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/document-loading.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/document-loading.tsx index aad70d0ed4..89f4f7a7f4 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/document-loading.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/document-loading.tsx @@ -1,6 +1,7 @@ 'use client' import { Plus, Search } from 'lucide-react' +import { useParams } from 'next/navigation' import { Button } from '@/components/ui/button' import { useSidebarStore } from '@/stores/sidebar/store' import { KnowledgeHeader } from '../../../components/knowledge-header/knowledge-header' @@ -18,6 +19,8 @@ export function DocumentLoading({ documentName, }: DocumentLoadingProps) { const { mode, isExpanded } = useSidebarStore() + const params = useParams() + const workspaceId = params?.workspaceId as string const isSidebarCollapsed = mode === 'expanded' ? !isExpanded : mode === 'collapsed' || mode === 'hover' @@ -25,12 +28,12 @@ export function DocumentLoading({ { id: 'knowledge-root', label: 'Knowledge', - href: '/knowledge', + href: `/workspace/${workspaceId}/knowledge`, }, { id: `knowledge-base-${knowledgeBaseId}`, label: knowledgeBaseName, - href: `/knowledge/${knowledgeBaseId}`, + href: `/workspace/${workspaceId}/knowledge/${knowledgeBaseId}`, }, { id: `document-${knowledgeBaseId}-${documentName}`, diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx index fc25327f6d..9fe8c73f51 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx @@ -12,6 +12,7 @@ import { Trash2, X, } from 'lucide-react' +import { useParams } from 'next/navigation' import { Button } from '@/components/ui/button' import { Checkbox } from '@/components/ui/checkbox' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' @@ -54,6 +55,7 @@ export function Document({ }: DocumentProps) { const { mode, isExpanded } = useSidebarStore() const { getCachedKnowledgeBase, getCachedDocuments } = useKnowledgeStore() + const { workspaceId } = useParams() const isSidebarCollapsed = mode === 'expanded' ? !isExpanded : mode === 'collapsed' || mode === 'hover' @@ -170,10 +172,10 @@ export function Document({ const effectiveDocumentName = document?.filename || documentName || 'Document' const breadcrumbs = [ - { label: 'Knowledge', href: '/knowledge' }, + { label: 'Knowledge', href: `/workspace/${workspaceId}/knowledge` }, { label: effectiveKnowledgeBaseName, - href: `/knowledge/${knowledgeBaseId}`, + href: `/workspace/${workspaceId}/knowledge/${knowledgeBaseId}`, }, { label: effectiveDocumentName }, ] @@ -360,10 +362,10 @@ export function Document({ if (combinedError && !isLoadingChunks) { const errorBreadcrumbs = [ - { label: 'Knowledge', href: '/knowledge' }, + { label: 'Knowledge', href: `/workspace/${workspaceId}/knowledge` }, { label: effectiveKnowledgeBaseName, - href: `/knowledge/${knowledgeBaseId}`, + href: `/workspace/${workspaceId}/knowledge/${knowledgeBaseId}`, }, { label: 'Error' }, ] diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx index eeffdb79e7..664623b0c8 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx @@ -743,7 +743,7 @@ export function KnowledgeBase({ { id: 'knowledge-root', label: 'Knowledge', - href: '/knowledge', + href: `/workspace/${workspaceId}/knowledge`, }, { id: `knowledge-base-${id}`, @@ -762,7 +762,7 @@ export function KnowledgeBase({ { id: 'knowledge-root', label: 'Knowledge', - href: '/knowledge', + href: `/workspace/${workspaceId}/knowledge`, }, { id: 'error', diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/knowledge-base-loading/knowledge-base-loading.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/knowledge-base-loading/knowledge-base-loading.tsx index 150979ddb6..a189d2d193 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/knowledge-base-loading/knowledge-base-loading.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/knowledge-base-loading/knowledge-base-loading.tsx @@ -1,6 +1,7 @@ 'use client' import { Search } from 'lucide-react' +import { useParams } from 'next/navigation' import { Button } from '@/components/ui/button' import { useSidebarStore } from '@/stores/sidebar/store' import { KnowledgeHeader } from '../../../components/knowledge-header/knowledge-header' @@ -12,6 +13,8 @@ interface KnowledgeBaseLoadingProps { export function KnowledgeBaseLoading({ knowledgeBaseName }: KnowledgeBaseLoadingProps) { const { mode, isExpanded } = useSidebarStore() + const params = useParams() + const workspaceId = params?.workspaceId as string const isSidebarCollapsed = mode === 'expanded' ? !isExpanded : mode === 'collapsed' || mode === 'hover' @@ -19,7 +22,7 @@ export function KnowledgeBaseLoading({ knowledgeBaseName }: KnowledgeBaseLoading { id: 'knowledge-root', label: 'Knowledge', - href: '/knowledge', + href: `/workspace/${workspaceId}/knowledge`, }, { id: 'knowledge-base-loading', diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/components/base-overview/base-overview.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/components/base-overview/base-overview.tsx index 223c9e9c90..1ecf717700 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/components/base-overview/base-overview.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/components/base-overview/base-overview.tsx @@ -3,6 +3,7 @@ import { useState } from 'react' import { Check, Copy, LibraryBig } from 'lucide-react' import Link from 'next/link' +import { useParams } from 'next/navigation' interface BaseOverviewProps { id?: string @@ -13,12 +14,14 @@ interface BaseOverviewProps { export function BaseOverview({ id, title, docCount, description }: BaseOverviewProps) { const [isCopied, setIsCopied] = useState(false) + const params = useParams() + const workspaceId = params?.workspaceId as string // Create URL with knowledge base name as query parameter - const params = new URLSearchParams({ + const searchParams = new URLSearchParams({ kbName: title, }) - const href = `/knowledge/${id || title.toLowerCase().replace(/\s+/g, '-')}?${params.toString()}` + const href = `/workspace/${workspaceId}/knowledge/${id || title.toLowerCase().replace(/\s+/g, '-')}?${searchParams.toString()}` const handleCopy = async (e: React.MouseEvent) => { e.preventDefault()