import React from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {logEvent} from '#/lib/statsig/statsig' import {isWeb} from '#/platform/detection' import { useTrendingSettings, useTrendingSettingsApi, } from '#/state/preferences/trending' import { DEFAULT_LIMIT as RECOMMENDATIONS_COUNT, useTrendingTopics, } from '#/state/queries/trending/useTrendingTopics' import {useTrendingConfig} from '#/state/trending-config' import {atoms as a, useGutters, useTheme} from '#/alf' import {Button, ButtonIcon} from '#/components/Button' import {Hashtag_Stroke2_Corner0_Rounded} from '#/components/icons/Hashtag' import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' import * as Prompt from '#/components/Prompt' import { TrendingTopic, TrendingTopicLink, TrendingTopicSkeleton, } from '#/components/TrendingTopics' import {Text} from '#/components/Typography' export function ExploreRecommendations() { const {enabled} = useTrendingConfig() const {trendingDisabled} = useTrendingSettings() return enabled && !trendingDisabled ? : null } function Inner() { const t = useTheme() const {_} = useLingui() const gutters = useGutters([0, 'compact']) const {data: trending, error, isLoading} = useTrendingTopics() const noRecs = !isLoading && !error && !trending?.suggested?.length const {setTrendingDisabled} = useTrendingSettingsApi() const trendingPrompt = Prompt.usePromptControl() const onConfirmHide = React.useCallback(() => { logEvent('trendingTopics:hide', {context: 'explore:recommendations'}) setTrendingDisabled(true) }, [setTrendingDisabled]) return error || noRecs ? null : ( <> Recommended Feeds we think you might like. {isLoading ? ( Array(RECOMMENDATIONS_COUNT) .fill(0) .map((_, i) => ) ) : !trending?.suggested ? null : ( <> {trending.suggested.map(topic => ( {({hovered}) => ( )} ))} )} ) }