diff --git a/app/assets/javascripts/discourse/app/components/post-text-selection-toolbar.gjs b/app/assets/javascripts/discourse/app/components/post-text-selection-toolbar.gjs index 4fdc6853c15..8b3e95b9402 100644 --- a/app/assets/javascripts/discourse/app/components/post-text-selection-toolbar.gjs +++ b/app/assets/javascripts/discourse/app/components/post-text-selection-toolbar.gjs @@ -12,8 +12,13 @@ import PluginOutlet from "discourse/components/plugin-outlet"; import concatClass from "discourse/helpers/concat-class"; import { ajax } from "discourse/lib/ajax"; import Sharing from "discourse/lib/sharing"; -import { postUrl, setCaretPosition } from "discourse/lib/utilities"; +import { + clipboardCopy, + postUrl, + setCaretPosition, +} from "discourse/lib/utilities"; import { getAbsoluteURL } from "discourse-common/lib/get-url"; +import I18n from "discourse-i18n"; export function fixQuotes(str) { // u+201c, u+201d = “ ” @@ -27,6 +32,7 @@ export default class PostTextSelectionToolbar extends Component { @service site; @service siteSettings; @service appEvents; + @service toasts; @tracked isFastEditing = false; @@ -96,6 +102,17 @@ export default class PostTextSelectionToolbar extends Component { event.stopPropagation(); } + @action + async copyQuoteToClipboard() { + const text = await this.args.data.buildQuote(); + clipboardCopy(text); + this.toasts.success({ + duration: 3000, + data: { message: I18n.t("post.quote_copied_to_clibboard") }, + }); + await this.args.data.hideToolbar(); + } + @action async closeFastEdit() { this.isFastEditing = false; @@ -216,6 +233,16 @@ export default class PostTextSelectionToolbar extends Component { /> {{/if}} + {{#if @data.canCopyQuote}} + + {{/if}} +