Fix stickers blinking again

This commit is contained in:
morethanwords 2021-01-11 20:09:20 +04:00
parent 640ff63209
commit bdf5118c73
4 changed files with 37 additions and 30 deletions

View File

@ -732,7 +732,7 @@ export function wrapSticker({doc, div, middleware, lazyLoadQueue, group, play, o
if(thumb._ === 'photoPathSize') { if(thumb._ === 'photoPathSize') {
if(thumb.bytes.length) { if(thumb.bytes.length) {
const d = appPhotosManager.getPathFromPhotoPathSize(thumb); const d = appPhotosManager.getPathFromPhotoPathSize(thumb);
div.innerHTML = `<svg class="rlottie-vector" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 ${doc.w || 512} ${doc.h || 512}" xml:space="preserve"> div.innerHTML = `<svg class="rlottie-vector media-sticker thumbnail" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 ${doc.w || 512} ${doc.h || 512}" xml:space="preserve">
<path d="${d}"/> <path d="${d}"/>
</svg>`; </svg>`;
} else { } else {
@ -848,12 +848,14 @@ export function wrapSticker({doc, div, middleware, lazyLoadQueue, group, play, o
cb(); cb();
} else { } else {
animation.canvas.classList.add('fade-in'); animation.canvas.classList.add('fade-in');
if(element) { if(element) {
setTimeout(() => { element.classList.add('fade-out');
cb();
}, element.tagName === 'svg' ? 50 : 200);
} }
setTimeout(() => {
animation.canvas.classList.remove('fade-in');
cb();
}, 200);
} }
appDocsManager.saveLottiePreview(doc, animation.canvas, toneIndex); appDocsManager.saveLottiePreview(doc, animation.canvas, toneIndex);
@ -895,6 +897,9 @@ export function wrapSticker({doc, div, middleware, lazyLoadQueue, group, play, o
renderImageFromUrl(image, doc.url, () => { renderImageFromUrl(image, doc.url, () => {
div.append(image); div.append(image);
if(thumbImage) {
thumbImage.classList.add('fade-out');
}
window.requestAnimationFrame(() => { window.requestAnimationFrame(() => {
resolve(); resolve();
@ -903,7 +908,6 @@ export function wrapSticker({doc, div, middleware, lazyLoadQueue, group, play, o
if(needFadeIn) { if(needFadeIn) {
setTimeout(() => { setTimeout(() => {
image.classList.remove('fade-in'); image.classList.remove('fade-in');
if(thumbImage) { if(thumbImage) {
thumbImage.remove(); thumbImage.remove();
} }

View File

@ -298,6 +298,9 @@
padding: 8px; padding: 8px;
max-width: 100%; max-width: 100%;
max-height: 100%; max-height: 100%;
}
> canvas {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }

View File

@ -80,9 +80,6 @@
img { img {
max-width: 100%; max-width: 100%;
max-height: 100%; max-height: 100%;
width: 100%;
height: 100%;
object-fit: contain;
} }
} }
} }

View File

@ -743,27 +743,6 @@ img.emoji {
pointer-events: none; pointer-events: none;
} }
.rlottie, .rlottie-vector {
left: 0;
top: 0;
bottom: 0;
right: 0;
position: absolute;
max-width: 100%;
max-height: 100%;
width: 100%;
height: 100%;
z-index: 1;
}
.rlottie.fade-in {
animation: fade-in-opacity .2s ease forwards;
}
.rlottie-vector {
fill: rgba(0, 0, 0, .08);
}
.super-stickers { .super-stickers {
width: 100%; width: 100%;
display: grid; display: grid;
@ -1177,6 +1156,26 @@ middle-ellipsis-element {
} }
} }
.rlottie, .rlottie-vector {
left: 0;
top: 0;
bottom: 0;
right: 0;
position: absolute;
max-width: 100%;
max-height: 100%;
width: 100%;
height: 100%;
}
.rlottie.fade-in {
animation: fade-in-opacity .2s ease-in-out forwards;
}
.rlottie-vector {
fill: rgba(0, 0, 0, .08);
}
.media-photo, .media-video, .media-sticker { .media-photo, .media-video, .media-sticker {
position: absolute; position: absolute;
top: 0; top: 0;
@ -1187,6 +1186,10 @@ middle-ellipsis-element {
&.fade-in { &.fade-in {
animation: fade-in-opacity .2s ease-in-out forwards; animation: fade-in-opacity .2s ease-in-out forwards;
} }
&.fade-out {
animation: fade-out-opacity .2s ease-in-out forwards;
}
} }
.media-video { .media-video {