Observador en el modelo "controller:edit-category.tabs" no activado

Hola,

Estoy intentando observar los cambios en el modelo del controlador EditCategoryTabs pero, por alguna razón, no sucede nada:

import { observes } from "@ember-decorators/object"
import { withPluginApi } from "discourse/lib/plugin-api"

function initialize(api) {
  api.modifyClass(
    "controller:edit-category.tabs",
    (Superclass) =>
      class extends Superclass {
        @observes("model.parent_category_id")
        onParentCategoryChange() {
          console.log("Aplicar alguna lógica aquí cuando cambia la categoría principal");
        }
      }
  );
}

export default {
  name: "new-category-permissions",
  initialize() {
    withPluginApi(initialize);
  },
}

He intentado muchas cosas, pero todavía no puedo activar el observador cuando el modelo cambia. ¿Hay algo que me haya perdido y que pueda explicar cómo hacer esto correctamente?

Como contexto, estoy usando Discourse 3.5.1 compilado con el lanzador oficial.

¡Gracias por tu ayuda!

Estuve mirando tu enlace, y el controlador se ha movido a /admin: discourse/app/assets/javascripts/admin/addon/controllers/edit-category/tabs.js at main · discourse/discourse · GitHub

No estoy seguro de por qué no se activa. ¿Quizás @observes no funciona bien en modifyClass?

Como alternativa, ¿qué opinas de:

@action
saveCategory(data) {
  const oldParentId = this.model.parent_category_id;
  super.saveCategory(data);
  const newParentId = this.model.parent_category_id;

  if (oldParentId !== newParentId) {
    console.log("Aplica alguna lógica aquí cuando cambia la categoría principal");
  }
}
3 Me gusta

¡Gracias @Arkshine por echar un vistazo! He editado la publicación para reflejar la nueva ubicación del archivo.

Estuve pensando en anular saveCategory también, pero en ese caso me gustaría aplicar la lógica tan pronto como se modifique el formulario. Incluso intenté observar cambios en formData (sin éxito).