AutoSave.tsx 938 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import React, { useEffect } from 'react';
  2. import { useSnackbar } from 'notistack';
  3. import { useTranslation } from '../i18n';
  4. import useAutoSave from '../hooks/useAutoSave';
  5. import Icon from '../components/Icon';
  6. const index: React.FC = () => {
  7. const { t } = useTranslation('toast');
  8. const [isSaved, isSaving] = useAutoSave();
  9. const { enqueueSnackbar, closeSnackbar } = useSnackbar();
  10. useEffect(() => {
  11. if (isSaving) {
  12. enqueueSnackbar(t('saving'), {
  13. variant: 'info',
  14. action: key => (
  15. <Icon glyph="close" onClick={(): void => { closeSnackbar(key); }} />
  16. ),
  17. });
  18. }
  19. if (!isSaving && isSaved) {
  20. enqueueSnackbar(t('saved'), {
  21. variant: 'success',
  22. action: key => (
  23. <Icon glyph="close" onClick={(): void => { closeSnackbar(key); }} />
  24. ),
  25. });
  26. }
  27. }, [isSaved, isSaving]);
  28. return (
  29. <>
  30. </>
  31. );
  32. };
  33. export default index;