From 26da99a2d2d484968f4eecb25e10962cafe8912a Mon Sep 17 00:00:00 2001 From: Kane York Date: Fri, 6 Mar 2020 11:05:46 -0800 Subject: [PATCH] FIX: Tolerate quotes with no username and no title --- .../discourse/components/quote-button.js.es6 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/discourse/components/quote-button.js.es6 b/app/assets/javascripts/discourse/components/quote-button.js.es6 index a703e5e3d76..2d8df37706d 100644 --- a/app/assets/javascripts/discourse/components/quote-button.js.es6 +++ b/app/assets/javascripts/discourse/components/quote-button.js.es6 @@ -3,6 +3,12 @@ import Component from "@ember/component"; import discourseDebounce from "discourse/lib/debounce"; import { selectedText, selectedElement } from "discourse/lib/utilities"; +function getQuoteTitle(element) { + const titleEl = element.querySelector(".title"); + if (!titleEl) return; + return titleEl.textContent.trim().replace(/:$/, ""); +} + export default Component.extend({ classNames: ["quote-button"], classNameBindings: ["visible"], @@ -55,12 +61,7 @@ export default Component.extend({ element = element.parentElement ) { if (element.tagName === "ASIDE" && element.classList.contains("quote")) { - opts.username = - element.dataset.username || - element - .querySelector(".title") - .textContent.trim() - .replace(/:$/, ""); + opts.username = element.dataset.username || getQuoteTitle(element); opts.post = element.dataset.post; opts.topic = element.dataset.topic; }