fix: add correct empty results screen for app - WPB-24393#4518
fix: add correct empty results screen for app - WPB-24393#4518
Conversation
…earch-results-empty-screen-WPB-24393
…earch-results-empty-screen-WPB-24393.tmp
…o fix/apps-search-results-empty-screen-WPB-24393
…earch-results-empty-screen-WPB-24393
| var searchResults: SearchResultsViewController { | ||
| searchResultsViewController | ||
| } | ||
|
|
There was a problem hiding this comment.
Deleted redundant computed property.
Test Results4 238 tests 4 211 ✅ 6m 27s ⏱️ Results for commit c75ad13. ♻️ This comment has been updated with latest results. Summary: workflow run #23889956887 |
|
…earch-results-empty-screen-WPB-24393
There was a problem hiding this comment.
Pull request overview
This PR addresses WPB-24393 by introducing a dedicated empty-state UI for Apps in the people/app picker flows, aligning the empty results screen with the updated design (text-only, no icon).
Changes:
- Added a new
EmptyAppsSearchResultViewand switched the search UI to use it when the active group is Apps. - Updated
EmptySearchResultsView/ callers to treat the legacy empty-state as bots/services-oriented. - Added localization + snapshot coverage for the new empty apps view, and included a sizeable
WireDataModel.xcodeprojrestructuring.
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| wire-ios/Wire-iOS/Sources/UserInterface/StartUI/StartUI/StartUIViewController.swift | Switches empty-state view depending on selected group (apps vs people/bots); minor refactors. |
| wire-ios/Wire-iOS/Sources/UserInterface/StartUI/Common/EmptySearchResultsView.swift | Renames/remaps internal states to reflect bots/services-only usage. |
| wire-ios/Wire-iOS/Sources/UserInterface/SearchUI/EmptyAppsSearchResultView.swift | New text-only empty-state view for apps. |
| wire-ios/Wire-iOS/Sources/UserInterface/AddContacts/AddParticipantsViewController.swift | Uses the apps-specific empty-state when searching/adding apps. |
| wire-ios/Wire-iOS/Resources/Localization/Base.lproj/Localizable.strings | Adds strings for the “no apps added yet” message. |
| wire-ios/Wire-iOS/Generated/Strings+Generated.swift | Regenerates typed string accessors for new localization keys. |
| wire-ios/Wire-iOS.xcodeproj/project.pbxproj | Adds new snapshot test file to the test target. |
| wire-ios/Wire-iOS Tests/EmptyAppsSearchResultViewSnapshotTests.swift | Adds snapshot tests (light/dark) for the new empty apps view. |
| wire-ios/Wire-iOS Tests/ReferenceImages/... | Adds reference images for the new snapshots (LFS). |
| wire-ios/Wire-iOS Tests/EmptySearchResultsViewTests.swift | Updates tests to match renamed API (searchingForBots). |
| wire-ios/Wire-iOS Tests/AddParticipantsViewControllerSnapshotTests.swift | Minor test setup cleanup (super calls removed). |
| wire-ios-data-model/WireDataModel.xcodeproj/project.pbxproj | Migrates MLS/E2EIdentity tests to file-system synchronized groups; removes many explicit file refs/build files. |
| wire-ios-data-model/Tests/Source/E2EIdentity/E2EIVerificationStatusServiceTests.swift | Makes test class final. |
| wire-ios-data-model/Tests/Source/E2EIdentity/E2EIServiceTests.swift | Whitespace-only change. |
| wire-ios-data-model/Tests/MLS/MLSClientIdTests.swift | Makes test class final. |
Comments suppressed due to low confidence (2)
wire-ios/Wire-iOS/Sources/UserInterface/StartUI/StartUI/StartUIViewController.swift:27
StartUIViewControllerusesUIViewController,UISearchController,UINavigationController, etc., but the file no longer importsUIKit. Since UIKit isn’t re-exported anywhere in this repo, this will fail to compile unless a transitive module explicitly re-exports UIKit. Addimport UIKitback (or ensure an explicit re-export exists).
import SwiftUI
import WireCommonComponents
import WireDesign
import WireFoundation
import WireMainNavigationUI
import WireMessagingAssembly
import WireMessagingDomain
import WireMessagingUI
import WireReusableUIComponents
wire-ios-data-model/WireDataModel.xcodeproj/project.pbxproj:3195
- This PR includes a large refactor of
WireDataModel.xcodeprojmoving the MLS/E2EIdentity test files to file-system synchronized groups (and removing many explicit PBXFileReference/PBXBuildFile entries). This isn’t mentioned in the PR description and can easily affect which tests are compiled/run. Consider splitting these project-structure changes into a separate PR, or at least confirm that the WireDataModelTests target still includes the same test sources after the migration.
fileSystemSynchronizedGroups = (
594C4E382CCAAB9B00F13D03 /* AccountImageSource */,
5968441A2F7BC89600833ACA /* MLS */,
5968442E2F7BC8FF00833ACA /* E2EIdentity */,
59B705A92EAA611F0075ACE1 /* Migration */,
CB5273202D9C0FA000CF8099 /* Channels */,
CB9615DC2D47B0E10016389E /* EntityValidation */,
CBAE486D2DC5140300C62C4E /* WireCellsMessageAttachmentDraftEntity */,
CBC41A252EB50889000769CE /* SchemaTests */,
);
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
wire-ios/Wire-iOS/Sources/UserInterface/StartUI/StartUI/StartUIViewController.swift
Show resolved
Hide resolved
wire-ios/Wire-iOS/Sources/UserInterface/StartUI/StartUI/StartUIViewController.swift
Show resolved
Hide resolved
wire-ios/Wire-iOS/Sources/UserInterface/StartUI/Common/EmptySearchResultsView.swift
Outdated
Show resolved
Hide resolved
wire-ios/Wire-iOS/Sources/UserInterface/SearchUI/EmptyAppsSearchResultView.swift
Show resolved
Hide resolved
wire-ios/Wire-iOS/Sources/UserInterface/AddContacts/AddParticipantsViewController.swift
Show resolved
Hide resolved
wire-ios/Wire-iOS/Sources/UserInterface/AddContacts/AddParticipantsViewController.swift
Show resolved
Hide resolved
…tails-layout-WPB-24410
…earch-results-empty-screen-WPB-24393 # Conflicts: # wire-ios-data-model/WireDataModel.xcodeproj/project.pbxproj
|



Issue
We have
EmptySearchResultsView.swiftwhich seems to be used for both, bots and users, for displaying an empty list as well as an empty search result.For apps we need a different screen without icon, just text.
This PR adds a view which replaces the existing view in case apps are searched/listed.
Testing
Try to start a 1:1 conversation or add an app to an existing MLS conversation and observe that the empty screen is shown if no apps have been added or no app matches the search text.
Checklist
[WPB-XXX].UI accessibility checklist
If your PR includes UI changes, please utilize this checklist: