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]

Reply via email to