Skip to content

Commit 75e3293

Browse files
feat: Add export for window knowledge state
1 parent bd41d12 commit 75e3293

3 files changed

Lines changed: 184 additions & 178 deletions

File tree

packages/client/core/vite.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ export default defineConfig({
1616
plugins: [
1717
dts({
1818
entryRoot: 'src',
19-
tsConfigFilePath: join(__dirname, 'tsconfig.lib.json'),
20-
skipDiagnostics: true,
19+
tsconfigPath: join(__dirname, 'tsconfig.lib.json'),
20+
// skipDiagnostics: true,
2121
}),
2222

2323
nxViteTsPaths(),
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export * from './lib/window-knowledge'
2+
export * from './lib/_pkg/state'
Lines changed: 181 additions & 176 deletions
Original file line numberDiff line numberDiff line change
@@ -1,185 +1,190 @@
1-
import { useState } from 'react'
2-
import { useDeleteKnowledgeMutation, useGetKnowledgeQuery } from 'client/state'
3-
import { LoadingScreen } from 'client/core'
4-
import {
5-
Checkbox,
6-
DataTable,
7-
DropdownMenuItem,
8-
// DropdownMenuSeparator,
9-
} from '@magickml/client-ui'
10-
import { ColumnDef, Row } from '@tanstack/react-table'
11-
import { WindowHeader, WindowContainer } from 'windows-shared'
12-
import type { KnowledgeItem } from 'client/state'
13-
import { AddKnowledgeDialog } from './dialogs/knowledge-add-dialog'
14-
import { useSnackbar } from 'notistack'
1+
// import { useState } from 'react'
2+
// import { useDeleteKnowledgeMutation, useGetKnowledgeQuery } from 'client/state'
3+
// import { LoadingScreen } from 'client/core'
4+
// import {
5+
// Checkbox,
6+
// DataTable,
7+
// DropdownMenuItem,
8+
// // DropdownMenuSeparator,
9+
// } from '@magickml/client-ui'
10+
// import { ColumnDef, Row } from '@tanstack/react-table'
11+
// import { WindowHeader, WindowContainer } from 'windows-shared'
12+
// import type { KnowledgeItem } from 'client/state'
13+
// import { AddKnowledgeDialog } from './dialogs/knowledge-add-dialog'
14+
// import { useSnackbar } from 'notistack'
1515

16-
export const KnowledgeWindow = () => {
17-
const openState = useState(false)
18-
const [page, setPage] = useState(1)
19-
const [limit] = useState(10)
20-
const { data: knowledge, isLoading } = useGetKnowledgeQuery({
21-
limit,
22-
skip: (page - 1) * limit,
23-
})
16+
// export const KnowledgeWindow = () => {
17+
// const openState = useState(false)
18+
// const [page, setPage] = useState(1)
19+
// const [limit] = useState(10)
20+
// const { data: knowledge, isLoading } = useGetKnowledgeQuery({
21+
// limit,
22+
// skip: (page - 1) * limit,
23+
// })
2424

25-
const [deleteKnowledge] = useDeleteKnowledgeMutation()
26-
const { enqueueSnackbar } = useSnackbar()
25+
// const [deleteKnowledge] = useDeleteKnowledgeMutation()
26+
// const { enqueueSnackbar } = useSnackbar()
2727

28-
const handleKnowledgeDelete = async (knowledgeId: string) => {
29-
try {
30-
await deleteKnowledge({ knowledgeId }).unwrap()
31-
enqueueSnackbar('Knowledge deleted', { variant: 'success' })
32-
} catch (error) {
33-
enqueueSnackbar('Error deleting knowledge', { variant: 'error' })
34-
}
35-
}
28+
// const handleKnowledgeDelete = async (knowledgeId: string) => {
29+
// try {
30+
// await deleteKnowledge({ knowledgeId }).unwrap()
31+
// enqueueSnackbar('Knowledge deleted', { variant: 'success' })
32+
// } catch (error) {
33+
// enqueueSnackbar('Error deleting knowledge', { variant: 'error' })
34+
// }
35+
// }
3636

37-
const renderRowActionMenu = (row: Row<KnowledgeItem>) => (
38-
<>
39-
{/* <DropdownMenuItem
40-
onClick={() => console.log('View knowledge:', row.original)}
41-
>
42-
View Knowledge
43-
</DropdownMenuItem>
44-
<DropdownMenuItem
45-
onClick={() => console.log('Edit knowledge:', row.original)}
46-
>
47-
Edit Knowledge
48-
</DropdownMenuItem>
49-
<DropdownMenuSeparator /> */}
50-
<DropdownMenuItem onClick={() => handleKnowledgeDelete(row.original.id)}>
51-
Delete Knowledge
52-
</DropdownMenuItem>
53-
</>
54-
)
37+
// const renderRowActionMenu = (row: Row<KnowledgeItem>) => (
38+
// <>
39+
// {/* <DropdownMenuItem
40+
// onClick={() => console.log('View knowledge:', row.original)}
41+
// >
42+
// View Knowledge
43+
// </DropdownMenuItem>
44+
// <DropdownMenuItem
45+
// onClick={() => console.log('Edit knowledge:', row.original)}
46+
// >
47+
// Edit Knowledge
48+
// </DropdownMenuItem>
49+
// <DropdownMenuSeparator /> */}
50+
// <DropdownMenuItem onClick={() => handleKnowledgeDelete(row.original.id)}>
51+
// Delete Knowledge
52+
// </DropdownMenuItem>
53+
// </>
54+
// )
5555

56-
const columns: ColumnDef<KnowledgeItem, unknown>[] = [
57-
{
58-
id: 'select',
59-
header: ({ table }) => (
60-
<Checkbox
61-
checked={table.getIsAllPageRowsSelected()}
62-
onCheckedChange={value => table.toggleAllPageRowsSelected(!!value)}
63-
aria-label="Select all"
64-
/>
65-
),
66-
cell: ({ row }) => (
67-
<Checkbox
68-
checked={row.getIsSelected()}
69-
onCheckedChange={value => row.toggleSelected(!!value)}
70-
aria-label="Select row"
71-
/>
72-
),
73-
enableSorting: false,
74-
enableHiding: false,
75-
},
76-
{
77-
accessorKey: 'name',
78-
header: 'Name',
79-
cell: ({ row }) => <span className="text-xs">{row.original.name}</span>,
80-
},
81-
{
82-
accessorKey: 'dataType',
83-
header: 'Type',
84-
cell: ({ row }) => (
85-
<span className="text-xs">{row.original.dataType}</span>
86-
),
87-
},
88-
// {
89-
// accessorKey: 'sourceUrl',
90-
// header: 'Source URL',
91-
// size: 48,
92-
// maxSize: 48,
93-
// cell: ({ row }) => (
94-
// <span className="text-xs">
95-
// {row.original.sourceUrl ? row.original.sourceUrl : 'N/A'}
96-
// </span>
97-
// ),
98-
// },
56+
// const columns: ColumnDef<KnowledgeItem, unknown>[] = [
57+
// {
58+
// id: 'select',
59+
// header: ({ table }) => (
60+
// <Checkbox
61+
// checked={table.getIsAllPageRowsSelected()}
62+
// onCheckedChange={value => table.toggleAllPageRowsSelected(!!value)}
63+
// aria-label="Select all"
64+
// />
65+
// ),
66+
// cell: ({ row }) => (
67+
// <Checkbox
68+
// checked={row.getIsSelected()}
69+
// onCheckedChange={value => row.toggleSelected(!!value)}
70+
// aria-label="Select row"
71+
// />
72+
// ),
73+
// enableSorting: false,
74+
// enableHiding: false,
75+
// },
76+
// {
77+
// accessorKey: 'name',
78+
// header: 'Name',
79+
// cell: ({ row }) => <span className="text-xs">{row.original.name}</span>,
80+
// },
81+
// {
82+
// accessorKey: 'dataType',
83+
// header: 'Type',
84+
// cell: ({ row }) => (
85+
// <span className="text-xs">{row.original.dataType}</span>
86+
// ),
87+
// },
88+
// // {
89+
// // accessorKey: 'sourceUrl',
90+
// // header: 'Source URL',
91+
// // size: 48,
92+
// // maxSize: 48,
93+
// // cell: ({ row }) => (
94+
// // <span className="text-xs">
95+
// // {row.original.sourceUrl ? row.original.sourceUrl : 'N/A'}
96+
// // </span>
97+
// // ),
98+
// // },
9999

100-
{
101-
accessorKey: 'data',
102-
header: 'Data',
103-
cell: ({ row }) => (
104-
<span className="text-xs">
105-
{row.original.data ? row.original.data : 'N/A'}
106-
</span>
107-
),
108-
},
109-
{
110-
accessorKey: 'createdAt',
111-
header: 'Created At',
112-
cell: ({ row }) => (
113-
<span className="text-xs">
114-
{row.original.createdAt ? new Date().toLocaleDateString() : 'N/A'}
115-
</span>
116-
),
117-
},
118-
{
119-
accessorKey: 'updatedAt',
120-
header: 'Updated At',
121-
cell: ({ row }) => (
122-
<span className="text-xs">
123-
{row.original.updatedAt ? new Date().toLocaleDateString() : 'N/A'}
124-
</span>
125-
),
126-
},
127-
]
100+
// {
101+
// accessorKey: 'data',
102+
// header: 'Data',
103+
// cell: ({ row }) => (
104+
// <span className="text-xs">
105+
// {row.original.data ? row.original.data : 'N/A'}
106+
// </span>
107+
// ),
108+
// },
109+
// {
110+
// accessorKey: 'createdAt',
111+
// header: 'Created At',
112+
// cell: ({ row }) => (
113+
// <span className="text-xs">
114+
// {row.original.createdAt ? new Date().toLocaleDateString() : 'N/A'}
115+
// </span>
116+
// ),
117+
// },
118+
// {
119+
// accessorKey: 'updatedAt',
120+
// header: 'Updated At',
121+
// cell: ({ row }) => (
122+
// <span className="text-xs">
123+
// {row.original.updatedAt ? new Date().toLocaleDateString() : 'N/A'}
124+
// </span>
125+
// ),
126+
// },
127+
// ]
128128

129-
if (isLoading) {
130-
return <LoadingScreen />
131-
}
129+
// if (isLoading) {
130+
// return <LoadingScreen />
131+
// }
132132

133-
return (
134-
<>
135-
<AddKnowledgeDialog openState={openState} />
133+
// return (
134+
// <>
135+
// <AddKnowledgeDialog openState={openState} />
136136

137-
<WindowContainer>
138-
<WindowHeader
139-
title="Knowledge"
140-
description="Manage knowledge for your agent."
141-
cta="Add Knowledge"
142-
ctaProps={{
143-
variant: 'portal-primary',
144-
onClick: () => openState[1](true),
145-
}}
146-
/>
147-
<div className="px-8">
148-
<DataTable<KnowledgeItem, unknown>
149-
columns={columns}
150-
data={knowledge?.data ?? []}
151-
filterInputPlaceholder="Search knowledge by id"
152-
columnVisibilityButtonProps={{
153-
children: 'Columns',
154-
}}
155-
renderRowActionMenu={renderRowActionMenu}
156-
paginationDivProps={{
157-
className: 'flex items-center justify-end space-x-2 py-4',
158-
}}
159-
pageCountDivProps={{
160-
className: 'flex-1 text-sm text-muted-foreground',
161-
}}
162-
previousButtonProps={{
163-
variant: 'outline',
164-
size: 'sm',
165-
onClick: () => setPage(prevPage => Math.max(prevPage - 1, 1)),
166-
disabled: page === 1,
167-
children: 'Previous',
168-
}}
169-
nextButtonProps={{
170-
variant: 'outline',
171-
size: 'sm',
172-
onClick: () => {
173-
if (knowledge && page < Math.ceil(knowledge.total / limit)) {
174-
setPage(prevPage => prevPage + 1)
175-
}
176-
},
177-
disabled: knowledge && page >= Math.ceil(knowledge.total / limit),
178-
children: 'Next',
179-
}}
180-
/>
181-
</div>
182-
</WindowContainer>
183-
</>
184-
)
185-
}
137+
// <WindowContainer>
138+
// <WindowHeader
139+
// title="Knowledge"
140+
// description="Manage knowledge for your agent."
141+
// cta="Add Knowledge"
142+
// ctaProps={{
143+
// variant: 'portal-primary',
144+
// onClick: () => openState[1](true),
145+
// }}
146+
// />
147+
// <div className="px-8">
148+
// <DataTable<KnowledgeItem, unknown>
149+
// columns={columns}
150+
// data={knowledge?.data ?? []}
151+
// filterInputPlaceholder="Search knowledge by id"
152+
// columnVisibilityButtonProps={{
153+
// children: 'Columns',
154+
// }}
155+
// renderRowActionMenu={renderRowActionMenu}
156+
// paginationDivProps={{
157+
// className: 'flex items-center justify-end space-x-2 py-4',
158+
// }}
159+
// pageCountDivProps={{
160+
// className: 'flex-1 text-sm text-muted-foreground',
161+
// }}
162+
// previousButtonProps={{
163+
// variant: 'outline',
164+
// size: 'sm',
165+
// onClick: () => setPage(prevPage => Math.max(prevPage - 1, 1)),
166+
// disabled: page === 1,
167+
// children: 'Previous',
168+
// }}
169+
// nextButtonProps={{
170+
// variant: 'outline',
171+
// size: 'sm',
172+
// onClick: () => {
173+
// if (knowledge && page < Math.ceil(knowledge.total / limit)) {
174+
// setPage(prevPage => prevPage + 1)
175+
// }
176+
// },
177+
// disabled: knowledge && page >= Math.ceil(knowledge.total / limit),
178+
// children: 'Next',
179+
// }}
180+
// />
181+
// </div>
182+
// </WindowContainer>
183+
// </>
184+
// )
185+
// }
186+
187+
import { KnowledgeWindow } from './_components/knowledge-window'
188+
export default KnowledgeWindow
189+
190+
export * from './_components/knowledge-window'

0 commit comments

Comments
 (0)