···13/**
14 * Corresponds to the width of a small square or round button
15 */
16-export const HEADER_SLOT_SIZE = 34
1718/**
19 * How far to shift the center column when in the tablet breakpoint
···13/**
14 * Corresponds to the width of a small square or round button
15 */
16+export const HEADER_SLOT_SIZE = 33
1718/**
19 * How far to shift the center column when in the tablet breakpoint
+20-20
src/components/dms/ConvoMenu.tsx
···1import React, {useCallback} from 'react'
2-import {Keyboard, Pressable, View} from 'react-native'
3-import {ChatBskyConvoDefs, ModerationCause} from '@atproto/api'
4import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {useNavigation} from '@react-navigation/native'
78-import {NavigationProp} from '#/lib/routes/types'
9-import {Shadow} from '#/state/cache/types'
10import {
11 useConvoQuery,
12 useMarkAsReadMutation,
···14import {useMuteConvo} from '#/state/queries/messages/mute-conversation'
15import {useProfileBlockMutationQueue} from '#/state/queries/profile'
16import * as Toast from '#/view/com/util/Toast'
17-import {atoms as a, useTheme, ViewStyleProp} from '#/alf'
0018import {BlockedByListDialog} from '#/components/dms/BlockedByListDialog'
19import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt'
20import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt'
021import {ArrowBoxLeft_Stroke2_Corner0_Rounded as ArrowBoxLeft} from '#/components/icons/ArrowBoxLeft'
022import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid'
23import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag'
24import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute'
···30import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker'
31import * as Menu from '#/components/Menu'
32import * as Prompt from '#/components/Prompt'
33-import * as bsky from '#/types/bsky'
34-import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '../icons/Bubble'
35-import {ReportDialog} from './ReportDialog'
3637let ConvoMenu = ({
38 convo,
···59 style?: ViewStyleProp['style']
60}): React.ReactNode => {
61 const {_} = useLingui()
62- const t = useTheme()
6364 const leaveConvoControl = Prompt.usePromptControl()
65 const reportControl = Prompt.usePromptControl()
···73 {!hideTrigger && (
74 <View style={[style]}>
75 <Menu.Trigger label={_(msg`Chat settings`)}>
76- {({props, state}) => (
77- <Pressable
078 {...props}
79 onPress={() => {
80 Keyboard.dismiss()
81 props.onPress()
82 }}
83- style={[
84- a.p_sm,
85- a.rounded_full,
86- (state.hovered || state.pressed) && t.atoms.bg_contrast_25,
87- // make sure pfp is in the middle
88- {marginLeft: -10},
89- ]}>
90- <DotsHorizontal size="md" style={t.atoms.text} />
91- </Pressable>
92 )}
93 </Menu.Trigger>
94 </View>
···1import React, {useCallback} from 'react'
2+import {Keyboard, View} from 'react-native'
3+import {type ChatBskyConvoDefs, type ModerationCause} from '@atproto/api'
4import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {useNavigation} from '@react-navigation/native'
78+import {type NavigationProp} from '#/lib/routes/types'
9+import {type Shadow} from '#/state/cache/types'
10import {
11 useConvoQuery,
12 useMarkAsReadMutation,
···14import {useMuteConvo} from '#/state/queries/messages/mute-conversation'
15import {useProfileBlockMutationQueue} from '#/state/queries/profile'
16import * as Toast from '#/view/com/util/Toast'
17+import {type ViewStyleProp} from '#/alf'
18+import {atoms as a} from '#/alf'
19+import {Button, ButtonIcon} from '#/components/Button'
20import {BlockedByListDialog} from '#/components/dms/BlockedByListDialog'
21import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt'
22import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt'
23+import {ReportDialog} from '#/components/dms/ReportDialog'
24import {ArrowBoxLeft_Stroke2_Corner0_Rounded as ArrowBoxLeft} from '#/components/icons/ArrowBoxLeft'
25+import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '#/components/icons/Bubble'
26import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid'
27import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag'
28import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute'
···34import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker'
35import * as Menu from '#/components/Menu'
36import * as Prompt from '#/components/Prompt'
37+import type * as bsky from '#/types/bsky'
003839let ConvoMenu = ({
40 convo,
···61 style?: ViewStyleProp['style']
62}): React.ReactNode => {
63 const {_} = useLingui()
06465 const leaveConvoControl = Prompt.usePromptControl()
66 const reportControl = Prompt.usePromptControl()
···74 {!hideTrigger && (
75 <View style={[style]}>
76 <Menu.Trigger label={_(msg`Chat settings`)}>
77+ {({props}) => (
78+ <Button
79+ label={props.accessibilityLabel}
80 {...props}
81 onPress={() => {
82 Keyboard.dismiss()
83 props.onPress()
84 }}
85+ size="small"
86+ color="secondary"
87+ shape="round"
88+ variant="ghost"
89+ style={[a.bg_transparent]}>
90+ <ButtonIcon icon={DotsHorizontal} size="md" />
91+ </Button>
0092 )}
93 </Menu.Trigger>
94 </View>