EmptyDataDialog.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { FC, useContext } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { rootContext } from '@/context';
  4. import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
  5. import { DataService } from '@/http';
  6. import type { CollectionObject } from '@server/types';
  7. export interface EmptyDataProps {
  8. collection: CollectionObject;
  9. cb?: () => void;
  10. }
  11. const EmptyDataDialog: FC<EmptyDataProps> = props => {
  12. const { cb, collection } = props;
  13. // UI functions
  14. const { openSnackBar } = useContext(rootContext);
  15. const { handleCloseDialog } = useContext(rootContext);
  16. const { t: dialogTrans } = useTranslation('dialog');
  17. const { t: collectionTrans } = useTranslation('collection');
  18. const { t: btnTrans } = useTranslation('btn');
  19. const { t: successTrans } = useTranslation('success');
  20. const handleDelete = async () => {
  21. // duplicate
  22. await DataService.emptyData(collection.collection_name);
  23. openSnackBar(
  24. successTrans('empty', {
  25. name: collectionTrans('collection'),
  26. })
  27. );
  28. // close dialog
  29. handleCloseDialog();
  30. cb && cb();
  31. };
  32. return (
  33. <DeleteTemplate
  34. label={btnTrans('empty')}
  35. title={dialogTrans('emptyTitle', {
  36. type: collectionTrans('collection'),
  37. })}
  38. compare={collection.collection_name}
  39. text={dialogTrans('emptyDataDialogInfo')}
  40. handleDelete={handleDelete}
  41. />
  42. );
  43. };
  44. export default EmptyDataDialog;