@savers_app/react-native-sandbox-sdk 1.4.0 → 1.5.0
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.
- package/lib/module/services/webview/DualWebViewBridgeController.js +19 -1
- package/lib/module/services/webview/DualWebViewBridgeController.js.map +1 -1
- package/lib/typescript/src/services/webview/DualWebViewBridgeController.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/services/webview/DualWebViewBridgeController.tsx +19 -1
|
@@ -56,6 +56,7 @@ export const DualWebViewBridgeController = ({
|
|
|
56
56
|
}) => {
|
|
57
57
|
const saversRef = useRef(null);
|
|
58
58
|
const travelRef = useRef(null);
|
|
59
|
+
const pendingNavigateHubAfterSaversReloadRef = useRef(false);
|
|
59
60
|
const [surface, setSurface] = useState(initialSurface);
|
|
60
61
|
const [saversKey, setSaversKey] = useState(0);
|
|
61
62
|
const [travelKey, setTravelKey] = useState(0);
|
|
@@ -71,9 +72,26 @@ export const DualWebViewBridgeController = ({
|
|
|
71
72
|
setTravelKey(k => k + 1);
|
|
72
73
|
}, []);
|
|
73
74
|
const backToSavers = useCallback(() => {
|
|
75
|
+
pendingNavigateHubAfterSaversReloadRef.current = true;
|
|
74
76
|
setSurface('savers');
|
|
75
77
|
setSaversKey(k => k + 1);
|
|
76
78
|
}, []);
|
|
79
|
+
const onLoadEndSaversWithSync = useCallback(() => {
|
|
80
|
+
// If we just returned from Travel, we intentionally reload Savers and then force it to show Hub.
|
|
81
|
+
if (pendingNavigateHubAfterSaversReloadRef.current) {
|
|
82
|
+
pendingNavigateHubAfterSaversReloadRef.current = false;
|
|
83
|
+
saversRef.current?.injectJavaScript(buildInjectNativeBridgeScript({
|
|
84
|
+
bridge: 'dual-webview',
|
|
85
|
+
from: 'native',
|
|
86
|
+
action: 'relay',
|
|
87
|
+
payload: {
|
|
88
|
+
type: 'NAVIGATE',
|
|
89
|
+
route: 'Hub'
|
|
90
|
+
}
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
onLoadEndSavers?.();
|
|
94
|
+
}, [onLoadEndSavers]);
|
|
77
95
|
const relayTo = useCallback((target, payload, from) => {
|
|
78
96
|
const detail = {
|
|
79
97
|
bridge: 'dual-webview',
|
|
@@ -180,7 +198,7 @@ export const DualWebViewBridgeController = ({
|
|
|
180
198
|
applicationNameForUserAgent: WEBVIEW_UA_MARKER,
|
|
181
199
|
onMessage: onMessageSavers,
|
|
182
200
|
onShouldStartLoadWithRequest: onShouldStartLoadSavers,
|
|
183
|
-
onLoadEnd:
|
|
201
|
+
onLoadEnd: onLoadEndSaversWithSync,
|
|
184
202
|
style: styles.webview,
|
|
185
203
|
sharedCookiesEnabled: true,
|
|
186
204
|
incognito: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","StyleSheet","View","WebView","TravelPortalHeader","parseDualWebViewEnvelope","jsx","_jsx","jsxs","_jsxs","DEFAULT_TRAVEL_PORTAL_URL","WEBVIEW_UA_MARKER","TRAVEL_DEEP_LINK","LEGACY_OPEN_TRAVEL_ACTIONS","resolveTravelPortalUrlFromPayload","payload","trim","url","undefined","resolveTravelPortalUrlFromLegacyMessage","data","topLevel","buildInjectNativeBridgeScript","detail","JSON","stringify","DualWebViewBridgeController","saversAppUrl","travelPortalUrl","partnerLogo","travelBackIconColor","travelHeaderTopInset","renderTravelBackIcon","initialSurface","onSaversSdkMessage","onLoadEndSavers","onLoadEndTravel","saversRef","travelRef","surface","setSurface","saversKey","setSaversKey","travelKey","setTravelKey","activeTravelPortalUrl","setActiveTravelPortalUrl","openTravel","k","backToSavers","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","StyleSheet","View","WebView","TravelPortalHeader","parseDualWebViewEnvelope","jsx","_jsx","jsxs","_jsxs","DEFAULT_TRAVEL_PORTAL_URL","WEBVIEW_UA_MARKER","TRAVEL_DEEP_LINK","LEGACY_OPEN_TRAVEL_ACTIONS","resolveTravelPortalUrlFromPayload","payload","trim","url","undefined","resolveTravelPortalUrlFromLegacyMessage","data","topLevel","buildInjectNativeBridgeScript","detail","JSON","stringify","DualWebViewBridgeController","saversAppUrl","travelPortalUrl","partnerLogo","travelBackIconColor","travelHeaderTopInset","renderTravelBackIcon","initialSurface","onSaversSdkMessage","onLoadEndSavers","onLoadEndTravel","saversRef","travelRef","pendingNavigateHubAfterSaversReloadRef","surface","setSurface","saversKey","setSaversKey","travelKey","setTravelKey","activeTravelPortalUrl","setActiveTravelPortalUrl","openTravel","k","backToSavers","current","onLoadEndSaversWithSync","injectJavaScript","bridge","from","action","type","route","relayTo","target","ref","handleBridgeEnvelope","env","to","tryLegacyOpenTravel","raw","parse","some","s","includes","onMessageSavers","e","nativeEvent","postBack","onMessageTravel","onShouldStartLoadSavers","request","startsWith","travelSource","uri","saversSource","style","styles","root","children","source","originWhitelist","applicationNameForUserAgent","onMessage","onShouldStartLoadWithRequest","onLoadEnd","webview","sharedCookiesEnabled","incognito","webviewDebuggingEnabled","__DEV__","travelColumn","onBack","backIconColor","topInset","renderBackIcon","create","flex"],"sourceRoot":"../../../../src","sources":["services/webview/DualWebViewBridgeController.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DualWebViewBridgeController.d.ts","sourceRoot":"","sources":["../../../../../src/services/webview/DualWebViewBridgeController.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AA2Cf,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1C,MAAM,MAAM,gCAAgC,GAAG;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,oBAAoB,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IAC9E,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAcF,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAChD,gCAAgC,
|
|
1
|
+
{"version":3,"file":"DualWebViewBridgeController.d.ts","sourceRoot":"","sources":["../../../../../src/services/webview/DualWebViewBridgeController.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AA2Cf,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1C,MAAM,MAAM,gCAAgC,GAAG;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,oBAAoB,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IAC9E,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAcF,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAChD,gCAAgC,CA0OjC,CAAC;AAQF,eAAe,2BAA2B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@savers_app/react-native-sandbox-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Cross-platform React Native SDK exposing native features (maps, dial pad, browser), device ID/location and session utilities, a URL generator, and a WebView message bridge to trigger actions from web content.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"react-native": "./src/index.tsx",
|
|
@@ -92,6 +92,7 @@ export const DualWebViewBridgeController: React.FC<
|
|
|
92
92
|
}) => {
|
|
93
93
|
const saversRef = useRef<WebView>(null);
|
|
94
94
|
const travelRef = useRef<WebView>(null);
|
|
95
|
+
const pendingNavigateHubAfterSaversReloadRef = useRef(false);
|
|
95
96
|
|
|
96
97
|
const [surface, setSurface] = useState<Surface>(initialSurface);
|
|
97
98
|
const [saversKey, setSaversKey] = useState(0);
|
|
@@ -112,10 +113,27 @@ export const DualWebViewBridgeController: React.FC<
|
|
|
112
113
|
}, []);
|
|
113
114
|
|
|
114
115
|
const backToSavers = useCallback(() => {
|
|
116
|
+
pendingNavigateHubAfterSaversReloadRef.current = true;
|
|
115
117
|
setSurface('savers');
|
|
116
118
|
setSaversKey((k) => k + 1);
|
|
117
119
|
}, []);
|
|
118
120
|
|
|
121
|
+
const onLoadEndSaversWithSync = useCallback(() => {
|
|
122
|
+
// If we just returned from Travel, we intentionally reload Savers and then force it to show Hub.
|
|
123
|
+
if (pendingNavigateHubAfterSaversReloadRef.current) {
|
|
124
|
+
pendingNavigateHubAfterSaversReloadRef.current = false;
|
|
125
|
+
saversRef.current?.injectJavaScript(
|
|
126
|
+
buildInjectNativeBridgeScript({
|
|
127
|
+
bridge: 'dual-webview',
|
|
128
|
+
from: 'native',
|
|
129
|
+
action: 'relay',
|
|
130
|
+
payload: { type: 'NAVIGATE', route: 'Hub' },
|
|
131
|
+
})
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
onLoadEndSavers?.();
|
|
135
|
+
}, [onLoadEndSavers]);
|
|
136
|
+
|
|
119
137
|
const relayTo = useCallback(
|
|
120
138
|
(
|
|
121
139
|
target: 'savers' | 'travel',
|
|
@@ -259,7 +277,7 @@ export const DualWebViewBridgeController: React.FC<
|
|
|
259
277
|
applicationNameForUserAgent={WEBVIEW_UA_MARKER}
|
|
260
278
|
onMessage={onMessageSavers}
|
|
261
279
|
onShouldStartLoadWithRequest={onShouldStartLoadSavers}
|
|
262
|
-
onLoadEnd={
|
|
280
|
+
onLoadEnd={onLoadEndSaversWithSync}
|
|
263
281
|
style={styles.webview}
|
|
264
282
|
sharedCookiesEnabled
|
|
265
283
|
incognito={false}
|