diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-05-17 21:23:32 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2023-05-17 21:23:32 -0500 |
commit | 6bf8e7215784dafd04ae3639a28666eea77ed1bd (patch) | |
tree | bcb13a4f42097db5234f651f03bd42a89d8199b2 /src/view/com/feeds/SavedFeedItem.tsx | |
parent | f0003d193182bd70935ca6b7e67897922297deed (diff) | |
download | voidsky-6bf8e7215784dafd04ae3639a28666eea77ed1bd.tar.zst |
Usability improvements to feeds
Diffstat (limited to 'src/view/com/feeds/SavedFeedItem.tsx')
-rw-r--r-- | src/view/com/feeds/SavedFeedItem.tsx | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/src/view/com/feeds/SavedFeedItem.tsx b/src/view/com/feeds/SavedFeedItem.tsx index 329f1811e..8a5889e47 100644 --- a/src/view/com/feeds/SavedFeedItem.tsx +++ b/src/view/com/feeds/SavedFeedItem.tsx @@ -1,41 +1,51 @@ -import React from 'react' -import {View, TouchableOpacity, StyleSheet} from 'react-native' +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}> + <View style={[styles.itemContainer, style]}> <CustomFeed key={item.data.uri} item={item} - style={styles.item} - showSaveBtn + showSaveBtn={showSaveBtn} + style={styles.noBorder} /> - <TouchableOpacity - accessibilityRole="button" - onPress={() => { - savedFeeds.togglePinnedFeed(item) - console.log('pinned', savedFeeds.pinned) - console.log('isPinned', savedFeeds.isPinned(item)) - }}> + <TouchableOpacity accessibilityRole="button" onPress={onTogglePinned}> <FontAwesomeIcon icon="thumb-tack" size={20} - color={isPinned ? colors.blue3 : colors.gray3} + color={isPinned ? colors.blue3 : pal.colors.icon} /> </TouchableOpacity> </View> @@ -50,7 +60,7 @@ const styles = StyleSheet.create({ alignItems: 'center', marginRight: 18, }, - item: { + noBorder: { borderTopWidth: 0, }, }) |