import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {logger} from '#/logger' import {useEnableSquareButtons} from '#/state/preferences/enable-square-buttons' import { useTrendingSettings, useTrendingSettingsApi, } from '#/state/preferences/trending' import {useTrendingTopics} from '#/state/queries/trending/useTrendingTopics' import {useTrendingConfig} from '#/state/service-config' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon} from '#/components/Button' import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid' import {Trending3_Stroke2_Corner1_Rounded as TrendingIcon} from '#/components/icons/Trending' import * as Prompt from '#/components/Prompt' import {TrendingTopicLink} from '#/components/TrendingTopics' import {Text} from '#/components/Typography' const TRENDING_LIMIT = 5 export function SidebarTrendingTopics() { const {enabled} = useTrendingConfig() const {trendingDisabled} = useTrendingSettings() return !enabled ? null : trendingDisabled ? null : } function Inner() { const t = useTheme() const {_} = useLingui() const trendingPrompt = Prompt.usePromptControl() const {setTrendingDisabled} = useTrendingSettingsApi() const {data: trending, error, isLoading} = useTrendingTopics() const noTopics = !isLoading && !error && !trending?.topics?.length const enableSquareButtons = useEnableSquareButtons() const onConfirmHide = () => { logger.metric('trendingTopics:hide', {context: 'sidebar'}) setTrendingDisabled(true) } return error || noTopics ? null : ( <> Trending {isLoading ? ( Array(TRENDING_LIMIT) .fill(0) .map((_n, i) => ( {i + 1}. )) ) : !trending?.topics ? null : ( <> {trending.topics.slice(0, TRENDING_LIMIT).map((topic, i) => ( { logger.metric('trendingTopic:click', {context: 'sidebar'}) }}> {({hovered}) => ( {i + 1}. {topic.displayName ?? topic.topic} )} ))} )} ) }