Message / Sticker: Fix missing preview when sending twice

This commit is contained in:
Alexander Zinchuk 2022-11-13 17:05:49 +04:00
parent 610574c23a
commit 56af8a0f36
2 changed files with 11 additions and 3 deletions

View File

@ -7,6 +7,10 @@
}
}
.noTransition {
transition: none !important;
}
.media {
position: absolute;
top: 0;

View File

@ -100,11 +100,13 @@ const StickerView: FC<OwnProps> = ({
const shouldSkipFullMedia = Boolean(fullMediaHash === previewMediaHash && preloadedPreviewData);
const fullMediaData = useMedia(fullMediaHash, !shouldLoad || shouldSkipFullMedia, undefined, cacheBuster);
const [isPlayerReady, markPlayerReady] = useFlag(Boolean(isLottie && fullMediaData));
// If Lottie data is loaded we will only render thumb if it's good enough (from preview)
const [isPlayerReady, markPlayerReady] = useFlag(Boolean(isLottie && fullMediaData && !preloadedPreviewData));
const isFullMediaReady = fullMediaData && (isStatic || isPlayerReady);
const thumbClassNames = useMediaTransition(thumbData && !isFullMediaReady);
const fullMediaClassNames = useMediaTransition(isFullMediaReady);
const noTransition = isLottie && preloadedPreviewData;
// Preload preview for Message Input and local message
useMedia(previewMediaHash, !shouldLoad || !shouldPreloadPreview, undefined, cacheBuster);
@ -118,7 +120,7 @@ const StickerView: FC<OwnProps> = ({
<>
<img
src={thumbData}
className={buildClassName(styles.thumb, thumbClassName, thumbClassNames)}
className={buildClassName(styles.thumb, noTransition && styles.noTransition, thumbClassName, thumbClassNames)}
alt=""
/>
{isLottie ? (
@ -126,7 +128,9 @@ const StickerView: FC<OwnProps> = ({
key={idKey}
id={idKey}
size={size}
className={buildClassName(styles.media, fullMediaClassName, fullMediaClassNames)}
className={buildClassName(
styles.media, noTransition && styles.noTransition, fullMediaClassName, fullMediaClassNames,
)}
tgsUrl={fullMediaData}
play={shouldPlay}
color={customColor}