Skip to content

Conversation

@staskus
Copy link
Contributor

@staskus staskus commented Aug 13, 2025

Description

[Feel free to take part of this and close it or develop on top of it]

POS Full Screen Cover Shows a full screen cover that automatically manages modal hierarchy.
This is a wrapper around SwiftUI's fullScreenCover that integrates with POS modal system.

Full screen covers automatically establish a new presentation layer, so:

  • Modals/sheets from views behind the cover will not show
  • Modals/sheet within the cover content will show normally
  • Multiple covers can be stacked with proper hierarchy management

Usage is exactly the same as fullScreenCover, using posFullScreenCover which behaves in the exact same way, plus has awareness of posSheet and posModal.

Steps to reproduce

Please test on a task/create-pos-full-screen-cover-test branch that incorporates a test view to showcase different scenarios. https://github.com/woocommerce/woocommerce-ios/compare/task/create-pos-full-screen-cover-test?expand=1

  1. Open menu
  2. Select setup
  3. Try presenting different sheets, modals, overlays on top of overlays to confirm the behavior

Testing information

Screenshots

full.flow.mov

  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

Shows a full screen cover that automatically manages modal hierarchy. This is a wrapper around SwiftUI's fullScreenCover that integrates with POS modal system.  Full screen covers automatically establish a new presentation layer, so:
- Modals/sheets from views behind the cover will not show
- Modals/sheet within the cover content will show normally
- Multiple covers can be stacked with proper hierarchy management
@staskus staskus added this to the 23.1 milestone Aug 13, 2025
@staskus staskus requested a review from iamgabrielma August 13, 2025 12:49
@staskus staskus added type: task An internally driven task. feature: POS labels Aug 13, 2025
@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Aug 13, 2025

App Icon📲 You can test the changes from this Pull Request in WooCommerce iOS Prototype by scanning the QR code below to install the corresponding build.

App NameWooCommerce iOS Prototype
Build Numberpr16007-a68ea24
Version23.0
Bundle IDcom.automattic.alpha.woocommerce
Commita68ea24
Installation URL3764f4uk2joko
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@staskus
Copy link
Contributor Author

staskus commented Aug 13, 2025

Periphery is failing a CI for an annoying reason since these modifiers are not used, but I'm building them to be used in the future 🤦

@iamgabrielma iamgabrielma self-assigned this Aug 14, 2025
Copy link
Contributor

@iamgabrielma iamgabrielma left a comment

Choose a reason for hiding this comment

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

Thanks for working on this, it works great for all the use cases presented in task/create-pos-full-screen-cover-test.

I've added periphery:ignore to the lines that came up in buildkite so these pass CI for now, and we can remove these as soon as we use the full screen cover.

I'll go ahead and merge this one into trunk for the moment 🙇

@iamgabrielma iamgabrielma merged commit 2f47cf8 into trunk Aug 14, 2025
14 checks passed
@iamgabrielma iamgabrielma deleted the task/create-pos-full-screen-cover branch August 14, 2025 04:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature: POS type: task An internally driven task.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants