Browse Source

Fix copying links

Copy hashtag, username
master
Eduard Kuzmenko 3 years ago
parent
commit
318035e971
  1. 23
      src/components/chat/contextMenu.ts
  2. 2
      src/lang.ts

23
src/components/chat/contextMenu.ts

@ -36,6 +36,7 @@ export default class ChatContextMenu {
private isTargetAGroupedItem: boolean; private isTargetAGroupedItem: boolean;
private isTextSelected: boolean; private isTextSelected: boolean;
private isAnchorTarget: boolean; private isAnchorTarget: boolean;
private isUsernameTarget: boolean;
private peerId: number; private peerId: number;
private mid: number; private mid: number;
private message: any; private message: any;
@ -89,7 +90,11 @@ export default class ChatContextMenu {
//this.msgID = msgID; //this.msgID = msgID;
this.target = e.target as HTMLElement; this.target = e.target as HTMLElement;
this.isTextSelected = !isSelectionEmpty(); this.isTextSelected = !isSelectionEmpty();
this.isAnchorTarget = this.target.tagName === 'A' && (this.target as HTMLAnchorElement).target === '_blank'; this.isAnchorTarget = this.target.tagName === 'A' && (
(this.target as HTMLAnchorElement).target === '_blank' ||
this.target.classList.contains('anchor-url')
);
this.isUsernameTarget = this.target.tagName === 'A' && this.target.classList.contains('mention');
const groupedItem = findUpClassName(this.target, 'grouped-item'); const groupedItem = findUpClassName(this.target, 'grouped-item');
this.isTargetAGroupedItem = !!groupedItem; this.isTargetAGroupedItem = !!groupedItem;
@ -231,6 +236,22 @@ export default class ChatContextMenu {
onClick: this.onCopyAnchorLinkClick, onClick: this.onCopyAnchorLinkClick,
verify: () => this.isAnchorTarget, verify: () => this.isAnchorTarget,
withSelection: true withSelection: true
}, {
icon: 'copy',
text: 'Text.Context.Copy.Username',
onClick: () => {
copyTextToClipboard(this.target.innerHTML);
},
verify: () => this.isUsernameTarget,
withSelection: true
}, {
icon: 'copy',
text: 'Text.Context.Copy.Hashtag',
onClick: () => {
copyTextToClipboard(this.target.innerHTML);
},
verify: () => this.target.classList.contains('anchor-hashtag'),
withSelection: true
}, { }, {
icon: 'link', icon: 'link',
text: 'MessageContext.CopyMessageLink1', text: 'MessageContext.CopyMessageLink1',

2
src/lang.ts

@ -793,6 +793,8 @@ const lang = {
//"Schedule.SendWhenOnline": "Send When Online", //"Schedule.SendWhenOnline": "Send When Online",
"Stickers.Recent": "Recent", "Stickers.Recent": "Recent",
//"Stickers.Favorite": "Favorite", //"Stickers.Favorite": "Favorite",
"Text.Context.Copy.Username": "Copy Username",
"Text.Context.Copy.Hashtag": "Copy Hashtag",
"Time.TomorrowAt": "tomorrow at %@", "Time.TomorrowAt": "tomorrow at %@",
"TwoStepAuth.SetPasswordHelp": "You can set a password that will be required when you log in on a new device in addition to the code you get in the SMS.", "TwoStepAuth.SetPasswordHelp": "You can set a password that will be required when you log in on a new device in addition to the code you get in the SMS.",
"TwoStepAuth.GenericHelp": "You have enabled Two-Step verification.\nYou'll need the password you set up here to log in to your Telegram account.", "TwoStepAuth.GenericHelp": "You have enabled Two-Step verification.\nYou'll need the password you set up here to log in to your Telegram account.",

Loading…
Cancel
Save