import { apiInitializer } from "discourse/lib/api";
import { iconNode } from "discourse-common/lib/icon-library";
import { tracked } from "@glimmer/tracking";
export default apiInitializer((api) => {
@tracked iconName = settings.category_lock_icon || 'lock'; // Fallback naar 'lock' als de instelling niet is gedefinieerd
@tracked lockIcon = iconNode(this.iconName);
Frustrerend genoeg vertelt de browserconsole me dat ReferenceError: iconName is not defined. Als ik naar het bestand kijk in de browser dev tools, ziet het er zo uit:
iconName = settings.category_lock_icon || 'lock'; // Fallback naar 'lock' als de instelling niet is gedefinieerd
lockIcon = (0, _iconLibrary.iconNode)((void 0).iconName);
Dit, vergeleken met een ander component dat ik heb gemaakt dat tracked variabelen gebruikt (wat werkt):
You don’t need to track these. They will be constant so unnecessary. You only need to track things that will be dynamic and with which you want to re-fire getters.
Elke keer dat je iets volgt, gebruik je bronnen, dus houd dat tot een minimum. Het is geen groot probleem, maar het is goede praktijk om niets te volgen als iets niet verandert tijdens een paginabezoek.
Ik geloof niet dat instellingen in ieder geval worden bijgewerkt zonder een paginarefresh.
const iconName = settings.category_lock_icon || 'lock'; // Fallback naar 'lock' als de instelling niet is gedefinieerd
const lockIcon = <template>{{icon this.iconName}}</template>