fix: prevent native text selection on mobile long-press
iOS triggered both the app context menu and native text selection overlay on long-press. Three-layer fix: CSS user-select:none on buttons/[role=button]/ [data-context-menu] elements; non-passive touchstart listener with conditional preventDefault on context-menu targets; removeAllRanges() at timer fire to clear any residual selection. Added data-context-menu to all mobile surfaces that use onContextMenu handlers.
This commit is contained in:
@@ -224,6 +224,7 @@ export function Message({ message, isCompact, isFirstInGroup, previousMessageId
|
||||
const ownerId = spaces.find(s => s.id === currentSpaceId)?.ownerId;
|
||||
|
||||
const getMemberDisplayColor = (userId: string) => {
|
||||
if (isDmMessage) return { color: '#d8d8de' };
|
||||
const member = members.find(m => m.userId === userId);
|
||||
if (member?.roles && member.roles.length > 0) {
|
||||
const sorted = [...member.roles].sort((a, b) => b.position - a.position);
|
||||
@@ -524,7 +525,7 @@ export function Message({ message, isCompact, isFirstInGroup, previousMessageId
|
||||
);
|
||||
|
||||
return (
|
||||
<div onContextMenu={handleContextMenu}>
|
||||
<div data-context-menu onContextMenu={handleContextMenu}>
|
||||
{content}
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user