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",
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 => {
if (!useCropModalStore.getState().originalImageUrl) return false;
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 "react-image-crop/dist/ReactCrop.css";
import { canvasPreview } from "./utils/canvasPreview";
import { enqueueSnackbar } from "notistack";
const styleSlider: SxProps<Theme> = {
@ -92,6 +93,11 @@ export const CropModal: FC<Props> = ({ 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<Props> = ({ onSaveImageClick }) => {
}}
>Сохранить</Button>
<Button
onClick={resetToOriginalImage}
onClick={handleLoadOriginalImage}
disableRipple
sx={{
width: "215px",