'use client' import type { FC } from 'react' import type { Props as PaginationProps } from '@/app/components/base/pagination' import type { CommonResponse } from '@/models/common' import type { LegacyDataSourceInfo, LocalFileInfo, OnlineDocumentInfo, OnlineDriveInfo, SimpleDocumentDetail } from '@/models/datasets' import { RiArrowDownLine, RiEditLine, RiGlobalLine, } from '@remixicon/react' import { useBoolean } from 'ahooks' import { pick, uniq } from 'es-toolkit/compat' import { useRouter } from 'next/navigation' import * as React from 'react' import { useCallback, useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import Checkbox from '@/app/components/base/checkbox' import NotionIcon from '@/app/components/base/notion-icon' import Pagination from '@/app/components/base/pagination' import Toast from '@/app/components/base/toast' import Tooltip from '@/app/components/base/tooltip' import { normalizeStatusForQuery } from '@/app/components/datasets/documents/status-filter' import { extensionToFileType } from '@/app/components/datasets/hit-testing/utils/extension-to-file-type' import EditMetadataBatchModal from '@/app/components/datasets/metadata/edit-metadata-batch/modal' import { useDatasetDetailContextWithSelector as useDatasetDetailContext } from '@/context/dataset-detail' import useTimestamp from '@/hooks/use-timestamp' import { ChunkingMode, DataSourceType, DocumentActionType } from '@/models/datasets' import { DatasourceType } from '@/models/pipeline' import { useDocumentArchive, useDocumentBatchRetryIndex, useDocumentDelete, useDocumentDisable, useDocumentEnable } from '@/service/knowledge/use-document' import { asyncRunSafe } from '@/utils' import { cn } from '@/utils/classnames' import { formatNumber } from '@/utils/format' import FileTypeIcon from '../../base/file-uploader/file-type-icon' import ChunkingModeLabel from '../common/chunking-mode-label' import useBatchEditDocumentMetadata from '../metadata/hooks/use-batch-edit-document-metadata' import BatchAction from './detail/completed/common/batch-action' import Operations from './operations' import RenameModal from './rename-modal' import StatusItem from './status-item' import s from './style.module.css' export const renderTdValue = (value: string | number | null, isEmptyStyle = false) => { return (
|
e.stopPropagation()}>
{embeddingAvailable && (
|
{renderSortHeader('name', t('list.table.header.fileName', { ns: 'datasetDocuments' }))} | {t('list.table.header.chunkingMode', { ns: 'datasetDocuments' })} | {renderSortHeader('word_count', t('list.table.header.words', { ns: 'datasetDocuments' }))} | {renderSortHeader('hit_count', t('list.table.header.hitCount', { ns: 'datasetDocuments' }))} | {renderSortHeader('created_at', t('list.table.header.uploadTime', { ns: 'datasetDocuments' }))} | {t('list.table.header.status', { ns: 'datasetDocuments' })} | {t('list.table.header.action', { ns: 'datasetDocuments' })} |
|
e.stopPropagation()}>
|
{isOnlineDocument(doc.data_source_type) && (
{
e.stopPropagation()
handleShowRenameModal(doc)
}}
>
|
|
{renderCount(doc.word_count)} | {renderCount(doc.hit_count)} | {formatTime(doc.created_at, t('dateTimeFormat', { ns: 'datasetHitTesting' }) as string)} |
|
|