Skip to content

Commit 11fcee8

Browse files
committed
feat(knowledge): add connectors column to knowledge base list
1 parent 6ca206f commit 11fcee8

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

apps/sim/app/workspace/[workspaceId]/knowledge/knowledge.tsx

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import { useCallback, useMemo, useRef, useState } from 'react'
44
import { createLogger } from '@sim/logger'
55
import { useParams, useRouter } from 'next/navigation'
6+
import { Tooltip } from '@/components/emcn'
67
import { Database } from '@/components/emcn/icons'
78
import type { KnowledgeBaseData } from '@/lib/knowledge/types'
89
import type {
910
CreateAction,
11+
ResourceCell,
1012
ResourceColumn,
1113
ResourceRow,
1214
SearchConfig,
@@ -23,6 +25,7 @@ import {
2325
import { filterKnowledgeBases } from '@/app/workspace/[workspaceId]/knowledge/utils/sort'
2426
import { useUserPermissionsContext } from '@/app/workspace/[workspaceId]/providers/workspace-permissions-provider'
2527
import { useContextMenu } from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks'
28+
import { CONNECTOR_REGISTRY } from '@/connectors/registry'
2629
import { useKnowledgeBasesList } from '@/hooks/kb/use-knowledge'
2730
import { useDeleteKnowledgeBase, useUpdateKnowledgeBase } from '@/hooks/queries/kb/knowledge'
2831
import { useWorkspaceMembersQuery } from '@/hooks/queries/workspace'
@@ -37,13 +40,42 @@ const COLUMNS: ResourceColumn[] = [
3740
{ id: 'name', header: 'Name' },
3841
{ id: 'documents', header: 'Documents' },
3942
{ id: 'tokens', header: 'Tokens' },
43+
{ id: 'connectors', header: 'Connectors' },
4044
{ id: 'created', header: 'Created' },
4145
{ id: 'owner', header: 'Owner' },
4246
{ id: 'updated', header: 'Last Updated' },
4347
]
4448

4549
const DATABASE_ICON = <Database className='h-[14px] w-[14px]' />
4650

51+
function connectorCell(connectorTypes?: string[]): ResourceCell {
52+
if (!connectorTypes || connectorTypes.length === 0) {
53+
return { label: '—' }
54+
}
55+
56+
return {
57+
content: (
58+
<div className='flex items-center gap-1'>
59+
{connectorTypes.map((type) => {
60+
const def = CONNECTOR_REGISTRY[type]
61+
const Icon = def?.icon
62+
if (!Icon) return null
63+
return (
64+
<Tooltip.Root key={type}>
65+
<Tooltip.Trigger asChild>
66+
<span className='flex-shrink-0'>
67+
<Icon className='h-3.5 w-3.5' />
68+
</span>
69+
</Tooltip.Trigger>
70+
<Tooltip.Content>{def.name}</Tooltip.Content>
71+
</Tooltip.Root>
72+
)
73+
})}
74+
</div>
75+
),
76+
}
77+
}
78+
4779
export function Knowledge() {
4880
const params = useParams()
4981
const router = useRouter()
@@ -168,13 +200,15 @@ export function Knowledge() {
168200
tokens: {
169201
label: kb.tokenCount ? kb.tokenCount.toLocaleString() : '0',
170202
},
203+
connectors: connectorCell(kb.connectorTypes),
171204
created: timeCell(kb.createdAt),
172205
owner: ownerCell(kb.userId, members),
173206
updated: timeCell(kb.updatedAt),
174207
},
175208
sortValues: {
176209
documents: kbWithCount.docCount || 0,
177210
tokens: kb.tokenCount || 0,
211+
connectors: kb.connectorTypes?.length || 0,
178212
created: -new Date(kb.createdAt).getTime(),
179213
updated: -new Date(kb.updatedAt).getTime(),
180214
},

0 commit comments

Comments
 (0)