fix(ui): восстановить показ аватаров и корректный fallback
This commit is contained in:
parent
c094af920e
commit
3d5b5b2214
@ -1,2 +1,2 @@
|
|||||||
client.version=1.2.9
|
client.version=1.2.10
|
||||||
server.version=1.2.9
|
server.version=1.2.10
|
||||||
|
|||||||
@ -57,9 +57,13 @@ export function renderUserAvatar({
|
|||||||
img.alt = 'Аватар';
|
img.alt = 'Аватар';
|
||||||
img.loading = 'lazy';
|
img.loading = 'lazy';
|
||||||
img.decoding = 'async';
|
img.decoding = 'async';
|
||||||
img.hidden = true;
|
|
||||||
wrap.append(img);
|
wrap.append(img);
|
||||||
|
|
||||||
|
const setLoadedState = (loaded) => {
|
||||||
|
wrap.classList.toggle('has-image', Boolean(loaded));
|
||||||
|
};
|
||||||
|
setLoadedState(false);
|
||||||
|
|
||||||
const gateway = state?.entrySettings?.arweaveServer;
|
const gateway = state?.entrySettings?.arweaveServer;
|
||||||
void getCachedAvatarObjectUrl({ gateway, txId })
|
void getCachedAvatarObjectUrl({ gateway, txId })
|
||||||
.then((objectUrl) => {
|
.then((objectUrl) => {
|
||||||
@ -74,8 +78,7 @@ export function renderUserAvatar({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
img.onload = () => {
|
img.onload = () => {
|
||||||
fallback.hidden = true;
|
setLoadedState(true);
|
||||||
img.hidden = false;
|
|
||||||
releaseObjectUrl();
|
releaseObjectUrl();
|
||||||
};
|
};
|
||||||
img.onerror = () => {
|
img.onerror = () => {
|
||||||
@ -86,8 +89,8 @@ export function renderUserAvatar({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
releaseObjectUrl();
|
releaseObjectUrl();
|
||||||
img.hidden = true;
|
img.removeAttribute('src');
|
||||||
fallback.hidden = false;
|
setLoadedState(false);
|
||||||
};
|
};
|
||||||
img.src = objectUrl;
|
img.src = objectUrl;
|
||||||
})
|
})
|
||||||
@ -99,17 +102,16 @@ export function renderUserAvatar({
|
|||||||
directUrl = '';
|
directUrl = '';
|
||||||
}
|
}
|
||||||
if (!directUrl) {
|
if (!directUrl) {
|
||||||
img.hidden = true;
|
img.removeAttribute('src');
|
||||||
fallback.hidden = false;
|
setLoadedState(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
img.onload = () => {
|
img.onload = () => {
|
||||||
fallback.hidden = true;
|
setLoadedState(true);
|
||||||
img.hidden = false;
|
|
||||||
};
|
};
|
||||||
img.onerror = () => {
|
img.onerror = () => {
|
||||||
img.hidden = true;
|
img.removeAttribute('src');
|
||||||
fallback.hidden = false;
|
setLoadedState(false);
|
||||||
};
|
};
|
||||||
img.src = directUrl;
|
img.src = directUrl;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -656,11 +656,8 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
display: grid;
|
display: grid;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
}
|
opacity: 1;
|
||||||
|
transition: opacity 120ms ease;
|
||||||
.avatar-fallback[hidden],
|
|
||||||
.avatar-image img[hidden] {
|
|
||||||
display: none !important;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatar-image img,
|
.avatar-image img,
|
||||||
@ -672,6 +669,17 @@
|
|||||||
object-position: center;
|
object-position: center;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
display: block;
|
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 {
|
.meta-muted {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user