From 4524cc8417bb580b5000114f2728bf2fc5beca0c Mon Sep 17 00:00:00 2001 From: Anton Tranelis Date: Tue, 4 Feb 2025 19:56:46 +0000 Subject: [PATCH] added avatar placeholder --- .../ItemPopupComponents/HeaderView.tsx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx index 83fd9f2c..b7602afc 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx @@ -9,7 +9,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-non-null-assertion */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ -import { useState } from 'react' +import { useState, useEffect } from 'react' import { useNavigate } from 'react-router-dom' import { useAppState } from '#components/AppShell/hooks/useAppState' @@ -57,6 +57,12 @@ export function HeaderView({ const navigate = useNavigate() const appState = useAppState() + const [imageLoaded, setImageLoaded] = useState(false) + + useEffect(() => { + setImageLoaded(false) + }, [item]) + const avatar = itemAvatarField && getValue(item, itemAvatarField) ? appState.assetsApi.url + @@ -92,13 +98,21 @@ export function HeaderView({ {avatar && (
{item.name setImageLoaded(true)} + onError={() => setImageLoaded(false)} + style={{ display: imageLoaded ? 'block' : 'none' }} /> + {!imageLoaded && ( +
+ )}
)}