Skip to content

Commit 3a0f4a5

Browse files
authored
Moo 1864/safe area view migration (#267)
2 parents f2246c1 + 3b5ae29 commit 3a0f4a5

8 files changed

Lines changed: 61 additions & 68 deletions

File tree

packages/jsActions/mobile-resources-native/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,4 @@
5454
"rimraf": "^4.4.1",
5555
"rollup": "^2.79.2"
5656
}
57-
}
57+
}

packages/pluggableWidgets/safe-area-view-native/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

77
## [Unreleased]
88

9+
- We fixed the issue where the header is going outside of page in some android versions.
10+
911
## [3.0.1] - 2025-3-18
1012

1113
## Fixed

packages/pluggableWidgets/safe-area-view-native/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "safe-area-view-native",
33
"widgetName": "SafeAreaView",
4-
"version": "3.0.1",
4+
"version": "3.1.0",
55
"license": "Apache-2.0",
66
"repository": {
77
"type": "git",
@@ -20,7 +20,8 @@
2020
},
2121
"dependencies": {
2222
"@mendix/piw-native-utils-internal": "*",
23-
"@mendix/piw-utils-internal": "*"
23+
"@mendix/piw-utils-internal": "*",
24+
"react-native-safe-area-context": "5.2.0"
2425
},
2526
"devDependencies": {
2627
"@mendix/pluggable-widgets-tools": "~10.0.1",
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
import { createElement } from "react";
2-
import { SafeAreaView as ReactSaveAreaView, View } from "react-native";
2+
import { View } from "react-native";
33
import { flattenStyles } from "@mendix/piw-native-utils-internal";
4-
54
import { SafeAreaViewStyle, defaultSafeAreaViewStyle } from "./ui/Styles";
65
import { SafeAreaViewProps } from "../typings/SafeAreaViewProps";
6+
import { SafeAreaView as SafeAreaViewComponent } from "react-native-safe-area-context";
77

88
export const SafeAreaView = (props: SafeAreaViewProps<SafeAreaViewStyle>): JSX.Element => {
99
const styles = flattenStyles(defaultSafeAreaViewStyle, props.style);
1010

1111
return (
12-
<ReactSaveAreaView
12+
<SafeAreaViewComponent
13+
edges={["top", "left", "right"]}
1314
style={{ flex: 1, ...{ backgroundColor: styles.container.backgroundColor } }}
1415
pointerEvents={"box-none"}
1516
testID={props.name}
1617
>
1718
<View style={styles.container} pointerEvents={"box-none"}>
1819
{props.content}
1920
</View>
20-
</ReactSaveAreaView>
21+
</SafeAreaViewComponent>
2122
);
2223
};

packages/pluggableWidgets/safe-area-view-native/src/__tests__/SafeAreaView.spec.tsx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { SafeAreaView } from "../SafeAreaView";
44
import { SafeAreaViewProps } from "../../typings/SafeAreaViewProps";
55
import { SafeAreaViewStyle } from "../ui/Styles";
66
import { Text } from "react-native";
7+
import { SafeAreaProvider } from "react-native-safe-area-context";
78

89
describe("Safe area view", () => {
910
let defaultProps: SafeAreaViewProps<SafeAreaViewStyle>;
@@ -18,14 +19,20 @@ describe("Safe area view", () => {
1819

1920
it("renders with content", () => {
2021
const component = render(
21-
<SafeAreaView name={defaultProps.name} style={defaultProps.style} content={defaultProps.content} />
22+
<SafeAreaProvider>
23+
<SafeAreaView name={defaultProps.name} style={defaultProps.style} content={defaultProps.content} />
24+
</SafeAreaProvider>
2225
);
2326
expect(component.toJSON()).toMatchSnapshot();
2427
});
2528

2629
it("renders without content", () => {
2730
delete defaultProps.content;
28-
const component = render(<SafeAreaView {...defaultProps} />);
31+
const component = render(
32+
<SafeAreaProvider>
33+
<SafeAreaView {...defaultProps} />
34+
</SafeAreaProvider>
35+
);
2936
expect(component.toJSON()).toMatchSnapshot();
3037
});
3138

@@ -36,7 +43,11 @@ describe("Safe area view", () => {
3643
},
3744
{ container: { backgroundColor: "green" } }
3845
];
39-
const component = render(<SafeAreaView {...defaultProps} />);
46+
const component = render(
47+
<SafeAreaProvider>
48+
<SafeAreaView {...defaultProps} />
49+
</SafeAreaProvider>
50+
);
4051
expect(component.toJSON()).toMatchSnapshot();
4152
});
4253
});
Lines changed: 24 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,43 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

33
exports[`Safe area view renders with content 1`] = `
4-
<View
5-
pointerEvents="box-none"
4+
<RNCSafeAreaProvider
5+
onInsetsChange={[Function]}
66
style={
7-
{
8-
"backgroundColor": undefined,
9-
"flex": 1,
10-
}
11-
}
12-
testID="safe-area-view-test"
13-
>
14-
<View
15-
pointerEvents="box-none"
16-
style={
7+
[
178
{
189
"flex": 1,
19-
}
20-
}
21-
>
22-
<Text>
23-
Content
24-
</Text>
25-
</View>
26-
</View>
10+
},
11+
undefined,
12+
]
13+
}
14+
/>
2715
`;
2816

2917
exports[`Safe area view renders with custom styling 1`] = `
30-
<View
31-
pointerEvents="box-none"
18+
<RNCSafeAreaProvider
19+
onInsetsChange={[Function]}
3220
style={
33-
{
34-
"backgroundColor": "green",
35-
"flex": 1,
36-
}
37-
}
38-
testID="safe-area-view-test"
39-
>
40-
<View
41-
pointerEvents="box-none"
42-
style={
21+
[
4322
{
44-
"backgroundColor": "green",
4523
"flex": 1,
46-
}
47-
}
48-
>
49-
<Text>
50-
Content
51-
</Text>
52-
</View>
53-
</View>
24+
},
25+
undefined,
26+
]
27+
}
28+
/>
5429
`;
5530

5631
exports[`Safe area view renders without content 1`] = `
57-
<View
58-
pointerEvents="box-none"
32+
<RNCSafeAreaProvider
33+
onInsetsChange={[Function]}
5934
style={
60-
{
61-
"backgroundColor": undefined,
62-
"flex": 1,
63-
}
64-
}
65-
testID="safe-area-view-test"
66-
>
67-
<View
68-
pointerEvents="box-none"
69-
style={
35+
[
7036
{
7137
"flex": 1,
72-
}
73-
}
74-
/>
75-
</View>
38+
},
39+
undefined,
40+
]
41+
}
42+
/>
7643
`;

packages/pluggableWidgets/safe-area-view-native/src/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<package xmlns="http://www.mendix.com/package/1.0/">
3-
<clientModule name="SafeAreaView" version="3.0.1" xmlns="http://www.mendix.com/clientModule/1.0/">
3+
<clientModule name="SafeAreaView" version="3.1.0" xmlns="http://www.mendix.com/clientModule/1.0/">
44
<widgetFiles>
55
<widgetFile path="SafeAreaView.xml" />
66
</widgetFiles>

yarn.lock

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14317,6 +14317,16 @@ __metadata:
1431714317
languageName: node
1431814318
linkType: hard
1431914319

14320+
"react-native-safe-area-context@npm:5.2.0":
14321+
version: 5.2.0
14322+
resolution: "react-native-safe-area-context@npm:5.2.0"
14323+
peerDependencies:
14324+
react: "*"
14325+
react-native: "*"
14326+
checksum: 10/0972d6f1e2485b71c148aeabaf9f1bfbc533549c66de7d0ea617f92df0024646324c38dc9062ea0392761b72b0f7b6e605a784c09addce61e105e6737bbde7b0
14327+
languageName: node
14328+
linkType: hard
14329+
1432014330
"react-native-schedule-exact-alarm-permission@npm:^0.1.3":
1432114331
version: 0.1.5
1432214332
resolution: "react-native-schedule-exact-alarm-permission@npm:0.1.5"
@@ -15263,6 +15273,7 @@ __metadata:
1526315273
"@mendix/piw-utils-internal": "npm:*"
1526415274
"@mendix/pluggable-widgets-tools": "npm:~10.0.1"
1526515275
eslint: "npm:^7.32.0"
15276+
react-native-safe-area-context: "npm:5.2.0"
1526615277
languageName: unknown
1526715278
linkType: soft
1526815279

0 commit comments

Comments
 (0)