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>, oDModalprincipal,DButton, e até mesmo helpers integrados como#ifpara blocos condicionais ouifusado para o ícone do botão de envio), ele foi renderizado corretamente sem erros quando aberto viamodal.show()acionado pelo componente de botão adicionado através do transformador de valorpost-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/ anteriormenteAttempted 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.gjsoufeedback-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
-
Você está executando a versão mais recente do ambiente de desenvolvimento do Discourse.
-
Faça login como qualquer usuário.
-
Navegue até qualquer tópico e visualize o primeiro post.
-
Clique no botão “Test Failing Modal” adicionado ao menu do post.
-
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.