Componente GJS falha com erro "helper indefinido" ao ser exibido via serviço de modal (Discourse 3.5.0

Olá,

Dando seguimento a este problema: Criei o plugin minimal-modal-test conforme sugerido.

  • Sucesso: Quando o componente modal do plugin de teste (minimal-modal.gjs) continha apenas elementos básicos (como <p>, <textarea>, o DModal principal, DButton, e até mesmo helpers integrados como #if para blocos condicionais ou if usado para o ícone do botão de envio), ele foi renderizado corretamente sem erros quando aberto via modal.show() acionado pelo componente de botão adicionado através do transformador de valor post-menu-buttons. Isso confirma que o serviço modal básico, a renderização de componentes, o transformador de valor e os helpers integrados parecem estar funcionando isoladamente em meu ambiente (Discourse v3.5.0.beta3-dev).

  • Falha: O erro (TypeError: userProvidedCallback is undefined / anteriormente Attempted to use a value as a helper... undefined) reaparece consistentemente no momento em que adiciono o componente filho <StarRatingInput> de volta ao template do modal (minimal-modal.gjs ou feedback-form-modal.gjs).

Certifiquei-me de que o próprio componente StarRatingInput usa workarounds identificados anteriormente (SVG inline em vez do helper dIcon, arrow functions para métodos como starClass para corrigir o contexto this, Array.from padrão do JS em vez do helper range). O código interno do StarRatingInput parece correto agora.

Isso aponta que o erro está sendo acionado pela renderização do componente aninhado <StarRatingInput> (que contém um loop #each, bindings de classe dinâmicos e manipuladores de eventos) dentro do componente modal pai neste contexto de renderização específico.

Passos para Reproduzir

  1. Você está executando a versão mais recente do ambiente de desenvolvimento do Discourse.

  2. Faça login como qualquer usuário.

  3. Navegue até qualquer tópico e visualize o primeiro post.

  4. Clique no botão “Test Failing Modal” adicionado ao menu do post.

  5. Abra o console do desenvolvedor do navegador.

Resultado Esperado

Um diálogo modal simples deve aparecer contendo um input de classificação por estrelas.

Resultado Atual

O modal falha ao renderizar completamente. O console do navegador mostra um erro.