From ed7293ea666538532d809f14431099064cae559e Mon Sep 17 00:00:00 2001 From: Paul Frazee <pfrazee@gmail.com> Date: Wed, 17 May 2023 22:15:44 -0500 Subject: [PATCH] Remove redundant component --- src/view/com/feeds/SavedFeedItem.tsx | 66 ---------------------------- src/view/screens/SavedFeeds.tsx | 32 ++++++++++++-- 2 files changed, 28 insertions(+), 70 deletions(-) delete mode 100644 src/view/com/feeds/SavedFeedItem.tsx diff --git a/src/view/com/feeds/SavedFeedItem.tsx b/src/view/com/feeds/SavedFeedItem.tsx deleted file mode 100644 index 8a5889e4..00000000 --- a/src/view/com/feeds/SavedFeedItem.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import React, {useCallback} from 'react' -import { - View, - TouchableOpacity, - StyleSheet, - StyleProp, - ViewStyle, -} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {colors} from 'lib/styles' -import {observer} from 'mobx-react-lite' -import {CustomFeedModel} from 'state/models/feeds/custom-feed' -import {SavedFeedsModel} from 'state/models/ui/saved-feeds' -import {CustomFeed} from './CustomFeed' -import {usePalette} from 'lib/hooks/usePalette' - -export const SavedFeedItem = observer( - ({ - item, - savedFeeds, - showSaveBtn = false, - style, - }: { - item: CustomFeedModel - savedFeeds: SavedFeedsModel - showSaveBtn?: boolean - style?: StyleProp<ViewStyle> - }) => { - const pal = usePalette('default') - const isPinned = savedFeeds.isPinned(item) - const onTogglePinned = useCallback( - () => savedFeeds.togglePinnedFeed(item), - [savedFeeds, item], - ) - - return ( - <View style={[styles.itemContainer, style]}> - <CustomFeed - key={item.data.uri} - item={item} - showSaveBtn={showSaveBtn} - style={styles.noBorder} - /> - <TouchableOpacity accessibilityRole="button" onPress={onTogglePinned}> - <FontAwesomeIcon - icon="thumb-tack" - size={20} - color={isPinned ? colors.blue3 : pal.colors.icon} - /> - </TouchableOpacity> - </View> - ) - }, -) - -const styles = StyleSheet.create({ - itemContainer: { - flex: 1, - flexDirection: 'row', - alignItems: 'center', - marginRight: 18, - }, - noBorder: { - borderTopWidth: 0, - }, -}) diff --git a/src/view/screens/SavedFeeds.tsx b/src/view/screens/SavedFeeds.tsx index b1ea27af..5b9b546f 100644 --- a/src/view/screens/SavedFeeds.tsx +++ b/src/view/screens/SavedFeeds.tsx @@ -19,12 +19,12 @@ import {ViewHeader} from 'view/com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' import {Text} from 'view/com/util/text/Text' import {isDesktopWeb, isWeb} from 'platform/detection' -import {s} from 'lib/styles' +import {s, colors} from 'lib/styles' import DraggableFlatList, { ShadowDecorator, ScaleDecorator, } from 'react-native-draggable-flatlist' -import {SavedFeedItem} from 'view/com/feeds/SavedFeedItem' +import {CustomFeed} from 'view/com/feeds/CustomFeed' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {CustomFeedModel} from 'state/models/feeds/custom-feed' @@ -106,6 +106,10 @@ const ListItem = observer( const rootStore = useStores() const savedFeeds = useMemo(() => rootStore.me.savedFeeds, [rootStore]) const isPinned = savedFeeds.isPinned(item) + const onTogglePinned = useCallback( + () => savedFeeds.togglePinnedFeed(item), + [savedFeeds, item], + ) return ( <ScaleDecorator> <ShadowDecorator> @@ -146,7 +150,21 @@ const ListItem = observer( style={s.ml20} /> ) : null} - <SavedFeedItem item={item} savedFeeds={savedFeeds} showSaveBtn /> + <CustomFeed + key={item.data.uri} + item={item} + showSaveBtn + style={styles.noBorder} + /> + <TouchableOpacity + accessibilityRole="button" + onPress={onTogglePinned}> + <FontAwesomeIcon + icon="thumb-tack" + size={20} + color={isPinned ? colors.blue3 : pal.colors.icon} + /> + </TouchableOpacity> </Pressable> </ShadowDecorator> </ScaleDecorator> @@ -170,10 +188,16 @@ const styles = StyleSheet.create({ flexDirection: 'row', alignItems: 'center', borderTopWidth: 1, + paddingRight: 16, }, webArrowButtonsContainer: { flexDirection: 'column', justifyContent: 'space-around', }, - webArrowUpButton: {marginBottom: 10}, + webArrowUpButton: { + marginBottom: 10, + }, + noBorder: { + borderTopWidth: 0, + }, })