-
Notifications
You must be signed in to change notification settings - Fork 73
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
Allow users to filter in table column headers by changing OuiBasicTable #209
Comments
Thanks @KrooshalUX for exploring this. A few open questions that I think warrant additional exploration:
|
@kgcreative all great questions!
|
|
@KrooshalUX I love the thoughtful dive into this! Thanks for driving this! |
@BSFishy Can you take a look at this proposal and provide any thoughts or concerns? We are hoping to get this into OUI Component Refresh roadmap soon. |
Nothing is sticking out to me, looks like a solid proposal 👍 |
@KrooshalUX Could you make a new consolidated issue with specific action items for implementation of this? |
@BSFishy the next step would be for engineering to take a pass at a meta issue with the implementation details based on the UX delivery. This will help us find any potential gaps in the UX designs and I can provide additional information when needed. Since this is our first time iterating on a component in this way, I am looking to this as a learning opportunity for all of us. Feel free to ask more questions here or in the engineering meta issue. |
@BSFishy @KrooshalUX @kgcreative
|
|
These are all great questions, thanks for taking a look into the proposal to help us identify gaps @AbhishekReddy1127 Building on / responding to @kgcreative response:
I'll need some additional time on the shifts needed for the proposal to be rounded out. I will follow up here when I have some more concrete thoughts around these items. |
Is your feature request related to a problem?
The established pattern for filtering table data does not meet modern use cases of filtering table values in a clean and practical way. Currently,
OuiFilterGroup
is used next to a search bar (if present) above a table - for each filterable column a button is added to theOuiFilterGroup
. This increases visual noise, and visual noise increases cognitive processing, increasing friction when interacting with an already data-dense experience. Example taken from Reporting .While this use case is limited to two filterable columns, but imagine if all columns were filterable, and what that interface may appear as.
What solution would you like?
Make filters available in table column headers within
OuiBasicTable
A user clicks the filter icon (
OuiIcon type="filter"
) in a given column, and can,onHover
, include (OuiIcon: type="check"
) or exclude (OuiIcon: type="cross"
) selects one or more dynamically populated filters (Either utilizingOuiFilterSelectItem
if it can be used independently ofOuiFilterGroup
, or a new composed component which combinesOuiPopOver
+OuiSelectable
+OuiSearchBar
). Selections are appliedonClick
.If needed, a loading indicator would appear while the filter is applied (this may be a different experience between
OuiBasicTable
andOuiInMemoryTable
).Filter icon changes state to filled to communicate there is a filter applied. Selected values are pinned to top of
OuiSelectable
whenOuiPopOver
is opened to reduce friction in deselecting a selected value. Additionally, a column-specific Reset and global table Reset functions are available. Note: this might require an additional glyph be added to OUI Icons to represent the active filter (OuiIcon type="filterFilled"
)Additional open question: Would it be useful to users to see a values count?
What alternatives have you considered?
Modifying
OuiFilterGroup
and nesting filters by column. Concerned that this is too high friction for filtering a table.The text was updated successfully, but these errors were encountered: