From a601205a875254df2843683671d043512dd11188 Mon Sep 17 00:00:00 2001 From: nflnkr Date: Mon, 23 Oct 2023 18:38:23 +0300 Subject: [PATCH] add notification on orig image load fail --- src/stores/cropModal.ts | 16 +++++++++++----- src/ui_kit/Modal/CropModal.tsx | 8 +++++++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/stores/cropModal.ts b/src/stores/cropModal.ts index 276c0cdc..d3f2f692 100644 --- a/src/stores/cropModal.ts +++ b/src/stores/cropModal.ts @@ -20,6 +20,7 @@ export const useCropModalStore = create()( { name: "CropModalStore", enabled: process.env.NODE_ENV === "development", + trace: process.env.NODE_ENV === "development", } ), ); @@ -53,8 +54,13 @@ export const setCropModalImageUrl = (imageUrl: string | null) => useCropModalSto } ); -export const resetToOriginalImage = () => useCropModalStore.setState( - state => ({ imageUrl: state.originalImageUrl }), - false, - "resetToOriginalImage" -); +export const resetToOriginalImage = (): boolean => { + if (!useCropModalStore.getState().originalImageUrl) return false; + + useCropModalStore.setState( + state => ({ imageUrl: state.originalImageUrl }), + false, + "resetToOriginalImage" + ); + return true; +}; diff --git a/src/ui_kit/Modal/CropModal.tsx b/src/ui_kit/Modal/CropModal.tsx index d9dbcf59..94abdaed 100644 --- a/src/ui_kit/Modal/CropModal.tsx +++ b/src/ui_kit/Modal/CropModal.tsx @@ -17,6 +17,7 @@ import { FC, useRef, useState } from "react"; import ReactCrop, { Crop, PixelCrop } from "react-image-crop"; import "react-image-crop/dist/ReactCrop.css"; import { canvasPreview } from "./utils/canvasPreview"; +import { enqueueSnackbar } from "notistack"; const styleSlider: SxProps = { @@ -92,6 +93,11 @@ export const CropModal: FC = ({ onSaveImageClick }) => { closeCropModal(); } + function handleLoadOriginalImage() { + const isSuccess = resetToOriginalImage(); + if (!isSuccess) enqueueSnackbar("Не удалось восстановить оригинал. Приносим глубочайшие извинения"); + } + const getImageSize = () => { if (cropImageElementRef.current) { const imageWidth = cropImageElementRef.current.naturalWidth; @@ -248,7 +254,7 @@ export const CropModal: FC = ({ onSaveImageClick }) => { }} >Сохранить