import React from 'react' import { StyleProp, StyleSheet, View, ViewStyle, TouchableOpacity, } from 'react-native' import {Text} from '../util/text/Text' import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' import {UserAvatar} from '../util/UserAvatar' import {Button} from '../util/forms/Button' import {observer} from 'mobx-react-lite' import {CustomFeedModel} from 'state/models/feeds/custom-feed' import {useFocusEffect, useNavigation} from '@react-navigation/native' import {NavigationProp} from 'lib/routes/types' import {useStores} from 'state/index' import {pluralize} from 'lib/strings/helpers' import {AtUri} from '@atproto/api' import {isWeb} from 'platform/detection' export const CustomFeed = observer( ({ item, style, showSaveBtn = false, showLikes = false, reloadOnFocus = false, }: { item: CustomFeedModel style?: StyleProp showSaveBtn?: boolean showLikes?: boolean reloadOnFocus?: boolean }) => { const store = useStores() const pal = usePalette('default') const navigation = useNavigation() // TODO: this is pretty hacky, but it works for now // causes issues on web useFocusEffect(() => { if (reloadOnFocus && !isWeb) { item.reload() } }) return ( { navigation.navigate('CustomFeed', { name: item.data.creator.did, rkey: new AtUri(item.data.uri).rkey, displayName: item.data.displayName ?? `${item.data.creator.displayName}'s feed`, }) }} key={item.data.uri}> {item.data.displayName ?? 'Feed name'} {showSaveBtn && (