La votación de publicaciones tiene 'likes' habilitados pero no aparecerán

Tenemos la configuración qa enable likes on answers habilitada pero no se ven los :heart:.

También tenemos instalado el plugin oficial Discourse Reactions. ¿Puede esta ser la causa de este error?

5 Me gusta

Acabo de activar/desactivar Reacciones en mi sitio de prueba para comprobar esto y parece que está conectado. Me pregunto si esto es una consecuencia de esta corrección de errores Pulgar hacia arriba, dos veces.

3 Me gusta

Hola,

Las reacciones están deshabilitadas (ocultas) por defecto en los temas de votación de publicaciones con CSS.

Puedes reactivarlas añadiendo un poco de CSS a un componente Común/CSS :arrow_down_small:

.post-voting-topic,
.post-voting-topic-sort-by-activity {
  .discourse-reactions-actions {
    display: inline-flex;
  }
}
6 Me gusta

¡Muchas gracias!

La limitación por defecto es comprensible (demasiadas opciones para dar feedback pueden ser confusas), pero si hay una configuración que permite a los administradores habilitar los “me gusta” y esos administradores han habilitado las reacciones en su sitio, entonces sería lógico habilitar las reacciones en las publicaciones de votación cuando habiliten la configuración.

Y en cualquier caso, supongo que es más probable que más administradores piensen que hay un error en lugar de revisar el código y arreglar el CSS. :slight_smile:

3 Me gusta
reacciones instaladas votación de publicaciones instalada habilitar “me gusta” en respuestas invocar removePostMenuButton(‘like’)?
no no no (NA) no, mantener :heart:
no NA sí, eliminar el botón “me gusta”, mostrar reacciones
no no sí, eliminar el botón “me gusta” para respuestas
no no, mantener :heart: para cada publicación
no sí, eliminar el botón “me gusta”, mostrar reacciones solo para la primera publicación, no para las respuestas
sí, eliminar el botón “me gusta”, mostrar reacciones para todas

Esbozado algo parecido a una tabla de verdad aquí. Necesitamos que las reacciones aparezcan programáticamente para diferentes publicaciones según la configuración del sitio, especialmente la de habilitar "me gusta" en respuestas, en lugar de un simple display:none de CSS.

@tgxworld captó algo parecido en su momento sugiriendo que probablemente deberíamos exponer una API en discourse-reactions (t/67550/10). Quizás deberíamos considerarlo.

7 Me gusta
// Eliminando el botón `like`
api.removePostMenuButton("like");
// Y añadiéndolo de nuevo
api.decorateWidget("post-menu:before-extra-controls", (dec) => {
  return dec.attach("discourse-reactions-actions", {

En lugar de hacer esto :arrow_up_small: deberíamos añadir un método replacePostMenuButton en la API del plugin principal y usarlo en el plugin de reacciones. En ese caso, no necesitamos una lógica separada para el botón de reacción en el plugin de votación de posts.

Dado que existe una solución alternativa, haré este cambio después del próximo lanzamiento.

7 Me gusta

Esto requirió 3 PRs pero tu idea de implementación fue increíble @vinothkannans, funciona a la perfección. Una vez que todos se fusionen, volveré a publicar :slight_smile:

9 Me gusta

Las PR se han fusionado y ahora (cuando tu instancia de Discourse se actualice), las reacciones respetan la configuración qa_enable_likes_on_answers. ¡Gracias por el informe de error @icaria36!

4 Me gusta

Los PRs fusionados rompen la versión estable de discourse. El sitio no carga debido a un error de javascript.

Uncaught (in promise) TypeError: e.replacePostMenuButton is not a function
    u discourse-reactions.js:12
    withPluginApi plugin-api.js:2247
    initialize discourse-reactions.js:165
    initialize app.js:173
    runInstanceInitializers Ember
    each dag-map.js:192
    walk dag-map.js:121
    each dag-map.js:66
    topsort dag-map.js:72
    Ember 4
    invoke queue.ts:201
    flush queue.ts:98
    flush deferred-action-queues.ts:75
    _end index.ts:616
    _boundAutorunEnd index.ts:257
discourse-reactions.js:12
2 Me gusta

Sí, debería haber anticipado esto. Enviaré una solución al plugin de reacciones para que retroceda cuando replacePostMenuButton no esté presente.

Editar: He fusionado un cambio que añade compatibilidad retroactiva.

3 Me gusta

Este tema se cerró automáticamente después de 4 días. Ya no se permiten nuevas respuestas.