parent
35d1451e42
commit
3026c2ff56
3 changed files with 234 additions and 198 deletions
|
@ -193,6 +193,7 @@ export enum GiftBadgeStates {
|
|||
Opened = 'Opened',
|
||||
Redeemed = 'Redeemed',
|
||||
}
|
||||
|
||||
export type GiftBadgeType = {
|
||||
expiration: number;
|
||||
id: string | undefined;
|
||||
|
@ -390,6 +391,8 @@ export class Message extends React.PureComponent<Props, State> {
|
|||
current: false,
|
||||
};
|
||||
|
||||
private metadataRef: React.RefObject<HTMLDivElement> = React.createRef();
|
||||
|
||||
public reactionsContainerRefMerger = createRefMerger();
|
||||
|
||||
public expirationCheckInterval: NodeJS.Timeout | undefined;
|
||||
|
@ -823,6 +826,7 @@ export class Message extends React.PureComponent<Props, State> {
|
|||
isTapToViewExpired={isTapToViewExpired}
|
||||
onWidthMeasured={isInline ? this.updateMetadataWidth : undefined}
|
||||
pushPanelForConversation={pushPanelForConversation}
|
||||
ref={this.metadataRef}
|
||||
retryMessageSend={retryMessageSend}
|
||||
showEditHistoryModal={showEditHistoryModal}
|
||||
status={status}
|
||||
|
@ -1779,7 +1783,7 @@ export class Message extends React.PureComponent<Props, State> {
|
|||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
<div // eslint-disable-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
|
||||
className={classNames(
|
||||
'module-message__text',
|
||||
`module-message__text--${direction}`,
|
||||
|
@ -1790,6 +1794,18 @@ export class Message extends React.PureComponent<Props, State> {
|
|||
? 'module-message__text--delete-for-everyone'
|
||||
: null
|
||||
)}
|
||||
onClick={e => {
|
||||
// Prevent metadata from being selected on triple clicks.
|
||||
const clickCount = e.detail;
|
||||
const range = window.getSelection()?.getRangeAt(0);
|
||||
if (
|
||||
clickCount === 3 &&
|
||||
this.metadataRef.current &&
|
||||
range?.intersectsNode(this.metadataRef.current)
|
||||
) {
|
||||
range.setEndBefore(this.metadataRef.current);
|
||||
}
|
||||
}}
|
||||
onDoubleClick={(event: React.MouseEvent) => {
|
||||
// Prevent double-click interefering with interactions _inside_
|
||||
// the bubble.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue