// SPDX-License-Identifier: AGPL-3.0-or-later import {useAnimatedMediaVideoPlayback} from '@app/features/app/hooks/useAnimatedMediaPlayback'; import {type AutocompleteOption, isGif} from '@app/features/channel/components/Autocomplete'; import styles from '@app/features/channel/components/AutocompleteGif.module.css'; import * as KlipyUtils from '@app/features/expressions/utils/KlipyUtils'; import {GIFS_DESCRIPTOR} from '@app/features/i18n/utils/CommonMessageDescriptors'; import {Scroller, type ScrollerHandle} from '@app/features/ui/components/Scroller'; import {msg} from '@lingui/core/macro'; import {useLingui} from '@lingui/react/macro'; import {observer} from 'mobx-react-lite'; import type React from 'react'; import {useEffect, useMemo, useRef} from 'react'; const NO_GIFS_FOUND_DESCRIPTOR = msg({ message: 'No GIFs match', comment: 'Empty-state text in the channel and chat autocomplete gif.', }); const AutocompleteGifVideo = ({src}: {src: string}) => { const videoRef = useRef(null); const playbackAllowed = useAnimatedMediaVideoPlayback(videoRef); return (