Shared:MediaViewer: Fixed Load original image if thumbnail is unavailable

This commit is contained in:
Akmal Isomadinov 2024-08-06 19:11:14 +05:00
parent 3fdd6cfc5a
commit 0df04bfda6

View File

@ -111,6 +111,7 @@ export const ImageViewer = ({
const toolbarRef = useRef<ImperativeHandle>(null);
const [scale, setScale] = useState(1);
const [showOriginSrc, setShowOriginSrc] = useState(false);
const [isError, setIsError] = useState<boolean>(false);
const [isLoading, setIsLoading] = useState<boolean>(false);
const [backgroundBlack, setBackgroundBlack] = useState<boolean>(() => false);
@ -854,18 +855,19 @@ export const ImageViewer = ({
}
};
const onError = useCallback(
(e: SyntheticEvent<HTMLImageElement, Event>) => {
if (window.ClientConfig?.imageThumbnails && thumbnailSrc && src) {
// if thumbnailSrc is unavailable, try to load original image
e.currentTarget.src = src;
return;
}
const onError = useCallback(() => {
if (
window.ClientConfig?.imageThumbnails &&
thumbnailSrc &&
(src || isTiff)
) {
// if thumbnailSrc is unavailable, try to load original image
setShowOriginSrc(true);
return;
}
setIsError(true);
},
[src, thumbnailSrc],
);
setIsError(true);
}, [src, thumbnailSrc, isTiff]);
const model = React.useMemo(() => contextModel(true), [contextModel]);
@ -983,7 +985,9 @@ export const ImageViewer = ({
<Image
draggable="false"
src={
window.ClientConfig?.imageThumbnails && thumbnailSrc
window.ClientConfig?.imageThumbnails &&
thumbnailSrc &&
!showOriginSrc
? `${thumbnailSrc}&size=3840x2160`
: src
}