¿Cuál es la función adecuada para inicializar cosas al abrir Composer?

Tengo una función para configurar un objeto llamado project_task cada vez que se abre el editor de mensajes.

Lo hice así porque vi que se hacía en el plugin de eventos:

https://github.com/paviliondev/discourse-events/blob/master/assets/javascripts/discourse/connectors/composer-fields/composer-controls-event.js.es6

El problema que tengo ahora es que mi objeto no siempre está disponible. Parece que la función no se ejecuta cada vez que cambia el editor. Si cambio repetidamente entre diferentes borradores de distintos temas, la función no se vuelve a llamar, por lo que el código que depende de que el objeto exista deja de funcionar.

Mi pregunta es: ¿qué función debo utilizar si quiero configurar este objeto cada vez que el editor se abre con un tema diferente o cuando se abre por primera vez? Quiero asegurarme de que este objeto siempre esté disponible.

EDIT:
Así es como he resuelto el problema por ahora:

Pero esto aún no es perfecto, porque nos obliga a descartar el borrador cuando presionamos editar en otro tema, a veces sin advertencia. (Quizás sea porque mi lógica de guardado de borradores no funciona al 100% o simplemente hice clic demasiado rápido y el borrador aún no se había guardado).

Supongo que este es el comportamiento predeterminado del editor en este momento. Acabo de verificar en este foro que solo se puede tener un borrador de edición a la vez.


Cuando presiono “Nuevo tema” en este foro, me permite guardar cosas, por lo que parece que es posible tener un borrador de edición y un borrador nuevo simultáneamente.

Volví a encontrar este hilo:

Parece que este es el comportamiento previsto del editor.
Para mí, esto parece muy intuitivo, y por eso pensé que era un error. Al principio no recibí el mensaje de error cuando me obligó a descartar o cancelar, porque ni siquiera se me ocurrió que pudiera haber una limitación en la cantidad de borradores abiertos.

2 Me gusta