diff --git a/app/assets/javascripts/discourse/app/components/quote-button.js b/app/assets/javascripts/discourse/app/components/quote-button.js index f3af1940fdc..0c1ba275ca3 100644 --- a/app/assets/javascripts/discourse/app/components/quote-button.js +++ b/app/assets/javascripts/discourse/app/components/quote-button.js @@ -192,22 +192,24 @@ export default Component.extend(KeyEnterEscape, { this.topic.postStream.findLoadedPost(postId)?.can_edit ); - const regexp = new RegExp(regexSafeStr(quoteState.buffer), "gi"); - const matches = postBody.match(regexp); + if (this._canEditPost) { + const regexp = new RegExp(regexSafeStr(quoteState.buffer), "gi"); + const matches = postBody.match(regexp); - if ( - quoteState.buffer.length < 1 || - quoteState.buffer.includes("|") || // tables are too complex - quoteState.buffer.match(/\n/g) || // linebreaks are too complex - matches?.length > 1 // duplicates are too complex - ) { - this.set("_isFastEditable", false); - this.set("_fastEditInitalSelection", null); - this.set("_fastEditNewSelection", null); - } else if (matches?.length === 1) { - this.set("_isFastEditable", true); - this.set("_fastEditInitalSelection", quoteState.buffer); - this.set("_fastEditNewSelection", quoteState.buffer); + if ( + quoteState.buffer.length < 1 || + quoteState.buffer.includes("|") || // tables are too complex + quoteState.buffer.match(/\n/g) || // linebreaks are too complex + matches?.length > 1 // duplicates are too complex + ) { + this.set("_isFastEditable", false); + this.set("_fastEditInitalSelection", null); + this.set("_fastEditNewSelection", null); + } else if (matches?.length === 1) { + this.set("_isFastEditable", true); + this.set("_fastEditInitalSelection", quoteState.buffer); + this.set("_fastEditNewSelection", quoteState.buffer); + } } }