Preserve bubble layout and pointer handling after main update

Signed-off-by: Arjun Mahanti <arjun@squareup.com>
This commit is contained in:
Arjun Mahanti
2026-09-10 10:32:50 -07:00
parent 8eddb737db
commit f7bd603978
3 changed files with 9 additions and 5 deletions

View File

@@ -510,7 +510,7 @@ export const MessageActionBar = React.memo(function MessageActionBar({
<div
className={cn(
"-m-1 p-1 transition-opacity duration-150 ease-out",
"opacity-100 sm:pointer-events-none sm:opacity-0",
"pointer-events-auto opacity-100 sm:pointer-events-none sm:opacity-0",
"sm:group-hover/message:pointer-events-auto sm:group-hover/message:opacity-100",
"sm:group-focus-within/message:pointer-events-auto sm:group-focus-within/message:opacity-100",
isReactionPickerOpen || isDropdownOpen

View File

@@ -117,7 +117,7 @@ export function MessageBubbleLayout({
style={{ right: -8 - actionShift }}
data-testid="bubble-actions-anchor"
className={cn(
"absolute -right-2 bottom-full z-20",
"pointer-events-none absolute -right-2 bottom-full z-20",
reactions ? "mb-5" : "translate-y-[4px]",
)}
>

View File

@@ -681,9 +681,13 @@ export const MessageRow = React.memo(
) : null;
const headerNode = isDisplayedAsContinuation ? null : (
// pe reserves the measured action-rail footprint (0px until measured) so
// header content ends before the rail's left edge in every rail state.
<MessageHeaderRow className="pe-[var(--message-action-rail-width,0px)]">
// Standard rows reserve the action rail's width. Bubble controls sit
// above the bubble, so their headers do not need that reservation.
<MessageHeaderRow
className={
bubbleLayout ? undefined : "pe-[var(--message-action-rail-width,0px)]"
}
>
{message.pubkey ? (
<MessageAuthorWithIndicators
authorName={message.author}