Search Filters And Detail Selection
Preserve query context and entity identity across asynchronous search and history navigation.
GitHub에서 원문 보기 ↗새 탭Repository Boundary
Preserve query context and entity identity across asynchronous search and history navigation. This is a consumer interaction composition in Design Engineering. Spatial structure comes from List Detail; this recipe adds no reusable Layout behavior.
Reusable Method
Selected Pattern Stack
URL state, latest request wins, ID selection, derived state.
Ownership And Event Flow
The field owns its typing buffer; the route owns committed query/filter/page; the request owner holds results and query identity; the screen or route owns selected ID. A result collection is not necessarily the full entity inventory.
Commit query → reset page → update history → start read → accept only matching outcome. Back reads the route and starts the corresponding read without pushing another entry. Selected detail may be fetched separately with its own keyed request owner.
Composition And Substitution
URL state can be replaced by screen-local committed state when sharing/history is explicitly unnecessary. Stable identity and stale-read handling remain essential. Debounce may reduce traffic but cannot substitute for request correlation.
Acceptance Sequences
| Sequence | Expected outcome |
|---|---|
| Request A/B, resolve B/A | B results and status remain displayed |
| Change query on page 3 | Commit new query with page 1 |
| Back then Forward | Controls, query identity, and results follow route history |
| Selected item absent from filtered page | Retain or explicitly mark unavailable; do not infer deletion |
| Delete selected entity authoritatively | Apply missing-detail policy and recover focus |
Opinionated Guidance
Keep the ownership boundaries visible when composing the patterns. One screen can combine these mechanisms without making every value global. Record the rejected alternative and its user-visible cost in the state brief.
Platform-Specific Guidance
Preserve typed input during IME composition. Label previous results during refresh; an empty accepted result must differ from loading or failure.
Unsupported Absolutes
These acceptance sequences are proposed integration checks, not captured product evidence. Pattern model tests do not prove this entire screen, its backend, or its focus behavior.
Verification Contract
Adapt every acceptance row to the consumer and record actual results with the verification matrix. Include the ordinary successful task and at least one interrupted task. The initial handoff is consumer_reference: not_applicable because this fictional recipe selects no consumer profile or conformance record.
Source, License, And Attribution
Locally authored synthesis and examples. No upstream implementation is copied. These experimental contracts describe consumer-owned behavior; review when a failure, ownership change, or platform change invalidates an assumption.
IA Navigation
Parent: State Management. Next: Continue the state management route.