add notification on orig image load fail

This commit is contained in:
nflnkr 2023-10-23 18:38:23 +03:00
parent 42cf32c185
commit a601205a87
2 changed files with 18 additions and 6 deletions

@ -20,6 +20,7 @@ export const useCropModalStore = create<CropModalStore>()(
{ {
name: "CropModalStore", name: "CropModalStore",
enabled: process.env.NODE_ENV === "development", 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( export const resetToOriginalImage = (): boolean => {
state => ({ imageUrl: state.originalImageUrl }), if (!useCropModalStore.getState().originalImageUrl) return false;
false,
"resetToOriginalImage" useCropModalStore.setState(
); state => ({ imageUrl: state.originalImageUrl }),
false,
"resetToOriginalImage"
);
return true;
};

@ -17,6 +17,7 @@ import { FC, useRef, useState } from "react";
import ReactCrop, { Crop, PixelCrop } from "react-image-crop"; import ReactCrop, { Crop, PixelCrop } from "react-image-crop";
import "react-image-crop/dist/ReactCrop.css"; import "react-image-crop/dist/ReactCrop.css";
import { canvasPreview } from "./utils/canvasPreview"; import { canvasPreview } from "./utils/canvasPreview";
import { enqueueSnackbar } from "notistack";
const styleSlider: SxProps<Theme> = { const styleSlider: SxProps<Theme> = {
@ -92,6 +93,11 @@ export const CropModal: FC<Props> = ({ onSaveImageClick }) => {
closeCropModal(); closeCropModal();
} }
function handleLoadOriginalImage() {
const isSuccess = resetToOriginalImage();
if (!isSuccess) enqueueSnackbar("Не удалось восстановить оригинал. Приносим глубочайшие извинения");
}
const getImageSize = () => { const getImageSize = () => {
if (cropImageElementRef.current) { if (cropImageElementRef.current) {
const imageWidth = cropImageElementRef.current.naturalWidth; const imageWidth = cropImageElementRef.current.naturalWidth;
@ -248,7 +254,7 @@ export const CropModal: FC<Props> = ({ onSaveImageClick }) => {
}} }}
>Сохранить</Button> >Сохранить</Button>
<Button <Button
onClick={resetToOriginalImage} onClick={handleLoadOriginalImage}
disableRipple disableRipple
sx={{ sx={{
width: "215px", width: "215px",