Skip to content

Liquid Glass and improved add-project-procedure - #95

Merged
InteractionEngineer merged 10 commits into
mainfrom
feature/ui-and-network
Jul 22, 2026
Merged

Liquid Glass and improved add-project-procedure#95
InteractionEngineer merged 10 commits into
mainfrom
feature/ui-and-network

Conversation

@InteractionEngineer

Copy link
Copy Markdown
Owner

also re-enables to add new members to a project
also closes #77 and #36
everything with proper error handling and feedback

- 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.
Copilot AI review requested due to automatic review settings July 22, 2026 05:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread PayForMe/Util/Views+Extensions.swift
Comment thread PayForMe/Util/Views+Extensions.swift
Comment thread PayForMe/Util/Views+Extensions.swift
Comment thread PayForMe/Util/Views+Extensions.swift
Comment thread PayForMe/Views/Projects/Manual/AddProjectManualViewModel.swift
Comment thread PayForMe/Views/Projects/Manual/AddProjectManualViewModel.swift
Comment thread PayForMe/Views/Projects/Manual/AddProjectManualView.swift
@InteractionEngineer
InteractionEngineer merged commit 1d57d96 into main Jul 22, 2026
1 check passed
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.

[GUIDE] How to import a Cospend Project

2 participants