dify/web/app/components/datasets/metadata/hooks/use-edit-dataset-metadata.ts

57 lines
1.8 KiB
TypeScript
Raw Normal View History

2025-02-21 11:30:11 +08:00
import { useBoolean } from 'ahooks'
2025-02-28 14:10:05 +08:00
import { useBuiltInMetaDataFields, useCreateMetaData, useDatasetMetaData, useDeleteMetaData, useRenameMeta, useUpdateBuiltInStatus } from '@/service/knowledge/use-metadata'
2025-02-21 14:57:48 +08:00
import type { DataSet } from '@/models/datasets'
2025-02-21 15:25:43 +08:00
import { useCallback, useState } from 'react'
2025-02-21 16:07:34 +08:00
import type { BuiltInMetadataItem, MetadataItemWithValueLength } from '../types'
2025-02-21 11:30:11 +08:00
2025-02-21 16:48:10 +08:00
const useEditDatasetMetadata = ({
2025-02-21 14:57:48 +08:00
datasetId,
dataset,
}: {
datasetId: string,
2025-02-21 15:25:43 +08:00
dataset?: DataSet
2025-02-21 14:57:48 +08:00
}) => {
2025-02-21 11:30:11 +08:00
const [isShowEditModal, {
setTrue: showEditModal,
setFalse: hideEditModal,
}] = useBoolean(false)
2025-02-21 14:57:48 +08:00
const { data: datasetMetaData } = useDatasetMetaData(datasetId)
2025-02-21 15:50:43 +08:00
const { mutate: doAddMetaData } = useCreateMetaData(datasetId)
const handleAddMetaData = useCallback((payload: BuiltInMetadataItem) => {
doAddMetaData(payload)
}, [doAddMetaData])
2025-02-21 16:07:34 +08:00
const { mutate: doRenameMetaData } = useRenameMeta(datasetId)
const handleRename = useCallback((payload: MetadataItemWithValueLength) => {
doRenameMetaData(payload)
}, [doRenameMetaData])
2025-02-21 15:25:43 +08:00
const { mutate: doDeleteMetaData } = useDeleteMetaData(datasetId)
const handleDeleteMetaData = useCallback((metaDataId: string) => {
doDeleteMetaData(metaDataId)
}, [doDeleteMetaData])
const [builtInEnabled, setBuiltInEnabled] = useState(dataset?.built_in_field_enabled)
2025-02-21 14:57:48 +08:00
const { mutate } = useUpdateBuiltInStatus(datasetId)
2025-02-28 14:10:05 +08:00
const { data: builtInMetaData } = useBuiltInMetaDataFields()
2025-02-21 11:30:11 +08:00
return {
isShowEditModal,
showEditModal,
hideEditModal,
2025-02-21 15:25:43 +08:00
datasetMetaData: datasetMetaData?.data,
2025-02-21 15:50:43 +08:00
handleAddMetaData,
2025-02-21 16:07:34 +08:00
handleRename,
2025-02-21 15:25:43 +08:00
handleDeleteMetaData,
builtInMetaData: builtInMetaData?.fields,
2025-02-21 14:57:48 +08:00
builtInEnabled,
setBuiltInEnabled: async (enable: boolean) => {
await mutate(enable)
setBuiltInEnabled(enable)
},
2025-02-21 11:30:11 +08:00
}
}
2025-02-21 16:48:10 +08:00
export default useEditDatasetMetadata