Rediseño del compositor detrás de enable_new_composer_actions
Esto introduce una experiencia de compositor rediseñada y la lanza detrás de un nuevo cambio alfa próximo. Con la bandera desactivada (predeterminado), nada cambia visualmente. Los administradores pueden optar por activarla en la página de administración de cambios próximos.
Qué cambia cuando la bandera está activada
Menú desplegable de acciones unificado. El antiguo menú desplegable composer-actions de SelectKit se reemplaza por un nuevo componente Glimmer/DMenu (composer-actions-new.gjs). Sigue mostrando las mismas filas de cambio de modo (responder al tema, responder como nuevo tema, crear MP, etc.) con etiquetas e iconos más claros.
Alternancias vivas con las acciones. Los modos Susurro / sin sobresalto / no listado ahora se muestran como elementos <DToggleSwitch> en la parte inferior de ese mismo menú desplegable, sin un menú separado de botón combinado. El estado de la alternancia persiste en los cambios de modo (por ejemplo, activar susurro → cambiar de responder al tema a responder a una publicación → sigue en modo susurro).
Indicador de susurro en forma de píldora. Un pequeño botón a la derecha del activador del menú desplegable muestra el estado actual del susurro en dos variantes visuales: --public (color terciario, icono de ojo, «La respuesta será visible») y --whispering (fondo primario-medio / primario-muy bajo, icono de ojo tachado, «Susurrando»). Hacer clic en él alterna el susurro, siguiendo la misma ruta de código que la alternancia dentro del menú desplegable, por lo que ambos permanecen sincronizados. El propio icono del activador también cambia a far-eye-slash cuando se está susurrando.
Experiencia de edición. Al editar una publicación, el menú desplegable se contrae a una etiqueta estática sin viñeta (icono de lápiz + «Editar publicación»). El botón «Añadir motivo de edición», que antes estaba en otro lugar de la interfaz del compositor, se integra en este activador estático como un botón clicable «Describe tu edición»; al hacer clic en él, la etiqueta se reemplaza por un campo de texto vinculado a composer.editReason y se enfoca.
Interfaz del compositor. El texto/etiqueta .action-title se elimina: el propio activador del menú desplegable muestra el modo actual.
Enlaces a publicaciones/temas ahora solo aparecerán cuando sea necesario. Un enlace al tema se mostrará al navegar fuera del tema, y el enlace a la publicación se mostrará al desplazarse fuera de la publicación o navegar fuera.
Notas para autores de plugins
El nuevo componente no es una subclase de SelectKit, por lo que las antiguas APIs de extensión no lo alcanzan. Para admitir ambos estados de la bandera en esta fase alfa, los plugins deben registrar ambas APIs:
API antigua (funciona solo en el componente antiguo)
api.registerBehaviorTransformer("composer-actions-on-select", ({ context, next }) => { if (context.actionId === "foo") { ...; return; } next(); })
La forma de la fila ({ name, description, icon, id }) es idéntica en ambos. El transformador de comportamiento recibe { actionId, options, model } en su contexto.
Los plugins que solo registren los antiguos hooks desaparecerán silenciosamente del compositor en el momento en que un administrador active la bandera. Los plugins que solo registren los nuevos transformadores serán invisibles mientras la bandera esté desactivada (el valor predeterminado para todos al fusionar).
Referencias:
discourse-post-voting/extend-composer-actions.js: ejemplo de trabajo de registro dual (en el núcleo)
transformers.js: los dos nuevos nombres de transformadores
Notas de implementación
El estado de la bandera es alfa: opt-in para pruebas internas.
Los plugins que se integran con las acciones del compositor deben añadir el registro dual antes de que esto se promueva a beta/estable.
Las pruebas cubren ambos estados: las especificaciones de aceptación/sistema existentes cubren la bandera desactivada; los archivos *-new-test.js hermanos cubren la bandera activada (más los selectores DOM del nuevo componente para el menú desplegable unificado, los elementos de alternancia, el indicador de susurro y las porciones de etiqueta dividida).
¿Sería posible no mostrar la opción de Alternar votación de publicaciones si el tipo de categoría seleccionada no es Ideas, o si la configuración de la categoría no ha habilitado la función de votación de publicaciones? : ))
Siempre ha sido así: el plugin de votación de publicaciones es para todo el sitio, no limitado por categoría. La configuración a nivel de categoría solo sirve para establecer el valor predeterminado, no para restringir su uso.
Estamos en un estado de transición con el plugin de votación de publicaciones… Creo que necesitaremos planificar una migración para evitar romper su uso más general antes de restringirlo a categorías específicas, simplemente porque el tipo “ideas” es un concepto bastante nuevo.
La buena noticia es que, mientras tanto, tenemos hooks para permitir esto en un componente de tema… esto funciona en un inicializador para mostrar el interruptor solo en una categoría de ideas:
Hola @Moin, gracias por llamarnos la atención sobre esto.
No he podido reproducir el problema en mi extremo usando Chromium, Firefox o Safari, y lamentablemente, el video adjunto no se reproduce para mí.
Para ayudarnos a diagnosticar y rastrear esto, ¿podrías proporcionar algunos detalles más?
Sistema Operativo: (por ejemplo, Android, iOS, Windows, macOS, Linux)
Navegador y Versión: (por ejemplo, Chrome 125, Safari 17)
Versión de Discourse: Puedes encontrar esto en tu Panel de Administración, o siguiendo esta guía en Meta.
Una cosa que puedes probar ahora mismo:
Prueba el comportamiento en Modo Seguro añadiendo /safe-mode al final de la URL de tu sitio (por ejemplo, https://discourse.example.com/safe-mode).
Si el problema desaparece: Es probable que una de las personalizaciones de tu sitio (plugins, temas o componentes) esté causando un conflicto.
Si el problema persiste: Es un error principal, y los detalles del navegador/dispositivo que proporciones arriba nos ayudarán a identificar y corregirlo.
Gracias por tu persistencia, se agradece, y por favor háznos saber si tienes alguna pregunta sobre la información que he compartido aquí.
¿No te parece un poco absurdo que te explique los detalles del modo seguro y cómo encontrar mi versión de Discourse?
Como puedes ver en el vídeo anterior (lo he vuelto a subir, no sé por qué no funcionaba hoy), había activado el modo seguro.
La versión actual es 2a08d5d (era diferente cuando escribí el informe). También puedo reproducirlo aquí: solo elegí mi foro porque los administradores tienen más opciones, por lo que el menú oculto era más visible. En Meta apenas se ve. La mayor parte del tiempo parece que el botón no funciona en absoluto.
Por lo general, este tipo de problemas se deben a que mi tablet tiene un tamaño de «escritorio», pero es táctil. Es similar a los problemas que se mencionan aquí o aquí.
Actualizaré Discourse con esta corrección prevista y notificaré cuando los cambios se fusionen. *Actualización: Los cambios se han fusionado, verás la corrección en tu próximo despliegue que ejecute la versión d82dc7c o posterior.
Nota al margen: dado que las ediciones en la última publicación ya no hacen subir el tema, una edición no funciona bien como notificación. Un colega tuyo dijo una vez que simplemente debería publicarse actualizaciones por separado. Es interesante que ustedes mismos a menudo no lo hagan.