shivaam opened a new pull request, #70911: URL: https://github.com/apache/airflow/pull/70911
The Dag-list filter row has grown into a dense collection of controls that competes with the primary task: finding a Dag. This PR consolidates those controls into the selected **Option B — Filter Hub** design: - Keep name search stable and full-width. - Move secondary criteria into one responsive **Filters** disclosure. - Show every active criterion as a compact, editable, individually removable chip. - Use a popover on wider screens and a full-screen drawer on narrow screens. - Preserve shareable URL state, Back/Forward navigation, pagination reset, saved tag behavior, and existing API filter semantics. Owner links from Dag cards are now represented in the hub as well, so no active URL filter is invisible or omitted from the count. The owner control is creatable because the current API has no owner-suggestion endpoint. ### Interaction details - Opening an active chip scrolls to and focuses its corresponding control. - Closing the hub restores focus to the originating chip or Filters button. - Tag and timetable suggestions retain loading, error, pagination, and retry states. - Unknown URL parameters are preserved while known filters are normalized. - Changing a filter creates one history entry and resets pagination; Back restores the exact prior URL. Two effects are intentional: - `useDagsFilterModel` canonicalizes invalid or duplicate known filter parameters with `replace`, avoiding an extra history entry. - `useTagFilter` materializes saved tag preferences into the URL once, keeping the first request, visible chips, and shareable state consistent; later Back/Forward navigation follows the URL. ### Design exploration Three working concepts were tested in the real Airflow UI. Option B was selected because its search field and Filters trigger remain spatially stable as filters are added or removed. #### Option A — Query composer _Video to be attached._ #### Option B — Filter hub (implemented) _Video to be attached._ #### Option C — Filter pills _Video to be attached._ ### Validation - `corepack pnpm lint` - `corepack pnpm vitest run src/pages/DagsList/DagsFilters src/pages/DagsList/useTagFilter.test.tsx src/pages/DagsList/DagsList.test.tsx` — 53 tests passed - `corepack pnpm build` - Real Breeze UI checks at desktop, 375×720, and 320px widths - Exercised deep links, multiple filters, clear/remove/edit, keyboard focus, Back/Forward, pagination reset, long chips, and narrow-screen overflow This Draft is intended to get early maintainer feedback on the interaction direction before polishing it for merge. related: #69728 --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — OpenAI Codex Generated-by: [OpenAI Codex](https://openai.com/codex/) following the [project guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) --- * Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)** for more information. Note: commit author/co-author name and email in commits become permanently public when merged. * For fundamental code changes, an Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals)) is needed. * When adding dependency, check compliance with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
