Skip to content

Commit 7a51e17

Browse files
committed
Add optional userSelect property to FunEmoji and enable in MessageTextRenderer. Allows user text selection to start on an emoji. Fixes #7206
1 parent 4809351 commit 7a51e17

File tree

3 files changed

+6
-0
lines changed

3 files changed

+6
-0
lines changed

ts/components/conversation/Emojify.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export type Props = {
2323
isInvisible?: boolean;
2424
/** Allows you to customize now non-newlines are rendered. Simplest is just a <span>. */
2525
renderNonEmoji?: RenderTextCallbackType;
26+
selectable?: boolean;
2627
};
2728

2829
const defaultRenderNonEmoji: RenderTextCallbackType = ({ text }) => text;
@@ -31,6 +32,7 @@ export function Emojify({
3132
fontSizeOverride,
3233
text,
3334
renderNonEmoji = defaultRenderNonEmoji,
35+
selectable = false,
3436
}: Props): JSX.Element {
3537
const emojiLocalizer = useFunEmojiLocalizer();
3638
return (
@@ -59,6 +61,7 @@ export function Emojify({
5961
aria-label={emojiLocalizer.getLocaleShortName(variantKey)}
6062
emoji={variant}
6163
size={fontSizeOverride}
64+
selectable={selectable}
6265
/>
6366
);
6467
}

ts/components/conversation/MessageTextRenderer.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,7 @@ function renderText({
431431
)}
432432
fontSizeOverride={jumboEmojiSize}
433433
text={text}
434+
selectable
434435
/>
435436
);
436437
}

ts/components/fun/FunEmoji.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ export type FunInlineEmojiProps = FunImageAriaProps &
137137
Readonly<{
138138
size?: number | null;
139139
emoji: EmojiVariantData;
140+
selectable?: boolean;
140141
}>;
141142

142143
export function FunInlineEmoji(props: FunInlineEmojiProps): JSX.Element {
@@ -183,6 +184,7 @@ export function FunInlineEmoji(props: FunInlineEmojiProps): JSX.Element {
183184
'--fun-emoji-sheet-x': props.emoji.sheetX,
184185
'--fun-emoji-sheet-y': props.emoji.sheetY,
185186
'--fun-emoji-jumbo-image': jumboImage,
187+
...(props.selectable && { userSelect: 'text' }),
186188
} as CSSProperties
187189
}
188190
/>

0 commit comments

Comments
 (0)