El menú de reacciones se muestra fuera de la ventana de deshacer la acción de la publicación (móvil)

En https://community.openstreetmap.org/
Puse un pulgar hacia arriba. Luego, 13 minutos después, volví y quise cambiarlo por un corazón. Bueno, llegué hasta aquí como ves. Pero no puedo cambiarlo por un corazón. Bueno, digamos que existe esa regla de los 10 minutos de que no puedes cambiar nada después de eso. Bueno, en ese caso, mi punto es que entonces no deberías mostrarnos la lista de iconos en los que podemos cambiarlo, porque no podemos usar ninguno de ellos.

En otras palabras, cuando vuelvo a tocar el pulgar, para cambiarlo por otra cosa, entonces lo mejor es que no reciba ninguna respuesta y no se me muestre una lista de opciones que no puedo usar.

Sería aún mejor si, al volver a tocar el pulgar, apareciera un mensaje explicando que no puedo cambiar mi elección porque han pasado 10 minutos.

¿Por qué publico esto aquí en meta en lugar de en ese sitio local? Porque estoy hablando de un problema que afecta a todos los sitios que ofrecen tal opción.

1 me gusta

Sí, puedo reproducir esto en el móvil (Android/Chrome). No creo que solía hacer eso, así que podría ser una regresión de algún tipo.

En el escritorio, obtienes un :no_entry_sign: y un texto flotante de ‘Ya no puedes eliminar tu reacción’.

Pasos: (en el móvil)

  • Habilitar Reacciones
  • Establecer post undo action window mins en 1 (opcional)
  • Reacciona a una publicación y espera N minutos
  • Mantén presionado el ícono de Reacción
  • El menú de Reacción se muestra a pesar de que la capacidad de Reaccionar o eliminar la Reacción no es posible
  • El menú no responde y no se da ningún error
3 Me gusta

No pude encontrar en el historial qué podría ser una regresión.

Hay una verificación para el clic en toggleFromButton:

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

Pero no para el toque:
https://github.com/discourse/discourse-reactions/blob/main/assets/javascripts/discourse/widgets/discourse-reactions-actions.js#L170-L183

Supongo que podrías hacer lo siguiente para no abrir la lista de reacciones:

  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 Me gusta

Por cierto, es bueno decirle al usuario que no puede eliminar su reacción, pero también podría mencionar el límite de tiempo; de lo contrario, el usuario no puede saber si es un día, un mes, un minuto o lo que sea. ¡La única forma de que lo descubra es por ensayo y error!

2 Me gusta

Encontré que el límite de tiempo para dar “me gusta” era una configuración predeterminada muy inusual y fue una de las primeras cosas que cambié (para dar “me gusta” / “no me gusta” libremente en cualquier momento, por si acaso).

3 Me gusta