Commit Graph

16 Commits

Author SHA1 Message Date
Stefan Ceriu de13fa5438 Fix some warnings 2026-09-16 11:37:11 +03:00
Stefan Ceriu eaa6a5ce25 Dismiss the whole search tab and move back to the previous when when tapping the search field dismissal button. 2026-09-16 11:37:11 +03:00
Stefan Ceriu b8a867bbb4 Dismiss the keyboard on drag 2026-09-16 11:37:11 +03:00
Stefan Ceriu e6cffcba3f Clear the search query when leaving the search tab
Switching away from the search tab now resets the query, so returning to
it shows the recent searches instead of the previous results. The search
field no longer focuses itself on appearance.
2026-09-16 11:37:11 +03:00
Stefan Ceriu 482cc0fee8 Show recent searches on the search screen
The search screen's empty state now lists the queries the user searched
for and the rooms they opened from the results, newest first, capped at 25
and stored in AppSettings. Tapping a query fills the search field, tapping
a room opens it, and both are reachable with a hardware keyboard.

Rooms are resolved from their identifiers as the room list loads, and
those the user has left or is only invited to are dropped. The history is
cleared on logout.
2026-09-16 11:37:11 +03:00
Stefan Ceriu 9bff070648 Hide the search mode picker until there's a query
The chats/messages picker has nothing to switch between before a query is
entered, so it only shows once the user starts searching.
2026-09-16 11:37:11 +03:00
Doug b27a549ef8 Update the toolbars in the Chats/Spaces screens. (#6043)
* Fix an issue with macro compilation when using Xcode previews.

* Update the Chats/Spaces toolbars to match the Figma.

Fixes a bug with the status emoji in the liquid glass button.
2026-08-18 17:50:15 +01:00
Stefan Ceriu 4eb0863f3a Surface search set query errors with an error indicator 2026-07-22 15:40:56 +03:00
Mauro 9093631f8b Periphery cleanup (#5893) 2026-07-20 11:16:11 +02:00
Stefan Ceriu 02d9ed1f0e Address search PR review comments
- Drop the redundant searchService coordinator/view model parameter; derive it from the client proxy.
- Rename the globalSearch avatar size to search.
- Lift the query observation streams out of their tasks.
- Restore the appeared and updateVisibleRange comments.
- Use CompoundIcon defaults and a scaledFrame for media previews.
- Simplify the result mapping with compactMap(makeResult) and drop unsupported events by returning nil.
- Move the preview helpers beneath the previews.
2026-07-03 13:39:45 +03:00
Stefan Ceriu 4c2243cda1 Fix search screen preview tests and add snapshots 2026-07-03 13:39:45 +03:00
Stefan Ceriu 4fbfc87551 Add a Messages tab to global search
Split global search into Rooms and Messages tabs. The Messages tab lists
matching events with the room's name and avatar, a sender-prefixed preview,
rich media (image/video/audio/file) previews, and a loading indicator, then
paginates as you scroll. Queries are debounced and the previous one is
superseded so late results can't clobber a newer search.
2026-07-03 13:39:45 +03:00
Stefan Ceriu 2f6a295486 Fix search screen keyboard navigation 2026-06-25 13:11:28 +03:00
Stefan Ceriu 057b8728d3 Stop selecting search results automatically when dismissing the keyboard 2026-06-24 16:58:40 +03:00
Stefan Ceriu c5653c2208 Allow returning from global search with the escape key
cmd+k jumps to the search tab but left users with no way back. Pressing
escape in the search field now returns to the tab they came from (never
into search itself).

Escape is handled at the search field's pressesBegan, alongside the
existing arrow-key navigation, since the focused UIKit field swallows
SwiftUI keyboard shortcuts.
2026-06-22 16:54:30 +03:00
Stefan Ceriu 7f1b6086ae Search tab (#5754)
* Add a developer flag for the search tab
Introduces a globalSearchEnabled user preference (off by default) with a toggle in Developer Options, used to gate the new search experience.

* Support search role tabs in the tab coordinator
Migrates the NavigationTabCoordinator to SwiftUI's value-based Tab API and adds an isSearch option so a tab can adopt the iOS 26 .search role, which detaches it into the trailing search button in the tab bar.

* Moves room search to a new screen
Adds a new screen that filters the alternate room summary provider as you type, shows an empty state, and lists matching rooms with their matrix identifier. Supports hardware keyboard selection (arrow keys to move through results, return to open) by reaching into the system search field.

* Present search in a dedicated tab
Adds the search tab to the chats flow on iOS 26 when the flag is enabled, rendered as the detached .search role button. The Cmd+K shortcut now selects this tab, and the home screen's inline search is hidden while the tab is available.

* Remove the old global search screen
The dedicated search tab replaces the Cmd+K floating window, so the GlobalSearchScreen, its window plumbing in the WindowManager, and its presentation in the chats flow are all removed.
2026-06-19 13:50:17 +03:00