jidanni
(Dan Jacobson)
1
在 https://community.openstreetmap.org/
我点了一个赞。13分钟后,我回来想把它改成一个心形。正如你所见,我进行到这一步了。但我无法将其改为心形。好吧,假设有那个10分钟的规则,即你之后不能再更改任何东西。那么,我的观点是,你不应该向我们展示我们可以更改的图标列表,因为我们无法使用它们。
换句话说,当我再次点击拇指图标以将其更改为其他内容时,最好的做法是没有任何响应,并且不显示我无法使用的选项列表。
甚至更好的做法是,当我再次点击拇指图标时,应该弹出一个消息,解释说我无法更改我的选择,因为10分钟已经到了。
我为什么在这里发帖而不是在那边的本地网站上发帖?因为我讨论的是一个影响所有提供此类选择的网站的问题。
1 个赞
是的,我可以在移动设备(Android/Chrome)上重现此问题。我不认为它以前是这样的,所以这可能是一种回归。
在桌面设备上,您会看到一个
和一个悬停文本“您不能再删除您的反应”。
(在移动设备上)分步操作:
- 启用反应
- 将
post undo action window mins 设置为 1(可选)
- 对帖子做出反应并等待 N 分钟
- 长按反应图标
- 即使无法做出反应或删除反应,反应菜单也会显示
- 菜单无响应,未给出错误
3 个赞
在历史记录中找不到可能导致回归的地方。
在 toggleFromButton 中有一个用于点击的检查:
https://github.com/discourse/discourse-reactions/blob/main/assets/javascripts/discourse/widgets/discourse-reactions-actions.js#L430-L435
但触摸没有:
https://github.com/discourse/discourse-reactions/blob/main/assets/javascripts/discourse/widgets/discourse-reactions-actions.js#L170-L183
我猜你可以这样做以不打开反应列表:
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 个赞
jidanni
(Dan Jacobson)
4
顺便说一句,告诉用户他无法删除自己的反应是好的,但你也可以提及时间限制,否则用户无法分辨是几天、一个月还是几分钟。他只能通过反复试验来找出!
2 个赞
piffy
5
我发现点赞的时间限制是一个非常不寻常的默认设置,也是我最先更改的设置之一(可以随时自由点赞/取消点赞),供参考。
3 个赞