Qual é a função correta para inicializar coisas no Composer Open?

Tenho uma função para configurar um objeto chamado project_task toda vez que o compositor é aberto.

Fiz isso dessa maneira porque vi no plugin de eventos:

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

O problema que tenho agora é que meu objeto nem sempre está presente. Parece que a função nem sempre é executada quando o compositor muda. Se eu alternar entre diferentes rascunhos de tópicos diferentes, ela não é chamada novamente, então o código que depende da existência do objeto deixa de funcionar.
Minha pergunta é: qual função devo usar se quiser configurar esse objeto sempre que o compositor for aberto com um tópico diferente ou pela primeira vez? Quero garantir que esse objeto esteja sempre presente.

EDIT:
Foi assim que resolvi o problema por enquanto

Mas isso ainda não é perfeito, porque nos obriga a descartar o rascunho ao pressionar editar em outro tópico, às vezes sem aviso prévio. (Talvez seja porque minha funcionalidade de salvar rascunho não funciona 100% perfeitamente ou porque eu cliquei muito rápido e o rascunho ainda não havia sido salvo)
Acho que esse é o comportamento padrão do compositor no momento. Acabei de verificar neste fórum que só é possível ter um rascunho de edição por vez.


Quando pressiono “novo tópico” neste fórum, ele me permite salvar coisas, então parece haver a opção de ter um rascunho de edição e um rascunho novo.

Encontrei novamente este tópico:

Parece que esse é o comportamento pretendido do compositor.
Para mim, isso parece muito intuitivo, e foi por isso que achei que era um bug. Não recebi a mensagem de erro de imediato quando fui forçado a descartar ou cancelar, porque nem me ocorreu que pudesse haver uma limitação de rascunhos abertos.

2 curtidas