fix(ui): восстановить показ аватаров и корректный fallback

This commit is contained in:
AidarKC 2026-04-26 09:31:56 +03:00
parent c094af920e
commit 3d5b5b2214
3 changed files with 28 additions and 18 deletions

View File

@ -1,2 +1,2 @@
client.version=1.2.9
server.version=1.2.9
client.version=1.2.10
server.version=1.2.10

View File

@ -57,9 +57,13 @@ export function renderUserAvatar({
img.alt = 'Аватар';
img.loading = 'lazy';
img.decoding = 'async';
img.hidden = true;
wrap.append(img);
const setLoadedState = (loaded) => {
wrap.classList.toggle('has-image', Boolean(loaded));
};
setLoadedState(false);
const gateway = state?.entrySettings?.arweaveServer;
void getCachedAvatarObjectUrl({ gateway, txId })
.then((objectUrl) => {
@ -74,8 +78,7 @@ export function renderUserAvatar({
}
};
img.onload = () => {
fallback.hidden = true;
img.hidden = false;
setLoadedState(true);
releaseObjectUrl();
};
img.onerror = () => {
@ -86,8 +89,8 @@ export function renderUserAvatar({
return;
}
releaseObjectUrl();
img.hidden = true;
fallback.hidden = false;
img.removeAttribute('src');
setLoadedState(false);
};
img.src = objectUrl;
})
@ -99,17 +102,16 @@ export function renderUserAvatar({
directUrl = '';
}
if (!directUrl) {
img.hidden = true;
fallback.hidden = false;
img.removeAttribute('src');
setLoadedState(false);
return;
}
img.onload = () => {
fallback.hidden = true;
img.hidden = false;
setLoadedState(true);
};
img.onerror = () => {
img.hidden = true;
fallback.hidden = false;
img.removeAttribute('src');
setLoadedState(false);
};
img.src = directUrl;
});

View File

@ -656,11 +656,8 @@
height: 100%;
display: grid;
place-items: center;
}
.avatar-fallback[hidden],
.avatar-image img[hidden] {
display: none !important;
opacity: 1;
transition: opacity 120ms ease;
}
.avatar-image img,
@ -672,6 +669,17 @@
object-position: center;
border-radius: 50%;
display: block;
opacity: 0;
transition: opacity 120ms ease;
}
.avatar-image.has-image img {
opacity: 1;
}
.avatar-image.has-image .avatar-fallback {
opacity: 0;
visibility: hidden;
}
.meta-muted {