add notification on orig image load fail
This commit is contained in:
parent
42cf32c185
commit
a601205a87
@ -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(
|
||||
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;
|
||||
};
|
||||
|
||||
@ -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",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user