AutoSave.tsx 862 B

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