Liquid Glass and improved add-project-procedure - #95
Merged
Conversation
- Add Liquid Glass styles for iOS 26 (glass action button, prominent button style, tab bar minimize) with pre-iOS 26 fallbacks - Replace the floating add button modifier with a reusable GlassActionButton - Label tab bar items (Bills / Members) - Report HTTP status when adding a member and show a specific error alert (insufficient rights / network / generic); keep the sheet open on failure - Redesign AddProjectManualView as a Form with clipboard paste button, QR scan link, server-address hints and a Cancel toolbar item - Add localization keys for the above in all supported languages
Accept a full iHateMoney invite link (server and project are derived automatically) alongside the raw-token fallback. Make the project password optional (Cospend sends no-pass when empty) and keep separate input state per backend when switching tabs. Move the QR scanner into a sheet that dismisses the whole flow on success, and treat an already-existing project as activation rather than an error.
Composite a plus badge onto the floating action button and use plain base symbols (bag, person, folder) so the badge sits consistently. Switch the project list to the same floating glass button, and translate the remaining German inline comments to English.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR refreshes the UI with new “glass” action patterns and improves the add-project flow (manual entry + QR scan + paste), while also restoring user feedback when adding project members fails (instead of silently doing nothing).
Changes:
- Reworked project onboarding/add flow to center around the manual add screen, with optional QR scanning and invite-link parsing/paste support.
- Added explicit error reporting for “add member” by plumbing HTTP status codes up to the UI and showing an alert on failure.
- Updated button styling helpers / floating action buttons, plus localization updates and version bump to 2.6.0.
Reviewed changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| PayForMe/Views/Projects/QRCodes/ProjectQRPermissionCheckerView.swift | Threads an onFinish callback so QR scan flows can dismiss the presenting UI. |
| PayForMe/Views/Projects/QRCodes/AddProjectQRView.swift | Uses dismiss / onFinish to close the QR flow after a successful scan. |
| PayForMe/Views/Projects/ProjectList.swift | Replaces prior add-method picker with a single glass action button that presents the add flow. |
| PayForMe/Views/Projects/OnboardingView.swift | Simplifies onboarding CTA to “Add project” (flow now contains scan/paste). |
| PayForMe/Views/Projects/Manual/AddProjectManualViewModel.swift | Adds tab state persistence, invite-link parsing, and input validation updates. |
| PayForMe/Views/Projects/Manual/AddProjectManualView.swift | Converts to a form-based add UI with QR/paste actions and improved UX. |
| PayForMe/Views/FancyLoadingButton.swift | Switches styling to prominentActionStyle. |
| PayForMe/Views/FancyButton.swift | Switches styling to prominentActionStyle. |
| PayForMe/Views/ContentView.swift | Uses Label for tab items and applies a tab bar behavior modifier. |
| PayForMe/Views/BillList/BillList.swift | Replaces removed floating add button with the new glass action button + sheet. |
| PayForMe/Views/BillDetail/BillDetailView.swift | Uses dismiss and modern navigation title APIs. |
| PayForMe/Views/Balance/BalanceList.swift | Shows an alert on member-add failure based on HTTP status code. |
| PayForMe/Util/Views+Extensions.swift | Introduces glass-style modifiers and a reusable glass action button overlay. |
| PayForMe/Util/FloatingAddButtonViewModifier.swift | Removes the old floating add button modifier implementation. |
| PayForMe/Strings/*/Localizable.strings | Adds/updates localized strings for the new UI and error messages. |
| PayForMe/Services/ProjectManager.swift | Makes project add activate existing projects and returns status codes for add-member. |
| PayForMe/Services/NetworkService.swift | Adds a publisher that returns the member-create HTTP status code. |
| PayForMe.xcodeproj/project.pbxproj | Removes the deleted modifier file and bumps version/build numbers. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
also re-enables to add new members to a project
also closes #77 and #36
everything with proper error handling and feedback