-
-
Notifications
You must be signed in to change notification settings - Fork 50.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: support table sort by header click position with sortByCursor … #21631
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please add tests to make sure this change works as expected?
0707de7
to
fe7b4e5
Compare
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 52926d5:
|
Codecov Report
@@ Coverage Diff @@
## feature #21631 +/- ##
===========================================
+ Coverage 97.88% 97.89% +<.01%
===========================================
Files 305 305
Lines 6998 7015 +17
Branches 1887 1943 +56
===========================================
+ Hits 6850 6867 +17
Misses 148 148
Continue to review full report at Codecov.
|
现在的交互是参考世面上大多数的表头交互方式,上下区域的交互虽然操作路径缩短了,但是一方面是比较难点到,另一方面是视觉细节复杂(需要有样式区分点击区域)。最大的问题是容易挑战用户在各个系统内形成的交互习惯,破坏统一性。我觉得改这个还是要谨慎一点。 |
@afc163 嗯,我看了下MaterialUI只用了一个箭头表示排序,可能给用户感觉更清晰一点,知道下次点击的排序应该是升序还是降序(但是好像就失去了默认排序逻辑), 现在antd的交互有点像一盒巧克力,用户不知道下次点击的是升序,降序还是取消排序。因为考虑到不破坏统一性,所以采取额外加一个属性的方式来做这个配置不对现有的交互造成破坏。这个配置也是点击整个表头呀,就是判断了下点击表头时的位置,所以也不会难以点到。样式区分区域这块之前我也考虑到过,可能做成比如hover到整个表头下方的时候下箭头变成primary色?(ps: 谨慎是对的) |
MUI 做的一点比较好是从 |
fe7b4e5
to
9a8691f
Compare
@afc163 试着做了一下重新推了下代码。现在是hover时候置灰上次的排序箭头,给下次的排序箭头一个浅蓝色。你觉得需要置灰掉上次箭头吗?因为不置灰的话,如果下一次是取消排序,hover的时候提现不出来下次的排序状态。还有就是这个交互感觉用户点击之后,因为鼠标还是在表头上,所以显示的是再下次的排序箭头变浅蓝感觉给用户体验也挺奇怪的。 |
9a8691f
to
14c1c90
Compare
可以试试看看效果。 |
还是不要变色比较好,否则点一次直接是向下箭头了。 |
14c1c90
to
1231eee
Compare
@afc163 改动了下,变成不置灰了,我也感觉这样好一点。但如果用户下次是取消排序的话,那其实hover上去没有提示了,其实没有提示下次排序是什么好像也是一种提示,因为如果下次有其他排序的话就有淡蓝色箭头激活了 |
我再想想。 |
@afc163 或者我还有一个idea,在鼠标hover的时候给个tooltip,比如说 |
这个不错,不过就是文案容易太长?『点击升序』『当前升序,点击降序』『当前降序,回到未排序』 |
我觉得只要三个文案就好了, 『点击升序』, 『点击降序』,『取消排序』,用户关心的应该是下次排序,已经存在的排序箭头的蓝色已经指示了。 |
那就按这个来,记得加上英文。 |
1231eee
to
b52a46e
Compare
修改了点css达到了hover整个header时候出来tooltip,我检查了下应该没有什么break。 |
加个开关 |
b52a46e
to
e641252
Compare
e641252
to
52926d5
Compare
给 |
发到 feature 分支吧,预计会在 4.1.0 版本上。 |
我把这个 |
为啥要默认开启 本来就不是必需的功能 怎么全局关闭 |
…props
🤔 This is a ...
🔗 Related issue link
💡 Background and solution
以前
table
排序是点击上下箭头icon
排序的时候能够明确用户想要的排序是根据上还是下排序,现在table
中的排序做成点击整块表头只能是根据预设规则一步一步排序, 可能会给用户带来迷惑性.。还有就是比如用户预设规则是先升序再降序, 如果用户想要直接降序排序,必须得先经过一次升序排序(依次点击效果: 升序 -> 降序)。 如果想要查看降序之后再升序,也必须得先取消一次排序(点击排序效果: 取消排序 -> 升序)。所以为了不破坏现有的排序逻辑额外加了个sortByCursor
属性,能够达到用户根据点击表头中上半部分还是下半部分给用户明确的排序预期效果。📝 Changelog
sorter
adding hint tooltip and a new propshowSorterTooltip
.showSorterTooltip
属性开关。☑️ Self Check before Merge
View rendered components/table/index.en-US.md
View rendered components/table/index.zh-CN.md