DropCollectionDialog.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { FC, useContext } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { rootContext, dataContext } from '@/context';
  4. import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
  5. import { DropCollectionProps } from './Types';
  6. const DropCollectionDialog: FC<DropCollectionProps> = props => {
  7. const { collections, onDelete } = props;
  8. const { handleCloseDialog, openSnackBar } = useContext(rootContext);
  9. const { dropCollection } = useContext(dataContext);
  10. const { t: collectionTrans } = useTranslation('collection');
  11. const { t: btnTrans } = useTranslation('btn');
  12. const { t: successTrans } = useTranslation('success');
  13. const { t: dialogTrans } = useTranslation('dialog');
  14. const handleDelete = async () => {
  15. const res = [];
  16. for (const item of collections) {
  17. res.push(await dropCollection(item.collection_name));
  18. }
  19. // show success message
  20. openSnackBar(
  21. successTrans('delete', {
  22. name: collectionTrans('collection'),
  23. })
  24. );
  25. handleCloseDialog();
  26. onDelete && (await onDelete());
  27. };
  28. return (
  29. <DeleteTemplate
  30. label={btnTrans('drop')}
  31. title={dialogTrans('deleteTitle', {
  32. type: collectionTrans('collection'),
  33. })}
  34. text={collectionTrans('deleteWarning')}
  35. handleDelete={handleDelete}
  36. />
  37. );
  38. };
  39. export default DropCollectionDialog;