[Chat] Message context menu fixes (#10314)

This commit is contained in:
Samuel Newman
2026-04-21 09:24:46 -07:00
committed by GitHub
parent 18052f08e0
commit 0df1d6f53e
4 changed files with 25 additions and 11 deletions
+18 -7
View File
@@ -54,7 +54,7 @@ import {HITSLOP_10} from '#/lib/constants'
import {useHaptics} from '#/lib/haptics'
import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
import {logger} from '#/logger'
import {atoms as a, platform, tokens, useTheme} from '#/alf'
import {atoms as a, flatten, platform, tokens, useTheme} from '#/alf'
import {
Context,
ItemContext,
@@ -527,7 +527,8 @@ export function AuxiliaryView({
}
})
const menuContext = useMemo(() => ({align}), [align])
const xOffset = (flatten(style)?.marginLeft as number) ?? 0
const menuContext = useMemo(() => ({align, xOffset}), [align, xOffset])
const onLayout = useCallback(() => {
if (!measurement) return
@@ -655,7 +656,8 @@ export function Outer({
[context.measurement, frame.height, insets, translationSV],
)
const menuContext = useMemo(() => ({align}), [align])
const xOffset = (flatten(style)?.marginLeft as number) ?? 0
const menuContext = useMemo(() => ({align, xOffset}), [align, xOffset])
if (!context.isOpen || !context.measurement) return null
@@ -763,7 +765,7 @@ export function Item({
onOut: onPressOut,
} = useInteractionState()
const id = useId()
const {align} = useContextMenuMenuContext()
const {align, xOffset: menuXOffset} = useContextMenuMenuContext()
const {close, measurement, registerHoverable} = context
@@ -779,8 +781,8 @@ export function Item({
const xOffset = position
? position.x
: align === 'left'
? measurement.x
: measurement.x + measurement.width - layout.width
? measurement.x + menuXOffset
: measurement.x + measurement.width - layout.width - menuXOffset
registerHoverable(
id,
@@ -796,7 +798,16 @@ export function Item({
},
)
},
[id, measurement, registerHoverable, close, onPress, align, position],
[
id,
measurement,
registerHoverable,
close,
onPress,
align,
menuXOffset,
position,
],
)
const itemContext = useMemo(
+1
View File
@@ -65,6 +65,7 @@ export type ContextType = {
export type MenuContextType = {
align: 'left' | 'right'
xOffset: number
}
export type ItemContextType = {