feat: add quick search filter for database rows by title (#732)#905
feat: add quick search filter for database rows by title (#732)#905sw-factory-automations merged 1 commit intomainfrom
Conversation
Co-authored-by: Ona <no-reply@ona.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
✅ UI verification passed — design spec compliance confirmed. Static analysis — all checks pass:
Storybook visual regression — 4 new Live site vs Storybook — Component renders identically in both contexts. No layout constraints, CSS cascade overrides, or integration issues. Search input sits naturally in the toolbar flex container alongside Sort/Filter/Export. Live site screenshots (desktop dark + mobile 375px) — Search input visible and functional. Empty state shows placeholder, active state shows border + clear button. Mobile layout correct with no overflow. |
|
✅ Post-merge verification passed. E2E test suite (against
Ad-hoc smoke tests:
Interaction smoke test (database search feature):
|
Closes #732
What
Adds a search input to the database toolbar that client-side filters rows by case-insensitive title substring match. Works across all view types (table, board, list, calendar, gallery) and combines with existing filters using AND logic.
How
DatabaseSearchInput— new component with magnifying glass icon, placeholder "Search...", clear button, and Escape-to-clear keyboard support.database-view-client.tsx— added local search state keyed toactiveViewId(resets on view switch). Search filtering is applied as auseMemostep after the existingdisplayedRowsfromuseDatabaseFilters, producingsearchFilteredRowspassed to all views.hasActiveFiltersprop passed to views now includes search state, so empty-state messages correctly reflect when search is active.Testing
e2e/database-search.spec.ts— 2 tests covering search filtering by title (case-insensitive), clear behavior, and reset on view switch.database-search-input.stories.tsx— 4 stories (Empty, WithValue, Interactive, InToolbar) with visual regression baselines.pnpm lint && pnpm typecheck && pnpm testpass (0 errors, 128 Vitest files / 1742 tests).