import React, { type FC } from 'react' import { RiArchive2Line, RiCheckboxCircleLine, RiCloseCircleLine, RiDeleteBinLine, RiDraftLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { useBoolean } from 'ahooks' import Divider from '@/app/components/base/divider' import classNames from '@/utils/classnames' import Confirm from '@/app/components/base/confirm' const i18nPrefix = 'dataset.batchAction' type IBatchActionProps = { className?: string selectedIds: string[] onBatchEnable: () => void onBatchDisable: () => void onBatchDelete: () => Promise onArchive?: () => void onEditMetadata?: () => void onCancel: () => void } const BatchAction: FC = ({ className, selectedIds, onBatchEnable, onBatchDisable, onArchive, onBatchDelete, onEditMetadata, onCancel, }) => { const { t } = useTranslation() const [isShowDeleteConfirm, { setTrue: showDeleteConfirm, setFalse: hideDeleteConfirm, }] = useBoolean(false) const [isDeleting, { setTrue: setIsDeleting, }] = useBoolean(false) const handleBatchDelete = async () => { setIsDeleting() await onBatchDelete() hideDeleteConfirm() } return (
{selectedIds.length} {t(`${i18nPrefix}.selected`)}
{onEditMetadata && (
)} {onArchive && (
)}
{ isShowDeleteConfirm && ( ) }
) } export default React.memo(BatchAction)