@planningcenter/chat-react-native 4.4.1-qa-staging.40 → 4.4.1-qa-staging.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenLayout.d.ts","sourceRoot":"","sources":["../../src/navigation/screenLayout.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"screenLayout.d.ts","sourceRoot":"","sources":["../../src/navigation/screenLayout.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAA;CAAE,2CAa1E;AAED,wBAAgB,8BAA8B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAA;CAAE,2CAQ5F"}
|
|
@@ -2,7 +2,7 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
2
2
|
import { useRoute } from '@react-navigation/native';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Suspense } from 'react';
|
|
5
|
-
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
6
6
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
7
7
|
import { DefaultLoading } from '../components/page/loading';
|
|
8
8
|
import { PageErrorBoundary } from '../components/page/page_error_boundary';
|
|
@@ -10,13 +10,16 @@ import { ChatAccessGate } from './chat_access_gate';
|
|
|
10
10
|
import { PAGE_ERROR_FALLBACKS } from './page_error_fallbacks';
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
export function ScreenLayout(t0) {
|
|
13
|
-
const $ = _c(
|
|
13
|
+
const $ = _c(11);
|
|
14
14
|
const {
|
|
15
15
|
children
|
|
16
16
|
} = t0;
|
|
17
17
|
const route = useRoute();
|
|
18
18
|
const genericFallback = PAGE_ERROR_FALLBACKS[route.name];
|
|
19
19
|
const styles = useStyles();
|
|
20
|
+
const {
|
|
21
|
+
fontScale
|
|
22
|
+
} = useWindowDimensions();
|
|
20
23
|
let t1;
|
|
21
24
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
22
25
|
t1 = /*#__PURE__*/_jsx(DefaultLoading, {});
|
|
@@ -36,30 +39,31 @@ export function ScreenLayout(t0) {
|
|
|
36
39
|
t2 = $[2];
|
|
37
40
|
}
|
|
38
41
|
let t3;
|
|
39
|
-
if ($[3] !== styles.screen || $[
|
|
42
|
+
if ($[3] !== fontScale || $[4] !== styles.screen || $[5] !== t2) {
|
|
40
43
|
t3 = /*#__PURE__*/_jsx(View, {
|
|
41
44
|
style: styles.screen,
|
|
42
45
|
children: t2
|
|
43
|
-
});
|
|
44
|
-
$[3] =
|
|
45
|
-
$[4] =
|
|
46
|
-
$[5] =
|
|
46
|
+
}, fontScale);
|
|
47
|
+
$[3] = fontScale;
|
|
48
|
+
$[4] = styles.screen;
|
|
49
|
+
$[5] = t2;
|
|
50
|
+
$[6] = t3;
|
|
47
51
|
} else {
|
|
48
|
-
t3 = $[
|
|
52
|
+
t3 = $[6];
|
|
49
53
|
}
|
|
50
54
|
let t4;
|
|
51
|
-
if ($[
|
|
55
|
+
if ($[7] !== genericFallback || $[8] !== route.name || $[9] !== t3) {
|
|
52
56
|
t4 = /*#__PURE__*/_jsx(PageErrorBoundary, {
|
|
53
57
|
screenName: route.name,
|
|
54
58
|
genericFallback: genericFallback,
|
|
55
59
|
children: t3
|
|
56
60
|
});
|
|
57
|
-
$[
|
|
58
|
-
$[
|
|
59
|
-
$[
|
|
60
|
-
$[
|
|
61
|
+
$[7] = genericFallback;
|
|
62
|
+
$[8] = route.name;
|
|
63
|
+
$[9] = t3;
|
|
64
|
+
$[10] = t4;
|
|
61
65
|
} else {
|
|
62
|
-
t4 = $[
|
|
66
|
+
t4 = $[10];
|
|
63
67
|
}
|
|
64
68
|
return t4;
|
|
65
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenLayout.js","names":["useRoute","React","Suspense","StyleSheet","View","useSafeAreaInsets","DefaultLoading","PageErrorBoundary","ChatAccessGate","PAGE_ERROR_FALLBACKS","jsx","_jsx","ScreenLayout","t0","$","_c","children","route","genericFallback","name","styles","useStyles","t1","Symbol","for","t2","fallback","t3","screen","style","t4","screenName","ScreenLayoutWithChatAccessGate","insets","left","right","create","flex","paddingLeft","paddingRight"],"sources":["../../src/navigation/screenLayout.tsx"],"sourcesContent":["import { useRoute } from '@react-navigation/native'\nimport React from 'react'\nimport { Suspense } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { DefaultLoading } from '../components/page/loading'\nimport { PageErrorBoundary } from '../components/page/page_error_boundary'\nimport { ChatAccessGate } from './chat_access_gate'\nimport { PAGE_ERROR_FALLBACKS } from './page_error_fallbacks'\n\nexport function ScreenLayout({ children }: { children: React.ReactElement }) {\n const route = useRoute()\n const genericFallback = PAGE_ERROR_FALLBACKS[route.name as keyof typeof PAGE_ERROR_FALLBACKS]\n const styles = useStyles()\n\n return (\n <PageErrorBoundary screenName={route.name} genericFallback={genericFallback}>\n <View style={styles.screen}>\n <Suspense fallback={<DefaultLoading />}>{children}</Suspense>\n </View>\n </PageErrorBoundary>\n )\n}\n\nexport function ScreenLayoutWithChatAccessGate({ children }: { children: React.ReactElement }) {\n return (\n <ScreenLayout>\n <ChatAccessGate>\n <Suspense fallback={<DefaultLoading />}>{children}</Suspense>\n </ChatAccessGate>\n </ScreenLayout>\n )\n}\n\nconst useStyles = () => {\n const insets = useSafeAreaInsets()\n\n return StyleSheet.create({\n screen: {\n flex: 1,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n })\n}\n"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,0BAA0B;AACnD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,OAAO;AAChC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"file":"screenLayout.js","names":["useRoute","React","Suspense","StyleSheet","useWindowDimensions","View","useSafeAreaInsets","DefaultLoading","PageErrorBoundary","ChatAccessGate","PAGE_ERROR_FALLBACKS","jsx","_jsx","ScreenLayout","t0","$","_c","children","route","genericFallback","name","styles","useStyles","fontScale","t1","Symbol","for","t2","fallback","t3","screen","style","t4","screenName","ScreenLayoutWithChatAccessGate","insets","left","right","create","flex","paddingLeft","paddingRight"],"sources":["../../src/navigation/screenLayout.tsx"],"sourcesContent":["import { useRoute } from '@react-navigation/native'\nimport React from 'react'\nimport { Suspense } from 'react'\nimport { StyleSheet, useWindowDimensions, View } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { DefaultLoading } from '../components/page/loading'\nimport { PageErrorBoundary } from '../components/page/page_error_boundary'\nimport { ChatAccessGate } from './chat_access_gate'\nimport { PAGE_ERROR_FALLBACKS } from './page_error_fallbacks'\n\nexport function ScreenLayout({ children }: { children: React.ReactElement }) {\n const route = useRoute()\n const genericFallback = PAGE_ERROR_FALLBACKS[route.name as keyof typeof PAGE_ERROR_FALLBACKS]\n const styles = useStyles()\n const { fontScale } = useWindowDimensions()\n\n return (\n <PageErrorBoundary screenName={route.name} genericFallback={genericFallback}>\n <View key={fontScale} style={styles.screen}>\n <Suspense fallback={<DefaultLoading />}>{children}</Suspense>\n </View>\n </PageErrorBoundary>\n )\n}\n\nexport function ScreenLayoutWithChatAccessGate({ children }: { children: React.ReactElement }) {\n return (\n <ScreenLayout>\n <ChatAccessGate>\n <Suspense fallback={<DefaultLoading />}>{children}</Suspense>\n </ChatAccessGate>\n </ScreenLayout>\n )\n}\n\nconst useStyles = () => {\n const insets = useSafeAreaInsets()\n\n return StyleSheet.create({\n screen: {\n flex: 1,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planningcenter/chat-react-native",
|
|
3
|
-
"version": "4.4.1-qa-staging.
|
|
3
|
+
"version": "4.4.1-qa-staging.41",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@fortawesome/fontawesome-svg-core": "^7.2.0",
|
|
35
35
|
"@fortawesome/react-native-fontawesome": "^0.3.2",
|
|
36
|
-
"@planningcenter/emoji-keyboard": "4.4.1-qa-staging.
|
|
36
|
+
"@planningcenter/emoji-keyboard": "4.4.1-qa-staging.41",
|
|
37
37
|
"lodash-inflection": "^1.5.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"sf-symbols-typescript": "^2.2.0",
|
|
85
85
|
"typescript": "~6.0.3"
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "382bfa092bf544d43feca8879e595cebe31446de"
|
|
88
88
|
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { render } from '@testing-library/react-native'
|
|
2
|
+
import React, { useEffect } from 'react'
|
|
3
|
+
import { ScreenLayout } from '../../navigation/screenLayout'
|
|
4
|
+
|
|
5
|
+
jest.mock('react-native', () => {
|
|
6
|
+
const actual = jest.requireActual('react-native')
|
|
7
|
+
return Object.defineProperty(actual, 'useWindowDimensions', {
|
|
8
|
+
value: jest.fn(),
|
|
9
|
+
configurable: true,
|
|
10
|
+
})
|
|
11
|
+
})
|
|
12
|
+
jest.mock('@react-navigation/native', () => ({ useRoute: () => ({ name: 'Conversations' }) }))
|
|
13
|
+
jest.mock('react-native-safe-area-context', () => ({
|
|
14
|
+
useSafeAreaInsets: () => ({ top: 0, right: 0, bottom: 0, left: 0 }),
|
|
15
|
+
}))
|
|
16
|
+
jest.mock('../../components/page/page_error_boundary', () => ({
|
|
17
|
+
PageErrorBoundary: ({ children }: { children: React.ReactNode }) => children,
|
|
18
|
+
}))
|
|
19
|
+
|
|
20
|
+
const mockUseWindowDimensions = require('react-native').useWindowDimensions
|
|
21
|
+
const onMount = jest.fn()
|
|
22
|
+
|
|
23
|
+
function Child() {
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
onMount()
|
|
26
|
+
}, [])
|
|
27
|
+
return null
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
describe('ScreenLayout', () => {
|
|
31
|
+
afterEach(() => jest.clearAllMocks())
|
|
32
|
+
|
|
33
|
+
test('remounts its screen when the font scale changes, and only then', () => {
|
|
34
|
+
mockUseWindowDimensions.mockReturnValue({ fontScale: 1 })
|
|
35
|
+
const screen = render(
|
|
36
|
+
<ScreenLayout>
|
|
37
|
+
<Child />
|
|
38
|
+
</ScreenLayout>
|
|
39
|
+
)
|
|
40
|
+
screen.rerender(
|
|
41
|
+
<ScreenLayout>
|
|
42
|
+
<Child />
|
|
43
|
+
</ScreenLayout>
|
|
44
|
+
)
|
|
45
|
+
expect(onMount).toHaveBeenCalledTimes(1)
|
|
46
|
+
|
|
47
|
+
mockUseWindowDimensions.mockReturnValue({ fontScale: 1.2 })
|
|
48
|
+
screen.rerender(
|
|
49
|
+
<ScreenLayout>
|
|
50
|
+
<Child />
|
|
51
|
+
</ScreenLayout>
|
|
52
|
+
)
|
|
53
|
+
expect(onMount).toHaveBeenCalledTimes(2)
|
|
54
|
+
})
|
|
55
|
+
})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useRoute } from '@react-navigation/native'
|
|
2
2
|
import React from 'react'
|
|
3
3
|
import { Suspense } from 'react'
|
|
4
|
-
import { StyleSheet, View } from 'react-native'
|
|
4
|
+
import { StyleSheet, useWindowDimensions, View } from 'react-native'
|
|
5
5
|
import { useSafeAreaInsets } from 'react-native-safe-area-context'
|
|
6
6
|
import { DefaultLoading } from '../components/page/loading'
|
|
7
7
|
import { PageErrorBoundary } from '../components/page/page_error_boundary'
|
|
@@ -12,10 +12,11 @@ export function ScreenLayout({ children }: { children: React.ReactElement }) {
|
|
|
12
12
|
const route = useRoute()
|
|
13
13
|
const genericFallback = PAGE_ERROR_FALLBACKS[route.name as keyof typeof PAGE_ERROR_FALLBACKS]
|
|
14
14
|
const styles = useStyles()
|
|
15
|
+
const { fontScale } = useWindowDimensions()
|
|
15
16
|
|
|
16
17
|
return (
|
|
17
18
|
<PageErrorBoundary screenName={route.name} genericFallback={genericFallback}>
|
|
18
|
-
<View style={styles.screen}>
|
|
19
|
+
<View key={fontScale} style={styles.screen}>
|
|
19
20
|
<Suspense fallback={<DefaultLoading />}>{children}</Suspense>
|
|
20
21
|
</View>
|
|
21
22
|
</PageErrorBoundary>
|