diff --git a/src/components/common/gift/SavedGift.module.scss b/src/components/common/gift/SavedGift.module.scss index 4583d2a6c..179be0944 100644 --- a/src/components/common/gift/SavedGift.module.scss +++ b/src/components/common/gift/SavedGift.module.scss @@ -65,3 +65,7 @@ position: absolute; inset: 0; } + +.stickerWrapper { + position: relative; +} diff --git a/src/components/common/gift/SavedGift.tsx b/src/components/common/gift/SavedGift.tsx index 67154281a..6760cd4b9 100644 --- a/src/components/common/gift/SavedGift.tsx +++ b/src/components/common/gift/SavedGift.tsx @@ -11,13 +11,12 @@ import { formatIntegerCompact } from '../../../util/textFormat'; import { getGiftAttributes, getStickerFromGift, getTotalGiftAvailability } from '../helpers/gifts'; import useContextMenuHandlers from '../../../hooks/useContextMenuHandlers'; -import useFlag from '../../../hooks/useFlag'; -import { type ObserveFn, useOnIntersect } from '../../../hooks/useIntersectionObserver'; +import { type ObserveFn } from '../../../hooks/useIntersectionObserver'; import useLang from '../../../hooks/useLang'; import useLastCallback from '../../../hooks/useLastCallback'; +import StickerView from '../../common/StickerView'; import Menu from '../../ui/Menu'; -import AnimatedIconFromSticker from '../AnimatedIconFromSticker'; import Avatar from '../Avatar'; import Icon from '../icons/Icon'; import RadialPatternBackground from '../profile/RadialPatternBackground'; @@ -58,7 +57,7 @@ const SavedGift = ({ const ref = useRef(); - const [shouldPlay, play] = useFlag(); + const stickerRef = useRef(); const lang = useLang(); @@ -102,10 +101,6 @@ const SavedGift = ({ }); }); - const handleOnIntersect = useLastCallback((entry: IntersectionObserverEntry) => { - if (entry.isIntersecting) play(); - }); - const avatarPeer = (gift.isNameHidden && !fromPeer) ? CUSTOM_PEER_HIDDEN : fromPeer; const sticker = getStickerFromGift(gift.gift); @@ -130,8 +125,6 @@ const SavedGift = ({ ); }, [gift.gift]); - useOnIntersect(ref, observeIntersection, sticker ? handleOnIntersect : undefined); - if (!sticker) return undefined; return ( @@ -146,13 +139,23 @@ const SavedGift = ({ {radialPatternBackdrop} {!radialPatternBackdrop && } {gift.isPinned && } - +
+ {sticker && ( + + )} + +
{gift.isUnsaved && (