diff --git a/maestro/images/expected/ios/bottom_sheet_modal_basic_landscape.png b/maestro/images/expected/ios/bottom_sheet_modal_basic_landscape.png new file mode 100644 index 000000000..b34e98f92 Binary files /dev/null and b/maestro/images/expected/ios/bottom_sheet_modal_basic_landscape.png differ diff --git a/packages/pluggableWidgets/bottom-sheet-native/CHANGELOG.md b/packages/pluggableWidgets/bottom-sheet-native/CHANGELOG.md index 53e843cc4..4405b52b3 100644 --- a/packages/pluggableWidgets/bottom-sheet-native/CHANGELOG.md +++ b/packages/pluggableWidgets/bottom-sheet-native/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Fixed + +- Fixed iOS orientation change when opening the bottom sheet modal on devices in landscape mode. + ## [5.3.2] - 2026-8-4 ### Fixed diff --git a/packages/pluggableWidgets/bottom-sheet-native/e2e/specs/maestro/Modal_basic_landscape.yaml b/packages/pluggableWidgets/bottom-sheet-native/e2e/specs/maestro/Modal_basic_landscape.yaml new file mode 100644 index 000000000..c6ec0ffc4 --- /dev/null +++ b/packages/pluggableWidgets/bottom-sheet-native/e2e/specs/maestro/Modal_basic_landscape.yaml @@ -0,0 +1,29 @@ +appId: "${APP_ID}" +--- +- runFlow: + when: + platform: ios + commands: + - runFlow: + file: "../../../../../../maestro/Precondition.yaml" + - retry: + maxRetries: 2 + commands: + - tapOn: + text: "B" + - extendedWaitUntil: + visible: "Bottom Sheet" + timeout: 10000 + - tapOn: + text: "Bottom Sheet" + - tapOn: + text: "Modal basic" + - setOrientation: LANDSCAPE_LEFT + - tapOn: + text: "Open" + - waitForAnimationToEnd: + timeout: 5000 + - takeScreenshot: + path: "maestro/images/actual/${PLATFORM}/bottom_sheet_modal_basic_landscape" + - assertScreenshot: + path: "maestro/images/expected/${PLATFORM}/bottom_sheet_modal_basic_landscape.png" diff --git a/packages/pluggableWidgets/bottom-sheet-native/package.json b/packages/pluggableWidgets/bottom-sheet-native/package.json index 565b25da9..2add18485 100644 --- a/packages/pluggableWidgets/bottom-sheet-native/package.json +++ b/packages/pluggableWidgets/bottom-sheet-native/package.json @@ -1,7 +1,7 @@ { "name": "bottom-sheet-native", "widgetName": "BottomSheet", - "version": "5.3.2", + "version": "5.3.3", "license": "Apache-2.0", "repository": { "type": "git", diff --git a/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/BottomSheet.spec.tsx b/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/BottomSheet.spec.tsx index 4898e8b53..2e00f7a5f 100644 --- a/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/BottomSheet.spec.tsx +++ b/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/BottomSheet.spec.tsx @@ -166,6 +166,32 @@ describe("Bottom sheet", () => { expect(component.toJSON()).toMatchSnapshot(); }); + it("renders custom modal with supportedOrientations when open", () => { + const component = render( + } + triggerAttribute={new EditableValueBuilder().withValue(true).build()} + /> + ); + + expect(component.toJSON()).toMatchSnapshot(); + }); + + it("renders basic modal with supportedOrientations when open", () => { + const component = render( + ().withValue(true).build()} + /> + ); + + expect(component.toJSON()).toMatchSnapshot(); + }); + it("closes custom modal when triggerAttribute is set to false", () => { const triggerAttribute = new EditableValueBuilder().withValue(true).build(); const props = { diff --git a/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/__snapshots__/BottomSheet.spec.tsx.snap b/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/__snapshots__/BottomSheet.spec.tsx.snap index d19767eb0..250444850 100644 --- a/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/__snapshots__/BottomSheet.spec.tsx.snap +++ b/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/__snapshots__/BottomSheet.spec.tsx.snap @@ -159,3 +159,39 @@ exports[`Bottom sheet renders a expanding fullscreen with custom styles 1`] = ` `; exports[`Bottom sheet renders a native bottom action sheet for ios (Basic modal) 1`] = `null`; + +exports[`Bottom sheet renders basic modal with supportedOrientations when open 1`] = ` + +`; + +exports[`Bottom sheet renders custom modal with supportedOrientations when open 1`] = ` + +`; diff --git a/packages/pluggableWidgets/bottom-sheet-native/src/components/CustomModalSheet.tsx b/packages/pluggableWidgets/bottom-sheet-native/src/components/CustomModalSheet.tsx index 2f0fccea2..9b32867b4 100644 --- a/packages/pluggableWidgets/bottom-sheet-native/src/components/CustomModalSheet.tsx +++ b/packages/pluggableWidgets/bottom-sheet-native/src/components/CustomModalSheet.tsx @@ -78,7 +78,14 @@ export const CustomModalSheet = (props: CustomModalSheetProps): ReactElement => const maxHeight = windowHeight * 0.9; return ( - + {ready && ( + {ready && ( - +