import { observes } from "discourse-common/utils/decorators"; import Category from "discourse/models/category"; import Component from "@ember/component"; export default Component.extend({ didInsertElement() { const property = this.field.property || "id"; const value = this.field.value; if (value) { this.set( "categories", [...value].reduce((result, v) => { let val = property === "id" ? Category.findById(v) : Category.findBySlug(v); if (val) { result.push(val); } return result; }, []) ); } }, @observes("categories") setValue() { const categories = (this.categories || []).filter((c) => !!c); const property = this.field.property || "id"; if (categories.length) { this.set( "field.value", categories.reduce((result, c) => { if (c && c[property]) { result.push(c[property]); } return result; }, []) ); } }, });