diff options
author | Ansh Nanda <anshnanda10@gmail.com> | 2023-05-16 18:28:44 -0700 |
---|---|---|
committer | Ansh Nanda <anshnanda10@gmail.com> | 2023-05-16 18:28:44 -0700 |
commit | 53ca0cd626cc71fea38fb0f59f68092ab406d143 (patch) | |
tree | 1976638d19e7ad542a8cf71641fc7d9d77718653 /src/view/com/algos/SavedFeedItem.tsx | |
parent | 139027ac5f843c65aae5ad824d049aae6dae9f79 (diff) | |
download | voidsky-53ca0cd626cc71fea38fb0f59f68092ab406d143.tar.zst |
drag to rearrange pinned items
Diffstat (limited to 'src/view/com/algos/SavedFeedItem.tsx')
-rw-r--r-- | src/view/com/algos/SavedFeedItem.tsx | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/view/com/algos/SavedFeedItem.tsx b/src/view/com/algos/SavedFeedItem.tsx new file mode 100644 index 000000000..bb4ec10b3 --- /dev/null +++ b/src/view/com/algos/SavedFeedItem.tsx @@ -0,0 +1,50 @@ +import React from 'react' +import {View, TouchableOpacity, StyleSheet} from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {colors} from 'lib/styles' +import {observer} from 'mobx-react-lite' +import {AlgoItemModel} from 'state/models/feeds/algo/algo-item' +import {SavedFeedsModel} from 'state/models/feeds/algo/saved' +import AlgoItem from './AlgoItem' + +export const SavedFeedItem = observer( + ({item, savedFeeds}: {item: AlgoItemModel; savedFeeds: SavedFeedsModel}) => { + const isPinned = savedFeeds.isPinned(item) + + return ( + <View style={styles.itemContainer}> + <AlgoItem + key={item.data.uri} + item={item} + showBottom={false} + style={styles.item} + /> + <TouchableOpacity + accessibilityRole="button" + onPress={() => { + savedFeeds.togglePinnedFeed(item) + console.log('pinned', savedFeeds.pinned) + console.log('isPinned', savedFeeds.isPinned(item)) + }}> + <FontAwesomeIcon + icon="thumb-tack" + size={20} + color={isPinned ? colors.blue3 : colors.gray3} + /> + </TouchableOpacity> + </View> + ) + }, +) + +const styles = StyleSheet.create({ + itemContainer: { + flex: 1, + flexDirection: 'row', + alignItems: 'center', + marginRight: 18, + }, + item: { + borderTopWidth: 0, + }, +}) |