mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-28 19:46:46 +00:00
Api image fix (#6034)
* Replace invalid image with skeleton * Simplify ApiImage * Flag unused variable
This commit is contained in:
parent
8605832693
commit
22800d6b10
@ -4,13 +4,7 @@
|
|||||||
*
|
*
|
||||||
* Image caching is handled automagically by the browsers cache
|
* Image caching is handled automagically by the browsers cache
|
||||||
*/
|
*/
|
||||||
import {
|
import { Image, ImageProps, Skeleton, Stack } from '@mantine/core';
|
||||||
Image,
|
|
||||||
ImageProps,
|
|
||||||
LoadingOverlay,
|
|
||||||
Overlay,
|
|
||||||
Stack
|
|
||||||
} from '@mantine/core';
|
|
||||||
import { useId } from '@mantine/hooks';
|
import { useId } from '@mantine/hooks';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
@ -27,7 +21,7 @@ export function ApiImage(props: ImageProps) {
|
|||||||
|
|
||||||
const queryKey = useId();
|
const queryKey = useId();
|
||||||
|
|
||||||
const imgQuery = useQuery({
|
const _imgQuery = useQuery({
|
||||||
queryKey: ['image', queryKey, props.src],
|
queryKey: ['image', queryKey, props.src],
|
||||||
enabled:
|
enabled:
|
||||||
authorized &&
|
authorized &&
|
||||||
@ -52,7 +46,8 @@ export function ApiImage(props: ImageProps) {
|
|||||||
setImage(url);
|
setImage(url);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// User is not authorized to view this image
|
// User is not authorized to view this image, or the image is not available
|
||||||
|
setImage('');
|
||||||
setAuthorized(false);
|
setAuthorized(false);
|
||||||
console.error(`Error fetching image ${props.src}:`, response);
|
console.error(`Error fetching image ${props.src}:`, response);
|
||||||
break;
|
break;
|
||||||
@ -71,9 +66,14 @@ export function ApiImage(props: ImageProps) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack>
|
<Stack>
|
||||||
<LoadingOverlay visible={imgQuery.isLoading || imgQuery.isFetching} />
|
{image && image.length > 0 ? (
|
||||||
<Image {...props} src={image} withPlaceholder fit="contain" />
|
<Image {...props} src={image} withPlaceholder fit="contain" />
|
||||||
{imgQuery.isError && <Overlay color="#F00" />}
|
) : (
|
||||||
|
<Skeleton
|
||||||
|
height={props?.height ?? props.width}
|
||||||
|
width={props?.width ?? props.height}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</Stack>
|
</Stack>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user