FIX: selection going missing in Safari (#14557)

FIX: selection going missing in Safari (#14557)

diff --git a/app/assets/javascripts/discourse/app/components/quote-button.js b/app/assets/javascripts/discourse/app/components/quote-button.js
index 3bd9f17..783b0ab 100644
--- a/app/assets/javascripts/discourse/app/components/quote-button.js
+++ b/app/assets/javascripts/discourse/app/components/quote-button.js
@@ -206,13 +206,6 @@ export default Component.extend(KeyEnterEscape, {
     // merge back all text nodes so they don't get messed up
     parent.normalize();
 
-    // work around Safari that would sometimes lose the selection
-    if (isSafari) {
-      this._reselected = true;
-      selection.removeAllRanges();
-      selection.addRange(clone);
-    }
-
     // change the position of the button
     schedule("afterRender", () => {
       if (!this.element || this.isDestroying || this.isDestroyed) {
@@ -234,6 +227,13 @@ export default Component.extend(KeyEnterEscape, {
       $quoteButton.offset({ top, left });
 
       this.element.querySelector("button")?.focus();
+
+      // work around Safari that would sometimes lose the selection
+      if (isSafari) {
+        this._reselected = true;
+        selection.removeAllRanges();
+        selection.addRange(clone);
+      }
     });
   },
 

GitHub sha: 538fe2cc31d9210ae6322ae2ccaf96c69a1850a5

This commit appears in #14557 which was approved by CvX. It was merged by pmusaraj.