Sticker View: Fix displaying preview for unsupported video
This commit is contained in:
parent
3c1248b471
commit
45b81c104a
@ -104,19 +104,14 @@ const StickerView: FC<OwnProps> = ({
|
|||||||
hasIntersectedForPlayingRef.current = true;
|
hasIntersectedForPlayingRef.current = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const isReadyToMountFullMedia = useMountAfterHeavyAnimation(hasIntersectedForPlayingRef.current);
|
|
||||||
|
|
||||||
const cachedPreview = mediaLoader.getFromMemory(previewMediaHash);
|
const cachedPreview = mediaLoader.getFromMemory(previewMediaHash);
|
||||||
const shouldLoadPreview = !customColor && !cachedPreview && (
|
const isReadyToMountFullMedia = useMountAfterHeavyAnimation(hasIntersectedForPlayingRef.current);
|
||||||
!isReadyToMountFullMedia || isUnsupportedVideo || (isStatic ? isSmall : noPlay)
|
const shouldForcePreview = isUnsupportedVideo || (isStatic ? isSmall : noPlay);
|
||||||
);
|
const shouldLoadPreview = !customColor && !cachedPreview && (!isReadyToMountFullMedia || shouldForcePreview);
|
||||||
const previewMediaData = useMedia(previewMediaHash, !shouldLoadPreview);
|
const previewMediaData = useMedia(previewMediaHash, !shouldLoadPreview);
|
||||||
|
const shouldSkipFullMedia = Boolean(shouldForcePreview || (
|
||||||
const thumbDataUri = useThumbnail(sticker);
|
fullMediaHash === previewMediaHash && (cachedPreview || previewMediaData)
|
||||||
const thumbData = cachedPreview || previewMediaData || thumbDataUri;
|
));
|
||||||
|
|
||||||
// No need to use full media if preview is enough and available
|
|
||||||
const shouldSkipFullMedia = Boolean(fullMediaHash === previewMediaHash && (cachedPreview || previewMediaData));
|
|
||||||
const fullMediaData = useMedia(fullMediaHash || `sticker${id}`, !shouldLoad || shouldSkipFullMedia);
|
const fullMediaData = useMedia(fullMediaHash || `sticker${id}`, !shouldLoad || shouldSkipFullMedia);
|
||||||
// If Lottie data is loaded we will only render thumb if it's good enough (from preview)
|
// If Lottie data is loaded we will only render thumb if it's good enough (from preview)
|
||||||
const [isPlayerReady, markPlayerReady] = useFlag(Boolean(isLottie && fullMediaData && !previewMediaData));
|
const [isPlayerReady, markPlayerReady] = useFlag(Boolean(isLottie && fullMediaData && !previewMediaData));
|
||||||
@ -124,6 +119,8 @@ const StickerView: FC<OwnProps> = ({
|
|||||||
const shouldRenderFullMedia = isReadyToMountFullMedia && fullMediaData;
|
const shouldRenderFullMedia = isReadyToMountFullMedia && fullMediaData;
|
||||||
const isFullMediaReady = isReadyToMountFullMedia && fullMediaData && (isStatic || isPlayerReady);
|
const isFullMediaReady = isReadyToMountFullMedia && fullMediaData && (isStatic || isPlayerReady);
|
||||||
|
|
||||||
|
const thumbDataUri = useThumbnail(sticker);
|
||||||
|
const thumbData = cachedPreview || previewMediaData || thumbDataUri;
|
||||||
const isThumbOpaque = sharedCanvasRef && !withTranslucentThumb;
|
const isThumbOpaque = sharedCanvasRef && !withTranslucentThumb;
|
||||||
const thumbClassNames = useMediaTransition(thumbData && !isFullMediaReady);
|
const thumbClassNames = useMediaTransition(thumbData && !isFullMediaReady);
|
||||||
const fullMediaClassNames = useMediaTransition(isFullMediaReady);
|
const fullMediaClassNames = useMediaTransition(isFullMediaReady);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user