'use client' import type { FC } from 'react' import React, { useMemo } from 'react' import { useTranslation } from 'react-i18next' import { RiAddLine, RiArrowDownSLine, RiErrorWarningFill, RiLoader2Line, } from '@remixicon/react' import cn from '@/utils/classnames' import { CheckCircle } from '@/app/components/base/icons/src/vender/solid/general' import Popover from '@/app/components/base/popover' export type ISegmentAddProps = { importStatus: ProcessStatus | string | undefined clearProcessStatus: () => void showNewSegmentModal: () => void showBatchModal: () => void embedding: boolean } export enum ProcessStatus { WAITING = 'waiting', PROCESSING = 'processing', COMPLETED = 'completed', ERROR = 'error', } const SegmentAdd: FC = ({ importStatus, clearProcessStatus, showNewSegmentModal, showBatchModal, embedding, }) => { const { t } = useTranslation() const textColor = useMemo(() => { return embedding ? 'text-components-button-secondary-accent-text-disabled' : 'text-components-button-secondary-accent-text' }, [embedding]) if (importStatus) { return ( <> {(importStatus === ProcessStatus.WAITING || importStatus === ProcessStatus.PROCESSING) && (
{t('datasetDocuments.list.batchModal.processing')}
)} {importStatus === ProcessStatus.COMPLETED && (
{t('datasetDocuments.list.batchModal.completed')}
{t('datasetDocuments.list.batchModal.ok')}
)} {importStatus === ProcessStatus.ERROR && (
{t('datasetDocuments.list.batchModal.error')}
{t('datasetDocuments.list.batchModal.ok')}
)} ) } return (
{t('datasetDocuments.list.action.batchAdd')} } btnElement={
} btnClassName={open => cn( `!p-2 !border-0 !rounded-l-none !rounded-r-lg !hover:bg-state-base-hover backdrop-blur-[5px] disabled:cursor-not-allowed disabled:bg-transparent disabled:hover:bg-transparent`, open ? '!bg-state-base-hover' : '', )} popupClassName='!min-w-[128px] !bg-components-panel-bg-blur !rounded-xl border-[0.5px] !ring-0 border-components-panel-border !shadow-xl !shadow-shadow-shadow-5 backdrop-blur-[5px]' className='min-w-[128px] h-fit' disabled={embedding} />
) } export default React.memo(SegmentAdd)