This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/plugins/styleguide/assets/javascripts/discourse/components/styleguide-icons.js
Jarek Radosz 5538b8442e
DEV: Introduce discourseLater (#17532)
A wrapper for `later()` from `@ember/runloop`, similar to `discourseDebounce`. It automatically reduces the delay in testing environment.
2022-07-17 00:50:49 +02:00

27 lines
717 B
JavaScript

import Component from "@ember/component";
import { afterRender } from "discourse-common/utils/decorators";
import discourseLater from "discourse-common/lib/later";
export default Component.extend({
tagName: "section",
classNames: ["styleguide-icons"],
iconIds: [],
init() {
this._super(...arguments);
this.setIconIds();
},
@afterRender
setIconIds() {
let symbols = document.querySelectorAll("#svg-sprites symbol");
if (symbols.length > 0) {
let ids = Array.from(symbols).mapBy("id");
this.set("iconIds", ids.sort());
} else {
// Let's try again a short time later if there are no svgs loaded yet
discourseLater(this, this.setIconIds, 1500);
}
},
});