feat: in document detail to manange
This commit is contained in:
parent
6d995a7b4c
commit
9780795010
@ -1,8 +1,8 @@
|
||||
import { useBoolean } from 'ahooks'
|
||||
import { useBuiltInMetaDataFields, useCreateMetaData, useDatasetMetaData, useDeleteMetaData, useRenameMeta, useUpdateBuiltInStatus } from '@/service/knowledge/use-metadata'
|
||||
import type { DataSet } from '@/models/datasets'
|
||||
import { useCallback, useState } from 'react'
|
||||
import type { BuiltInMetadataItem, MetadataItemWithValueLength } from '../types'
|
||||
import { useCallback, useEffect, useState } from 'react'
|
||||
import { type BuiltInMetadataItem, type MetadataItemWithValueLength, isShowManageMetadataLocalStorageKey } from '../types'
|
||||
|
||||
const useEditDatasetMetadata = ({
|
||||
datasetId,
|
||||
@ -16,6 +16,15 @@ const useEditDatasetMetadata = ({
|
||||
setFalse: hideEditModal,
|
||||
}] = useBoolean(false)
|
||||
|
||||
useEffect(() => {
|
||||
const isShowManageMetadata = localStorage.getItem(isShowManageMetadataLocalStorageKey)
|
||||
if (isShowManageMetadata) {
|
||||
showEditModal()
|
||||
localStorage.removeItem(isShowManageMetadataLocalStorageKey)
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [])
|
||||
|
||||
const { data: datasetMetaData } = useDatasetMetaData(datasetId)
|
||||
|
||||
const { mutate: doAddMetaData } = useCreateMetaData(datasetId)
|
||||
|
@ -14,6 +14,7 @@ type Props = {
|
||||
popupOffset?: { mainAxis: number, crossAxis: number }
|
||||
onSave: (data: MetadataItem) => void
|
||||
trigger: React.ReactNode
|
||||
onManage: () => void
|
||||
} & CreateContentProps
|
||||
|
||||
enum Step {
|
||||
@ -32,6 +33,7 @@ const SelectMetadataModal: FC<Props> = ({
|
||||
popupOffset = { mainAxis: -38, crossAxis: 4 },
|
||||
trigger,
|
||||
onSave,
|
||||
onManage,
|
||||
}) => {
|
||||
const [open, setOpen] = useState(false)
|
||||
const [step, setStep] = useState(Step.select)
|
||||
@ -59,7 +61,7 @@ const SelectMetadataModal: FC<Props> = ({
|
||||
onSelect={handleSave}
|
||||
list={testMetadataList}
|
||||
onNew={() => setStep(Step.create)}
|
||||
onManage={() => { }}
|
||||
onManage={onManage}
|
||||
/>
|
||||
) : (
|
||||
<CreateContent
|
||||
|
@ -51,6 +51,7 @@ const MetadataDocument: FC<Props> = ({
|
||||
uppercaseTitle={false}
|
||||
titleTooltip={t(`${i18nPrefix}.metadataToolTip`)}
|
||||
list={isEdit ? tempList : list}
|
||||
dataSetId={datasetId}
|
||||
headerRight={isEdit ? (
|
||||
<div className='flex space-x-1'>
|
||||
<Button variant='ghost' size='small' onClick={handleCancel}>
|
||||
@ -88,6 +89,7 @@ const MetadataDocument: FC<Props> = ({
|
||||
noHeader
|
||||
titleTooltip='Built-in metadata is system-generated metadata that is automatically added to the document. You can enable or disable built-in metadata here.'
|
||||
list={builtList}
|
||||
dataSetId={datasetId}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
@ -101,11 +103,13 @@ const MetadataDocument: FC<Props> = ({
|
||||
className='pl-2'
|
||||
title={t(`${i18nPrefix}.documentInformation`)}
|
||||
list={originInfo}
|
||||
dataSetId={datasetId}
|
||||
/>
|
||||
<InfoGroup
|
||||
className='pl-2'
|
||||
title={t(`${i18nPrefix}.technicalParameters`)}
|
||||
list={technicalParameters}
|
||||
dataSetId={datasetId}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
|
@ -1,7 +1,8 @@
|
||||
'use client'
|
||||
import type { FC } from 'react'
|
||||
import React from 'react'
|
||||
import type { MetadataItemWithValue } from '../types'
|
||||
import { useRouter } from 'next/navigation'
|
||||
import { type MetadataItemWithValue, isShowManageMetadataLocalStorageKey } from '../types'
|
||||
import Field from './field'
|
||||
import InputCombined from '../edit-metadata-batch/input-combined'
|
||||
import { RiDeleteBinLine, RiQuestionLine } from '@remixicon/react'
|
||||
@ -12,6 +13,7 @@ import SelectMetadataModal from '../metadata-dataset/select-metadata-modal'
|
||||
import AddMetadataButton from '../add-metadata-button'
|
||||
|
||||
type Props = {
|
||||
dataSetId: string
|
||||
className?: string
|
||||
noHeader?: boolean
|
||||
title?: string
|
||||
@ -27,6 +29,7 @@ type Props = {
|
||||
}
|
||||
|
||||
const InfoGroup: FC<Props> = ({
|
||||
dataSetId,
|
||||
className,
|
||||
noHeader,
|
||||
title,
|
||||
@ -40,6 +43,12 @@ const InfoGroup: FC<Props> = ({
|
||||
onDelete,
|
||||
onAdd,
|
||||
}) => {
|
||||
const router = useRouter()
|
||||
const handleMangeMetadata = () => {
|
||||
localStorage.setItem(isShowManageMetadataLocalStorageKey, 'true')
|
||||
router.push(`/datasets/${dataSetId}/documents`)
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={cn('bg-white', className)}>
|
||||
{!noHeader && (
|
||||
@ -66,6 +75,7 @@ const InfoGroup: FC<Props> = ({
|
||||
<AddMetadataButton />
|
||||
}
|
||||
onSave={data => onAdd?.(data)}
|
||||
onManage={handleMangeMetadata}
|
||||
/>
|
||||
<Divider className='my-3 ' bgStyle='gradient' />
|
||||
</div>
|
||||
|
@ -37,3 +37,5 @@ export type MetadataItemWithEdit = MetadataItemWithValue & {
|
||||
isUpdated?: boolean
|
||||
updateType?: UpdateType
|
||||
}
|
||||
|
||||
export const isShowManageMetadataLocalStorageKey = 'dify-isShowManageMetadata'
|
||||
|
Loading…
Reference in New Issue
Block a user