fix: failed to load image when pass empty mask
This commit is contained in:
@@ -19,7 +19,7 @@ type CanvasImageEditorProps = {
|
|||||||
imageSrc: string;
|
imageSrc: string;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
imguid: string | number;
|
imguid: string | number;
|
||||||
onSave: (imageData: { mask: string; img: string }) => void;
|
onSave: (imageData: { mask: string | null; img: string }) => void;
|
||||||
uploadButton: React.ReactNode;
|
uploadButton: React.ReactNode;
|
||||||
imageStatus: {
|
imageStatus: {
|
||||||
isOriginal: boolean;
|
isOriginal: boolean;
|
||||||
@@ -148,6 +148,9 @@ const CanvasImageEditor: React.FC<CanvasImageEditorProps> = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const generateMask = useCallback(() => {
|
const generateMask = useCallback(() => {
|
||||||
|
if (strokesRef.current.length === 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
const overlayCanvas = overlayCanvasRef.current!;
|
const overlayCanvas = overlayCanvasRef.current!;
|
||||||
const maskCanvas = document.createElement('canvas');
|
const maskCanvas = document.createElement('canvas');
|
||||||
maskCanvas.width = overlayCanvas.width;
|
maskCanvas.width = overlayCanvas.width;
|
||||||
@@ -197,7 +200,7 @@ const CanvasImageEditor: React.FC<CanvasImageEditorProps> = ({
|
|||||||
|
|
||||||
const link = document.createElement('a');
|
const link = document.createElement('a');
|
||||||
link.download = 'mask.png';
|
link.download = 'mask.png';
|
||||||
link.href = mask;
|
link.href = mask || '';
|
||||||
link.click();
|
link.click();
|
||||||
}, [generateMask]);
|
}, [generateMask]);
|
||||||
|
|
||||||
@@ -524,6 +527,7 @@ const CanvasImageEditor: React.FC<CanvasImageEditorProps> = ({
|
|||||||
redrawStrokes(strokesRef.current);
|
redrawStrokes(strokesRef.current);
|
||||||
}
|
}
|
||||||
updateCursorSize();
|
updateCursorSize();
|
||||||
|
saveImage();
|
||||||
}, [drawImage, onReset, redrawStrokes, imguid]);
|
}, [drawImage, onReset, redrawStrokes, imguid]);
|
||||||
|
|
||||||
const updateZoom = (scaleChange: number, mouseX: number, mouseY: number) => {
|
const updateZoom = (scaleChange: number, mouseX: number, mouseY: number) => {
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
|||||||
const form = useRef<any>(null);
|
const form = useRef<any>(null);
|
||||||
const inputRef = useRef<any>(null);
|
const inputRef = useRef<any>(null);
|
||||||
const [image, setImage] = useState<string>('');
|
const [image, setImage] = useState<string>('');
|
||||||
const [mask, setMask] = useState<string>('');
|
const [mask, setMask] = useState<string | null>(null);
|
||||||
const [uploadList, setUploadList] = useState<any[]>([]);
|
const [uploadList, setUploadList] = useState<any[]>([]);
|
||||||
const [modelMeta, setModelMeta] = useState<any>({});
|
const [modelMeta, setModelMeta] = useState<any>({});
|
||||||
const [imageStatus, setImageStatus] = useState<{
|
const [imageStatus, setImageStatus] = useState<{
|
||||||
@@ -640,14 +640,17 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
|||||||
setImageList([]);
|
setImageList([]);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleOnSave = useCallback((data: { img: string; mask: string }) => {
|
const handleOnSave = useCallback(
|
||||||
setImageStatus({
|
(data: { img: string; mask: string | null }) => {
|
||||||
isOriginal: true,
|
setImageStatus({
|
||||||
isResetNeeded: false
|
isOriginal: true,
|
||||||
});
|
isResetNeeded: false
|
||||||
setMask(data.mask);
|
});
|
||||||
setImage(data.img);
|
setMask(data.mask || null);
|
||||||
}, []);
|
setImage(data.img);
|
||||||
|
},
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
|
||||||
const renderImageEditor = useMemo(() => {
|
const renderImageEditor = useMemo(() => {
|
||||||
if (image) {
|
if (image) {
|
||||||
|
|||||||
Reference in New Issue
Block a user