import { useLokaliseTranslation } from 'src/utils/i18n';

import { useDeleteKnowledgeBaseItems } from '../../hooks/useDeleteKnowledgeBaseItems';
import { type DeleteConfirmDialogProps } from './types';

export const useDeleteConfirmDialogCase = (props: DeleteConfirmDialogProps) => {
  const { t } = useLokaliseTranslation('agents');
  const { deleteFile, deleteFiles, deleteFolder } =
    useDeleteKnowledgeBaseItems();
  const { onClose } = props;

  const getCurrentCase = () => {
    if (props.variant === 'bulk')
      return {
        title: t('knowledge_base.bulk_actions.delete_dialog_title'),
        body: t('knowledge_base.bulk_actions.delete_dialog_body', {
          count: props.count,
        }),
        isLoading: deleteFiles.isLoading,
        onConfirm: () =>
          deleteFiles.mutate(props.filenames, {
            onSuccess: () => {
              onClose();
              props.onSuccessDeletion();
            },
          }),
      };

    if (props.variant === 'file')
      return {
        title: t('knowledge_base.delete_file_dialog.title'),
        body: t('knowledge_base.delete_file_dialog.body', { name: props.name }),
        isLoading: deleteFile.isLoading,
        onConfirm: () =>
          deleteFile.mutate(props.filename, { onSuccess: onClose }),
      };

    return {
      title: t('knowledge_base.delete_folder_dialog.title'),
      body: t('knowledge_base.delete_folder_dialog.body', {
        count: props.fileCount,
      }),
      isLoading: deleteFolder.isLoading,
      onConfirm: () => deleteFolder.mutate(props.path, { onSuccess: onClose }),
    };
  };

  return getCurrentCase();
};
