Page MenuHomeElementl

RFC: Change asset catalog to have combined selector/filter capability
AbandonedPublic

Authored by prha on Mar 31 2021, 8:45 PM.

Details

Reviewers
dish
sandyryza
Summary

The typeahead now supports multiple actions: navigating to an asset page, and filtering the set of query results. Adds a bit of complexity, but enables the no-mouse navigation from the asset catalog.

RFC because this may be unnecessary now that assets are in the universal search bar.

With tags:

Without tags:

Test Plan

bk

Diff Detail

Repository
R1 dagster
Branch
prha/assetfilter
Lint
Lint Passed
Unit
No Test Coverage

Event Timeline

prha retitled this revision from Change asset catalog to have combined selector/filter capability to RFC: Change asset catalog to have combined selector/filter capability.Mar 31 2021, 8:52 PM
prha edited the summary of this revision. (Show Details)
prha added a subscriber: schrockn.
prha requested review of this revision.Mar 31 2021, 8:57 PM

This looks like a pretty good solution to me.

js_modules/dagit/packages/core/src/assets/AssetsFilter.tsx
50

x

118–120

Might end up being worthwhile to turn this into a useReducer, since a decent amount of behavior in the component involves changing multiple state values. Non-blocking though, and I can take care of it if it's making me itchy later on.

136–139

This could be React.useMemo'd.

208

Might also be nice to do some useMemo on these. Hopefully not too expensive as-is, but still.

335

No need to _ this

This revision is now accepted and ready to land.Apr 5 2021, 2:44 PM

IMO this is a fairly complicated mental model for a search box, which may not match expectations of users who have used search boxes in other apps. Are there examples of this pattern in other apps that are worth comparing to? Also, would we want to use a similar pattern for a search box in our pipelines view? If the goal here is no-mouse navigation, I feel like the universal search satisfies that pretty well?

Are there examples of this pattern in other apps that are worth comparing to?

Yeah, when prha and I had discussed this previously, similar search UI patterns came to mind in a couple of places: Gmail search and Stripe Dashboard search. In both cases, you can add filters *or* navigate directly to objects. As long as the "filter" items are clearly distinguishable from "object" items, it seems okay. Of course we can discuss further if it seems like the wrong approach. :)

Regarding the "All Pipelines" view, I'm removing that in a separate diff since nothing in the current left nav links to it.

@dish I think what bothers me in particular is the statefulness. In gmail search, if I'm not mistaken, the set of results you see are purely a function of the text that appears in the search box. If I correctly understand how this asset search box works, the filters you add inside the search box become long-lived filters that sit outside of the search box, and the results you see depend both on the contents of the search box and on the filters that sit outside the search box.

It's definitely a little weird.

FWIW, this is how we currently represent the runs filter off of the pipeline root though: https://demo.elementl.show/workspace/hacker_news_repository@hacker-news/pipelines/dbt_pipeline/runs