Votação de posts tem curtidas habilitadas, mas elas não aparecerão

Temos a configuração qa enable likes on answers habilitada, mas não há :heart: visíveis.

Também temos o plugin oficial Discourse Reactions instalado. Isso pode ser a causa deste bug?

5 curtidas

Acabei de ativar/desativar Reações no meu site de teste para verificar isso e parece que está conectado. Pergunto-me se esta é uma consequência desta correção de bug Polegar para cima, duas vezes?

3 curtidas

Olá,

As reações estão desativadas (ocultas) por padrão em tópicos de votação de posts com CSS.

Você pode reativá-las adicionando um pouco de CSS a um componente Comum/CSS :arrow_down_small:

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

Muito obrigado!

A limitação por padrão é compreensível (muitas opções para dar feedback podem ser confusas), mas se houver uma configuração que permita aos administradores habilitar “curtidas” e esses administradores tivessem habilitado reações em seu site, então seria lógico habilitar reações em posts de votação quando eles habilitassem a configuração.

E, de qualquer forma, acho que mais administradores provavelmente pensarão que há um bug em vez de verificar o código e corrigir o CSS. :slight_smile:

3 curtidas
reações instaladas votação de posts instalada habilitar curtidas em respostas invocar removePostMenuButton(‘like’)?
não não não (NA) não, manter :heart:
sim não NA sim, remover o botão de curtir, mostrar reações
não sim não sim, remover o botão de curtir para respostas
não sim sim não, manter :heart: para cada post
sim sim não sim, remover o botão de curtir, mostrar reações apenas para o primeiro post, não para respostas
sim sim sim sim, remover o botão de curtir, mostrar reações para todos

Esbocei algo como uma tabela verdade aqui. Precisamos programaticamente fazer com que as reações apareçam para posts diferentes dependendo das configurações do site, especialmente a opção habilitar curtidas em respostas, em vez de um simples display:none em CSS.

@tgxworld pegou algo parecido na época sugerindo que provavelmente deveríamos expor uma API no discourse-reactions (t/67550/10). Talvez devêssemos considerar isso.

7 curtidas
// Removendo o botão `like`
api.removePostMenuButton("like");
// E adicionando-o novamente
api.decorateWidget("post-menu:before-extra-controls", (dec) => {
  return dec.attach("discourse-reactions-actions", {

Em vez de fazer isso :arrow_up_small: devemos adicionar um método replacePostMenuButton na API do plugin principal e usá-lo no plugin de reações. Nesse caso, não precisaremos de uma lógica separada para o botão de reação no plugin de votação de posts.

Como existe uma solução alternativa, farei essa alteração após o próximo lançamento.

7 curtidas

Isso exigiu 3 PRs, mas sua ideia de implementação foi incrível @vinothkannans, funciona perfeitamente. Assim que todos forem mesclados, postarei novamente :slight_smile:

9 curtidas

Os PRs foram mesclados e agora (quando sua instância do Discourse for atualizada), as reações respeitam a configuração qa_enable_likes_on_answers. Obrigado pelo relatório de bug @icaria36!

4 curtidas

Os PRs mesclados quebram a versão estável do discourse. O site não carrega devido a um erro 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 curtidas

Sim, eu deveria ter previsto isso. Vou enviar uma correção para o plugin de reações para que ele volte a funcionar quando replacePostMenuButton não estiver presente.

Editar: Mesclei uma alteração que adiciona compatibilidade retroativa.

3 curtidas

Este tópico foi automaticamente fechado após 4 dias. Novas respostas não são mais permitidas.