DropPartitionDialog.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { FC, useContext } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { rootContext } from '../../context/Root';
  4. import DeleteTemplate from '../../components/customDialog/DeleteDialogTemplate';
  5. import { DropPartitionProps } from './Types';
  6. import { PartitionHttp } from '../../http/Partition';
  7. import { PartitionManageParam } from '../partitions/Types';
  8. import { ManageRequestMethods } from '../../types/Common';
  9. const DropPartitionDialog: FC<DropPartitionProps> = props => {
  10. const { partitions, onDelete, collectionName } = props;
  11. const { handleCloseDialog } = useContext(rootContext);
  12. const { t: partitionTrans } = useTranslation('partition');
  13. const { t: btnTrans } = useTranslation('btn');
  14. const { t: dialogTrans } = useTranslation('dialog');
  15. const handleDelete = async () => {
  16. for (const partition of partitions) {
  17. const param: PartitionManageParam = {
  18. partitionName: partition._name,
  19. collectionName,
  20. type: ManageRequestMethods.DELETE,
  21. };
  22. await PartitionHttp.managePartition(param);
  23. }
  24. handleCloseDialog();
  25. onDelete && onDelete();
  26. };
  27. return (
  28. <DeleteTemplate
  29. label={btnTrans('drop')}
  30. title={dialogTrans('deleteTitle', { type: partitionTrans('partition') })}
  31. text={partitionTrans('deleteWarning')}
  32. handleDelete={handleDelete}
  33. />
  34. );
  35. };
  36. export default DropPartitionDialog;