From 5e6077ce4725285e2a0f6d0deafafd2f38005c8e Mon Sep 17 00:00:00 2001 From: balzack Date: Mon, 17 Oct 2022 00:10:36 -0700 Subject: [PATCH] setting topic focused state --- .../src/session/conversation/Conversation.jsx | 26 +++++++------------ .../conversation/Conversation.styled.js | 3 +++ .../conversation/topicItem/TopicItem.jsx | 14 +++++++--- .../topicItem/TopicItem.styled.js | 6 +++++ .../conversation/useConversation.hook.js | 4 +++ 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/app/mobile/src/session/conversation/Conversation.jsx b/app/mobile/src/session/conversation/Conversation.jsx index e2da99f2..1bbbc384 100644 --- a/app/mobile/src/session/conversation/Conversation.jsx +++ b/app/mobile/src/session/conversation/Conversation.jsx @@ -33,14 +33,6 @@ export function ConversationHeader({ closeConversation, openDetails }) { ); } -const RenderItem = memo((props: { item: number }) => { - return () -}); - -const renderItemHandler = ({ item }: { item: number }) => { - return -} - export function ConversationBody() { const { state, actions } = useConversation(); @@ -58,14 +50,16 @@ export function ConversationBody() { return ( - actions.setFocus(item.topicId)} />} keyExtractor={item => item.topicId} /> diff --git a/app/mobile/src/session/conversation/Conversation.styled.js b/app/mobile/src/session/conversation/Conversation.styled.js index 1d7cb096..401176ff 100644 --- a/app/mobile/src/session/conversation/Conversation.styled.js +++ b/app/mobile/src/session/conversation/Conversation.styled.js @@ -49,6 +49,9 @@ export const styles = StyleSheet.create({ flexDirection: 'column', }, topics: { + paddingBottom: 32, + }, + conversation: { flexShrink: 1, flexGrow: 1, minHeight: 0, diff --git a/app/mobile/src/session/conversation/topicItem/TopicItem.jsx b/app/mobile/src/session/conversation/topicItem/TopicItem.jsx index f2f25e37..2861f445 100644 --- a/app/mobile/src/session/conversation/topicItem/TopicItem.jsx +++ b/app/mobile/src/session/conversation/topicItem/TopicItem.jsx @@ -1,4 +1,5 @@ -import { FlatList, View, Text, TouchableOpacity, Modal, Image } from 'react-native'; +import { FlatList, View, Text, Modal, Image } from 'react-native'; +import { TouchableOpacity } from 'react-native-gesture-handler'; import { useTopicItem } from './useTopicItem.hook'; import { styles } from './TopicItem.styled'; import { Logo } from 'utils/Logo'; @@ -15,7 +16,7 @@ import Carousel from 'react-native-snap-carousel'; import GestureRecognizer from 'react-native-swipe-gestures'; import avatar from 'images/avatar.png'; -export function TopicItem({ item }) { +export function TopicItem({ item, focused, focus }) { const { state, actions } = useTopicItem(item); @@ -53,7 +54,7 @@ export function TopicItem({ item }) { } return ( - + { state.logo && ( @@ -63,6 +64,11 @@ export function TopicItem({ item }) { )} { state.name } { state.timestamp } + { focused && ( + + + + )} { state.status === 'confirmed' && ( <> @@ -113,7 +119,7 @@ export function TopicItem({ item }) { - + ); } diff --git a/app/mobile/src/session/conversation/topicItem/TopicItem.styled.js b/app/mobile/src/session/conversation/topicItem/TopicItem.styled.js index b413a1ab..1b795785 100644 --- a/app/mobile/src/session/conversation/topicItem/TopicItem.styled.js +++ b/app/mobile/src/session/conversation/topicItem/TopicItem.styled.js @@ -7,6 +7,7 @@ export const styles = StyleSheet.create({ borderColor: Colors.white, paddingTop: 8, paddingBottom: 8, + paddingRight: 16, }, header: { display: 'flex', @@ -42,5 +43,10 @@ export const styles = StyleSheet.create({ status: { paddingLeft: 52, }, + focused: { + position: 'absolute', + top: -16, + right: 16, + } }) diff --git a/app/mobile/src/session/conversation/useConversation.hook.js b/app/mobile/src/session/conversation/useConversation.hook.js index 19c5dfab..5c056326 100644 --- a/app/mobile/src/session/conversation/useConversation.hook.js +++ b/app/mobile/src/session/conversation/useConversation.hook.js @@ -9,6 +9,7 @@ export function useConversation() { logo: null, latched: true, momentum: false, + focus: null, }); const conversation = useContext(ConversationContext); @@ -47,6 +48,9 @@ export function useConversation() { clearMomentum: () => { updateState({ momentum: false }); }, + setFocus: (focus) => { + updateState({ focus }); + }, }; return { state, actions };