El componente GJS falla con error de "helper indefinido" cuando se muestra a través del servicio de modal (Discourse 3.5.0)

Hola,

Dando seguimiento a este problema: creé el plugin minimal-modal-test como se sugirió.

  • Éxito: Cuando el componente modal del plugin de prueba (minimal-modal.gjs) contenía solo elementos básicos (como <p>, <textarea>, el DModal principal, DButton, e incluso ayudantes integrados como #if para bloques condicionales o if usado para el icono del botón de envío), se renderizó correctamente sin errores al abrirse a través de modal.show() activado desde el componente de botón agregado a través del transformador de valor post-menu-buttons. Esto confirma que el servicio modal básico, la renderización de componentes, el transformador de valor y los ayudantes integrados parecen funcionar de forma aislada en mi entorno (Discourse v3.5.0.beta3-dev).

  • Fallo: El error (TypeError: userProvidedCallback is undefined / anteriormente Attempted to use a value as a helper... undefined) reaparece consistentemente en el momento en que agrego el componente hijo <StarRatingInput> de nuevo a la plantilla del modal (minimal-modal.gjs o feedback-form-modal.gjs).

Me he asegurado de que el componente StarRatingInput en sí mismo utilice las soluciones alternativas identificadas anteriormente (SVG en línea en lugar del ayudante dIcon, funciones de flecha para métodos como starClass para corregir el contexto de this, Array.from de JS estándar en lugar del ayudante range). El código interno de StarRatingInput parece correcto ahora.

Esto apunta a que el error es activado por renderizar el componente anidado <StarRatingInput> (que contiene un bucle #each, enlaces de clase dinámicos y manejadores de eventos) dentro del componente modal padre en este contexto de renderización específico.

Pasos para Reproducir

  1. Estás ejecutando la última versión del entorno de desarrollo de Discourse.

  2. Inicia sesión como cualquier usuario.

  3. Navega a cualquier tema y visualiza el primer post.

  4. Haz clic en el botón “Test Failing Modal” agregado al menú del post.

  5. Abre la consola de desarrollador del navegador.

Resultado Esperado

Debería aparecer un diálogo modal simple que contenga un campo de calificación por estrellas.

Resultado Actual

El modal falla al renderizarse por completo. La consola del navegador muestra un error.