Menu de reações exibido fora da janela de desfazer ação da postagem (celular)

Em https://community.openstreetmap.org/
Eu dei um “joinha”. Depois de 13 minutos, voltei e queria mudar para um coração. Ok, cheguei até aqui como você pode ver. Mas não consigo mudar para um coração. Ok, vamos dizer que existe essa regra de 10 minutos em que você não pode mudar nada depois disso. Bem, nesse caso, meu ponto é que você não deveria nos mostrar a lista de ícones para os quais podemos mudar, porque não podemos usar nenhum deles.

Em outras palavras, quando eu toco no joinha novamente, para mudá-lo para outra coisa, então o melhor seria não ter resposta e não me mostrar uma lista de opções que eu não posso usar.

Seria ainda melhor se, quando eu tocasse no joinha novamente, uma mensagem aparecesse explicando que não posso mudar minha escolha porque os 10 minutos acabaram.

Por que estou postando aqui no meta em vez de naquele site local? Porque estou falando de um problema que afeta todos os sites que oferecem essa opção.

1 curtida

Sim, eu consigo reproduzir isso no celular (Android/Chrome). Acho que não costumava fazer isso, então pode ser uma regressão de algum tipo.

No desktop, você recebe um :no_entry_sign: e um texto flutuante de ‘Você não pode mais remover sua reação’.

Passo a passo: (no celular)

  • Habilitar Reações
  • Definir post undo action window mins para 1 (opcional)
  • Reagir a uma postagem e esperar N minutos
  • Pressionar e segurar o ícone de Reação
  • O menu de Reação é exibido, embora a capacidade de Reagir ou remover a Reação não seja possível
  • O menu não responde e nenhum erro é dado
3 curtidas

Não consegui encontrar no histórico o que poderia ser uma regressão.

Há uma verificação para o clique em toggleFromButton:

https://github.com/discourse/discourse-reactions/blob/main/assets/javascripts/discourse/widgets/discourse-reactions-actions.js#L430-L435

Mas não para o toque:
https://github.com/discourse/discourse-reactions/blob/main/assets/javascripts/discourse/widgets/discourse-reactions-actions.js#L170-L183

Acho que você poderia fazer o seguinte para não abrir a lista de reações:

  touchStart() {
    cancel(this._touchTimeout);
    if (this.capabilities.touch) {
      if (
        this.attrs.post.current_user_reaction &&
        !this.attrs.post.current_user_reaction.can_undo
      ) {
        return false;
      }
      ...
}
2 curtidas

A propósito, é bom informar ao usuário que ele não pode remover sua reação, mas também vale a pena mencionar o limite de tempo, caso contrário, o usuário não saberá se é um dia, um mês, um minuto ou o quê. A única maneira de ele descobrir é por tentativa e erro!

2 curtidas

Achei o limite de tempo para curtir uma configuração padrão muito incomum e foi uma das primeiras coisas que mudei (para curtir/descurtir livremente a qualquer momento, se é que ajuda).

3 curtidas