CompactDialog.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { FC, useContext } from 'react';
  2. import { Typography, Theme } from '@mui/material';
  3. import { useTranslation } from 'react-i18next';
  4. import { rootContext } from '@/context';
  5. import DialogTemplate from '@/components/customDialog/DialogTemplate';
  6. import { SegmentService } from '@/http';
  7. import { makeStyles } from '@mui/styles';
  8. import type { CompactDialogProps } from './Types';
  9. const useStyles = makeStyles((theme: Theme) => ({
  10. desc: {
  11. margin: '8px 0 16px 0',
  12. maxWidth: '500px',
  13. },
  14. dialog: {},
  15. }));
  16. const CompactDialog: FC<CompactDialogProps> = props => {
  17. const { cb, collectionName } = props;
  18. const classes = useStyles();
  19. const { handleCloseDialog } = useContext(rootContext);
  20. const { t: dialogTrans } = useTranslation('dialog');
  21. const { t: collectionTrans } = useTranslation('collection');
  22. const { t: btnTrans } = useTranslation('btn');
  23. const handleConfirm = async () => {
  24. await SegmentService.compact(collectionName);
  25. handleCloseDialog();
  26. cb && cb();
  27. };
  28. const disabled = false;
  29. return (
  30. <DialogTemplate
  31. dialogClass={classes.dialog}
  32. title={dialogTrans('compact', {
  33. type: collectionName,
  34. })}
  35. handleClose={handleCloseDialog}
  36. children={
  37. <>
  38. <Typography
  39. variant="body1"
  40. component="p"
  41. className={classes.desc}
  42. dangerouslySetInnerHTML={{
  43. __html: collectionTrans('compactDialogInfo'),
  44. }}
  45. ></Typography>
  46. </>
  47. }
  48. confirmLabel={btnTrans('confirm')}
  49. handleConfirm={handleConfirm}
  50. confirmDisabled={disabled}
  51. />
  52. );
  53. };
  54. export default CompactDialog;