Comments (12)
Is there any way to make this menu work like an "endless scroll" to fetch more and more items as the user scrolls? And still be reasonably smooth
from components.
@myueksel Can you please look into this? Lucas has a great point about the usability of the Dropdown.
from components.
Any suggestion about this from @wholesale-design-system/ux ?
I would say:
- We could make this scrollable with the default OS scrollbar
- We could create a own scrollbar which uses javascript but looks everywhere the same
- We could show no scollbar but let the user scroll
- We could show a link with "show more" which shows the next x items
I totally would propose the 4th solution for the reason that it is much more performant because we only have to render 10 items instead of 5000 (for instance on sub units). So on click we would show another 10 items and the dropdown gets larger instead of a scrollbar.
from components.
Thanks for the proposal, @fragsalat. I'm skeptical about the 4th solution for two reasons:
- It is fairly unusual
- The size of the box will grow each time I click, and at some point it becomes bigger than the screen
In order of my preferences, I would vote no. 2, then no. 1. Maybe start with 1 and see how ugly it looks?
Thanks!
from components.
@schluchter this is the worst performance wise. Just remember that we have like 7000 brands, 4500 suppliers, and some units and so on. To render all of those is not performant and no one want's to scroll those. It probably is an edge case that a user wants to see more.
To make a compromise I would suggest a combination. A link at the bottom which is about "show all" and if the user clicks it becomes scrollable. So we have a good initial performance but the user still can see all
from components.
Just bear in mind that my comment was about the filterable dropdown specifically: if the list is too big, it's OK "scroll-wise" because people would probably type in the text field anyway. The point was more like: there is no indication whatsoever that there are more than 9 elements (in my example) in the list.
The "show all" idea sounds good 👍
from components.
For short and medium lists: I agree with @schluchter, scrolling is the most natural and expected behavior.
For longer lists: do we really need to render everything? Can't we just render ex. 50 and then automatically render more during scrolling (like auto "show more" button)?
Another thing is the question, how many people would go through the list of thousands elements instead of typing a name? My guess is - no one (sane). IMO showing limited list (50? 100?) before you type anything should not cause any real user problem.
About scrolling we need scrolling element anyway and standard scrolls looks ugly (I have seen it!).
from components.
Instead of "click for more" or visible scrollbar, maybe different hint for "there's more down here" could be used, for example a double downward arrow, that also possibly moves a bit.
Something like this (sorry huge image): https://maxcdn.icons8.com/Share/icon/p1em/Arrows//double_down1600.png
from components.
@fabric-design/ux any news here? I would like to implement it right now
from components.
Someone just asked here "why there is no scrollbar or something in that dropdown?" :-)
Any news?
from components.
No ux decision taken yet.
I suggested multiple possibilities.
from components.
My 'everyday internet apps user' persepctive: if there are more elements, there should defnitely be a visual cue (like the arrow suggested by @jseb). But then if there's a visual cue saying that the list is longer than what I see, I do expect it to be scrollable. Regardless if the loading is on-demand (better) or loading everything when the list renders (noooo), I would try to scroll it definitely, maybe realize there are too many elements and then use the smart filter.
from components.
Related Issues (20)
- Define documentation for dropdowns (rules when and how to use it) HOT 1
- "Select all" option in multi-dropdown HOT 3
- New input pattern (underlined) HOT 1
- Make Changelog visible
- fix wstabmenurender
- Decouple Date-Picker from Input element
- confusing header docs HOT 2
- Use setState in WSDropDown HOT 1
- chore(cleanup) Dist and Doc folder are committed
- feat(header) allow custom link elements
- build(node) update node versions
- feat(dropdown): pass custom classname
- bug(dropdown) state is lost in dropdown item HOT 1
- bug(header) logout "button" has no focus state
- bug(dropdown) not accessible HOT 1
- bug(date-picker) icon removes clickability
- bug(header) inconsistent and absent focus and hover states HOT 1
- Open Header-Links in new Tab HOT 1
- bug (header) It doesn't work on IE11; Add polyfill for CustomEvent to support IE11 HOT 11
- (Question) Focus on Input in Dropdown with filterable HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from components.