Skip to content

feat(mobile): full-screen search with messages, channels, and people - #402

Merged
wesbillman merged 6 commits into
mainfrom
feat/mobile-search-all
Apr 26, 2026
Merged

feat(mobile): full-screen search with messages, channels, and people#402
wesbillman merged 6 commits into
mainfrom
feat/mobile-search-all

Conversation

@wesbillman

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a dedicated Search tab (Home → Activity → Search) with full-screen search across messages, channels, and people
  • Messages search uses the global /api/search endpoint (Typesense); channels filter client-side; people search uses the user directory API
  • Filter chips (All / Messages / Channels / People) narrow results; tapping a result deep-links to the channel, forum thread, or DM
  • Removes the old search pill and browse-channels bottom sheet from the Home page, replaced with "🌱 Sprout" title
  • Custom pill-style search bar and compact filter chips matching the app's design language

Test plan

  • flutter analyze — no issues
  • flutter test — 256 passed, 1 skipped, 0 failed
  • All pre-push hooks green (desktop-check, mobile-check, mobile-test, rust-clippy, rust-tests, desktop-build)
  • Manual: type a query → verify messages, channels, and people results appear
  • Manual: tap each filter chip → verify only that category shows
  • Manual: tap a message result → navigates to correct channel/forum thread
  • Manual: tap a person → opens DM
  • Manual: tap a channel → opens channel detail

🤖 Generated with Claude Code

wesbillman and others added 6 commits April 26, 2026 10:43
Replace the old _BrowseChannelsSheet bottom sheet with a unified
full-screen search experience. Search is accessible from both the
bottom nav (new Search tab) and the channels page search bar.

- Messages: global full-text search via /api/search with debounce
- Channels: client-side filtering of joined + discoverable channels
- People: user search via /api/users/search, tap to open DM
- Filter chips: All / Messages / Channels / People
- Deep-linking: forum posts (kind 45001) → ForumThreadPage,
  stream messages → ChannelDetailPage
- Progressive rendering: 3 parallel lookups update state independently
- Removed dead code: browseChannels(), _BrowseChannelsSheet,
  _BrowseTile, _MiniHeader (~220 lines)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… chips

- Remove search pill from channels_page app bar (dedicated Search tab
  handles this now), replace with "Sprout" title + profile avatar
- Remove onSearchTap callback from ChannelsPage (no longer needed)
- Restyle filter chips: compact custom containers instead of bulky
  Material FilterChip with oversized checkmarks
- Style search TextField with pill container matching the app's visual
  language (rounded, surfaceContainerHighest background)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add horizontal padding (Grid.xs) to search bar in AppBar
- Even out filter chip row padding (symmetric xxs top/bottom)
- Add 🌱 emoji to "Sprout" title on Home tab

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Tab order: Home → Activity → Search (was Home → Search → Activity)
- Reduce top padding on filter chip row to visually balance the gap
  between search bar and chip row vs chip row and results

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Test was looking for old "Search" pill text, now expects "🌱 Sprout".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bare https:// URLs are now converted to tappable markdown links,
matching the desktop behavior (remark-gfm autolinks). Existing
markdown links, image syntax, and backtick-quoted code are preserved.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wesbillman

Copy link
Copy Markdown
Collaborator Author
Screenshot 2026-04-26 at 11 36 13 AM Screenshot 2026-04-26 at 11 36 32 AM

@wesbillman
wesbillman merged commit 3c02953 into main Apr 26, 2026
13 checks passed
@wesbillman
wesbillman deleted the feat/mobile-search-all branch April 26, 2026 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant