From 2fe76333bc6161d78c9f9b43f4855ff6919de507 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 9 May 2024 09:07:57 -0700 Subject: [🐴] Add hover context menu for convo list on web (#3923) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * remove some unnecessary props * add hover trigger on web for convo list * lint * use `UserAvatar` to not affect accessibility * remove extra wrapper * add `label` * always show on mobile * adjust size of dots * make the message trigger dots the same size * ❓ --- src/components/dms/ConvoMenu.tsx | 50 ++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'src/components/dms/ConvoMenu.tsx') diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index 263befd56..cac4eb4d9 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -1,5 +1,5 @@ import React, {useCallback} from 'react' -import {Keyboard, Pressable} from 'react-native' +import {Keyboard, Pressable, View} from 'react-native' import {AppBskyActorDefs} from '@atproto/api' import {ChatBskyConvoDefs} from '@atproto-labs/api' import {msg, Trans} from '@lingui/macro' @@ -32,17 +32,19 @@ let ConvoMenu = ({ profile, onUpdateConvo, control, - hideTrigger, currentScreen, showMarkAsRead, + hideTrigger, + triggerOpacity, }: { convo: ChatBskyConvoDefs.ConvoView profile: AppBskyActorDefs.ProfileViewBasic onUpdateConvo?: (convo: ChatBskyConvoDefs.ConvoView) => void control?: Menu.MenuControlProps - hideTrigger?: boolean currentScreen: 'list' | 'conversation' showMarkAsRead?: boolean + hideTrigger?: boolean + triggerOpacity?: number }): React.ReactNode => { const navigation = useNavigation() const {_} = useLingui() @@ -89,26 +91,28 @@ let ConvoMenu = ({ <> {!hideTrigger && ( - - {({props, state}) => ( - { - Keyboard.dismiss() - // eslint-disable-next-line react/prop-types -- eslint is confused by the name `props` - props.onPress() - }} - style={[ - a.p_sm, - a.rounded_sm, - (state.hovered || state.pressed) && t.atoms.bg_contrast_25, - // make sure pfp is in the middle - {marginLeft: -10}, - ]}> - - - )} - + + + {({props, state}) => ( + { + Keyboard.dismiss() + // eslint-disable-next-line react/prop-types -- eslint is confused by the name `props` + props.onPress() + }} + style={[ + a.p_sm, + a.rounded_full, + (state.hovered || state.pressed) && t.atoms.bg_contrast_25, + // make sure pfp is in the middle + {marginLeft: -10}, + ]}> + + + )} + + )} -- cgit 1.4.1