dify/web/service/knowledge/use-metadata.ts

120 lines
2.9 KiB
TypeScript
Raw Normal View History

2025-02-21 14:57:48 +08:00
import type { BuiltInMetadataItem, MetadataItemWithValueLength } from '@/app/components/datasets/metadata/types'
import { useMutation, useQuery } from '@tanstack/react-query'
2025-02-21 15:25:43 +08:00
import { useInvalid } from '../use-base'
2025-02-21 14:57:48 +08:00
const NAME_SPACE = 'dataset-metadata'
2025-02-21 15:25:43 +08:00
let datasetMetaData = [
{
id: '1-ae54c',
name: 'Doc type',
type: 'string',
use_count: 1,
},
{
id: '2-fufex',
name: 'Title',
type: 'string',
use_count: 5,
},
]
2025-02-21 14:57:48 +08:00
export const useDatasetMetaData = (datasetId: string) => {
return useQuery<{ data: MetadataItemWithValueLength[] }>({
queryKey: [NAME_SPACE, 'dataset', datasetId],
queryFn: () => {
return {
2025-02-21 15:25:43 +08:00
data: datasetMetaData,
2025-02-21 14:57:48 +08:00
} as {
data: MetadataItemWithValueLength[],
}
},
})
}
2025-02-21 15:25:43 +08:00
export const useInvalidDatasetMetaData = (datasetId: string) => {
return useInvalid([NAME_SPACE, 'dataset', datasetId])
}
2025-02-21 15:50:43 +08:00
export const useCreateMetaData = (datasetId: string) => {
const invalidDatasetMetaData = useInvalidDatasetMetaData(datasetId)
return useMutation({
mutationFn: async (payload: BuiltInMetadataItem) => {
datasetMetaData.push({
id: `${Math.random()}`,
...payload,
use_count: 0,
})
await invalidDatasetMetaData()
return Promise.resolve(true)
},
})
}
2025-02-21 16:07:34 +08:00
export const useRenameMeta = (datasetId: string) => {
const invalidDatasetMetaData = useInvalidDatasetMetaData(datasetId)
return useMutation({
mutationFn: async (payload: MetadataItemWithValueLength) => {
datasetMetaData = datasetMetaData.map((item) => {
if (item.id === payload.id)
return payload
return item
})
await invalidDatasetMetaData()
return Promise.resolve(true)
},
})
}
2025-02-21 15:25:43 +08:00
export const useDeleteMetaData = (datasetId: string) => {
const invalidDatasetMetaData = useInvalidDatasetMetaData(datasetId)
return useMutation({
mutationFn: async (metaDataId: string) => {
datasetMetaData = datasetMetaData.filter(item => item.id !== metaDataId)
await invalidDatasetMetaData()
return Promise.resolve(true)
},
})
}
2025-02-21 14:57:48 +08:00
export const useBuiltInMetaData = () => {
return useQuery<{ fields: BuiltInMetadataItem[] }>({
queryKey: [NAME_SPACE, 'built-in'],
queryFn: () => {
return {
fields: [
{
name: 'OriginalfileNmae',
type: 'string',
},
{
name: 'Title',
type: 'string',
},
],
} as {
fields: BuiltInMetadataItem[],
}
},
})
}
2025-02-27 18:01:53 +08:00
export const useBatchUpdateDocMetadata = (datasetId: string) => {
return useMutation({
mutationFn: (enabled: boolean) => {
console.log(datasetId, enabled)
return Promise.resolve(true)
},
})
}
2025-02-21 14:57:48 +08:00
export const useUpdateBuiltInStatus = (datasetId: string) => {
return useMutation({
mutationFn: (enabled: boolean) => {
console.log(datasetId, enabled)
return Promise.resolve(true)
},
})
}