diff --git a/native/navigation/community-drawer-content.react.js b/native/navigation/community-drawer-content.react.js --- a/native/navigation/community-drawer-content.react.js +++ b/native/navigation/community-drawer-content.react.js @@ -18,6 +18,7 @@ import CommunityDrawerItemCommunity from './community-drawer-item-community.react.js'; import { useNavigateToThread } from '../chat/message-list-types.js'; import { useStyles } from '../themes/colors.js'; +import { useShouldRenderAvatars } from '../utils/avatar-utils.js'; const maxDepth = 2; const safeAreaEdges = Platform.select({ @@ -58,15 +59,24 @@ [navigateToThread, openCommunity, setOpenCommunityOrClose], ); + const shouldRenderAvatars = useShouldRenderAvatars(); + const labelStylesObj = useStyles(labelUnboundStyles); - const labelStyles = React.useMemo( - () => [ + const labelStyles = React.useMemo(() => { + let result = [ labelStylesObj.level0Label, labelStylesObj.level1Label, labelStylesObj.level2Label, - ], - [labelStylesObj], - ); + ]; + + result = result.map(style => { + if (shouldRenderAvatars) { + return { ...style, marginLeft: 8 }; + } + return style; + }); + return result; + }, [labelStylesObj, shouldRenderAvatars]); const drawerItemsData = React.useMemo( () => diff --git a/native/navigation/community-drawer-item.react.js b/native/navigation/community-drawer-item.react.js --- a/native/navigation/community-drawer-item.react.js +++ b/native/navigation/community-drawer-item.react.js @@ -3,12 +3,14 @@ import * as React from 'react'; import { View, FlatList, TouchableOpacity } from 'react-native'; +import { useGetAvatarForThread } from 'lib/shared/avatar-utils.js'; import type { CommunityDrawerItemData } from 'lib/utils/drawer-utils.react.js'; import { useResolvedThreadInfo } from 'lib/utils/entity-helpers.js'; import { ExpandButton, ExpandButtonDisabled } from './expand-buttons.react.js'; import SubchannelsButton from './subchannels-button.react.js'; import type { MessageListParams } from '../chat/message-list-types.js'; +import Avatar from '../components/avatar.react.js'; import { SingleLine } from '../components/single-line.react.js'; import { useStyles } from '../themes/colors.js'; import type { TextStyle } from '../types/styles.js'; @@ -77,7 +79,13 @@ navigateToThread({ threadInfo }); }, [navigateToThread, threadInfo]); - const { uiName } = useResolvedThreadInfo(threadInfo); + const resolvedThreadInfo = useResolvedThreadInfo(threadInfo); + const avatarInfo = useGetAvatarForThread(resolvedThreadInfo); + + const avatar = React.useMemo(() => { + return ; + }, [avatarInfo]); + return ( @@ -87,7 +95,10 @@ style={styles.textTouchableWrapper} onLongPress={onExpandToggled} > - {uiName} + {avatar} + + {resolvedThreadInfo.uiName} + {children} @@ -105,6 +116,8 @@ }, textTouchableWrapper: { flex: 1, + flexDirection: 'row', + alignItems: 'center', }, subchannelsButton: { marginLeft: 24,