@duffel/react-native-components-assistant 0.5.1-canary.0 → 0.5.1-canary.1
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/index.js +57 -39
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +53 -36
package/lib/module/index.js
CHANGED
|
@@ -78,48 +78,59 @@ export const DuffelAssistant = ({
|
|
|
78
78
|
Linking.openURL(request.url).catch(() => {});
|
|
79
79
|
return false;
|
|
80
80
|
};
|
|
81
|
+
if (Platform.OS === 'android') {
|
|
82
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
83
|
+
visible: isOpen,
|
|
84
|
+
onRequestClose: () => onClose(),
|
|
85
|
+
animationType: "slide",
|
|
86
|
+
children: /*#__PURE__*/_jsx(KeyboardAvoidingView, {
|
|
87
|
+
behavior: 'padding',
|
|
88
|
+
enabled: true,
|
|
89
|
+
style: styles.keyboardAvoidingView,
|
|
90
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
91
|
+
style: styles.androidContainer,
|
|
92
|
+
children: /*#__PURE__*/_jsx(WebView
|
|
93
|
+
// Required for Android
|
|
94
|
+
, {
|
|
95
|
+
injectedJavaScript: `
|
|
96
|
+
postMessage(
|
|
97
|
+
{
|
|
98
|
+
type: "duffel-assistant-open",
|
|
99
|
+
properties: ${JSON.stringify(properties)},
|
|
100
|
+
},
|
|
101
|
+
"*",
|
|
102
|
+
);
|
|
103
|
+
true;`,
|
|
104
|
+
source: {
|
|
105
|
+
uri: assistantIframeUrl
|
|
106
|
+
},
|
|
107
|
+
onMessage: handleMessage,
|
|
108
|
+
onShouldStartLoadWithRequest: handleShouldStartLoadWithRequest,
|
|
109
|
+
style: styles.webView
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
})
|
|
113
|
+
});
|
|
114
|
+
}
|
|
81
115
|
return /*#__PURE__*/_jsx(Modal, {
|
|
82
116
|
visible: isOpen,
|
|
83
117
|
onRequestClose: () => onClose(),
|
|
84
118
|
animationType: "slide",
|
|
85
|
-
children: /*#__PURE__*/_jsx(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
},
|
|
101
|
-
onMessage: handleMessage,
|
|
102
|
-
onShouldStartLoadWithRequest: handleShouldStartLoadWithRequest,
|
|
103
|
-
style: styles.webView
|
|
104
|
-
}) : /*#__PURE__*/_jsx(WebView
|
|
105
|
-
// Required for Android
|
|
106
|
-
, {
|
|
107
|
-
injectedJavaScript: `
|
|
108
|
-
postMessage(
|
|
109
|
-
{
|
|
110
|
-
type: "duffel-assistant-open",
|
|
111
|
-
properties: ${JSON.stringify(properties)},
|
|
112
|
-
},
|
|
113
|
-
"*",
|
|
114
|
-
);
|
|
115
|
-
true;`,
|
|
116
|
-
source: {
|
|
117
|
-
uri: assistantIframeUrl
|
|
118
|
-
},
|
|
119
|
-
onMessage: handleMessage,
|
|
120
|
-
onShouldStartLoadWithRequest: handleShouldStartLoadWithRequest,
|
|
121
|
-
style: styles.webView
|
|
122
|
-
})
|
|
119
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
120
|
+
style: styles.container,
|
|
121
|
+
children: /*#__PURE__*/_jsx(WebView, {
|
|
122
|
+
injectedJavaScriptObject: properties
|
|
123
|
+
// When you are running this in development iOS doesn't allow request from hosts with invalid https certificates.
|
|
124
|
+
// If you try ngrok with the local esbuild server it will fail because ngrok requests in https and the dev server rejects http requests.
|
|
125
|
+
// Easiest solution is to use the production URL with test data.
|
|
126
|
+
// If that's not possible, you can also upload the assistant built assets to a different folder in assets.duffel and work with that.
|
|
127
|
+
,
|
|
128
|
+
source: {
|
|
129
|
+
uri: assistantIframeUrl
|
|
130
|
+
},
|
|
131
|
+
onMessage: handleMessage,
|
|
132
|
+
onShouldStartLoadWithRequest: handleShouldStartLoadWithRequest,
|
|
133
|
+
style: styles.webView
|
|
123
134
|
})
|
|
124
135
|
})
|
|
125
136
|
});
|
|
@@ -133,7 +144,14 @@ const styles = StyleSheet.create({
|
|
|
133
144
|
width: '100%',
|
|
134
145
|
paddingHorizontal: 12,
|
|
135
146
|
paddingTop: 50,
|
|
136
|
-
paddingBottom:
|
|
147
|
+
paddingBottom: 10
|
|
148
|
+
},
|
|
149
|
+
androidContainer: {
|
|
150
|
+
flex: 1,
|
|
151
|
+
width: '100%',
|
|
152
|
+
paddingHorizontal: 12,
|
|
153
|
+
paddingTop: 50,
|
|
154
|
+
paddingBottom: 10
|
|
137
155
|
},
|
|
138
156
|
webView: {
|
|
139
157
|
flex: 1
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","KeyboardAvoidingView","Linking","Modal","Platform","StyleSheet","View","WebView","hasJsonWebTokenFormat","getClientKeyPayload","jsx","_jsx","assistantIframeUrl","isHttpUrl","url","test","isAssistantIframeUrl","parsedUrl","URL","origin","pathname","error","DuffelAssistant","isOpen","onClose","onNewMessage","properties","clientKey","Error","clientKeyPayload","clientKeyIncludesResource","order_id","undefined","booking_id","cars_booking_id","issueType","console","warn","context","supportChannels","chat","showMinimiseButton","onMinimise","handleMessage","event","nativeEvent","data","parsedData","JSON","parse","type","userId","resourceId","handleShouldStartLoadWithRequest","request","OS","navigationType","openURL","catch","visible","onRequestClose","animationType","children","behavior","enabled","style","styles","keyboardAvoidingView","
|
|
1
|
+
{"version":3,"names":["React","KeyboardAvoidingView","Linking","Modal","Platform","StyleSheet","View","WebView","hasJsonWebTokenFormat","getClientKeyPayload","jsx","_jsx","assistantIframeUrl","isHttpUrl","url","test","isAssistantIframeUrl","parsedUrl","URL","origin","pathname","error","DuffelAssistant","isOpen","onClose","onNewMessage","properties","clientKey","Error","clientKeyPayload","clientKeyIncludesResource","order_id","undefined","booking_id","cars_booking_id","issueType","console","warn","context","supportChannels","chat","showMinimiseButton","onMinimise","handleMessage","event","nativeEvent","data","parsedData","JSON","parse","type","userId","resourceId","handleShouldStartLoadWithRequest","request","OS","navigationType","openURL","catch","visible","onRequestClose","animationType","children","behavior","enabled","style","styles","keyboardAvoidingView","androidContainer","injectedJavaScript","stringify","source","uri","onMessage","onShouldStartLoadWithRequest","webView","container","injectedJavaScriptObject","create","flex","width","paddingHorizontal","paddingTop","paddingBottom"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EAAE,KAAK,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAInG,MAAM,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AA2BhE,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EAAE,KAAK,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAInG,MAAM,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AA2BhE,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2K1D,CAAC"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -154,50 +154,60 @@ export const DuffelAssistant: React.FC<DuffelAssistantProps> = ({
|
|
|
154
154
|
return false;
|
|
155
155
|
};
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
<KeyboardAvoidingView
|
|
164
|
-
behavior={Platform.OS === 'android' ? 'padding' : undefined}
|
|
165
|
-
enabled={Platform.OS === 'android'}
|
|
166
|
-
style={styles.keyboardAvoidingView}
|
|
157
|
+
if (Platform.OS === 'android') {
|
|
158
|
+
return (
|
|
159
|
+
<Modal
|
|
160
|
+
visible={isOpen}
|
|
161
|
+
onRequestClose={() => onClose()}
|
|
162
|
+
animationType="slide"
|
|
167
163
|
>
|
|
168
|
-
<
|
|
169
|
-
{
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
// Easiest solution is to use the production URL with test data.
|
|
175
|
-
// If that's not possible, you can also upload the assistant built assets to a different folder in assets.duffel and work with that.
|
|
176
|
-
source={{ uri: assistantIframeUrl }}
|
|
177
|
-
onMessage={handleMessage}
|
|
178
|
-
onShouldStartLoadWithRequest={handleShouldStartLoadWithRequest}
|
|
179
|
-
style={styles.webView}
|
|
180
|
-
/>
|
|
181
|
-
) : (
|
|
164
|
+
<KeyboardAvoidingView
|
|
165
|
+
behavior={'padding'}
|
|
166
|
+
enabled={true}
|
|
167
|
+
style={styles.keyboardAvoidingView}
|
|
168
|
+
>
|
|
169
|
+
<View style={styles.androidContainer}>
|
|
182
170
|
<WebView
|
|
183
171
|
// Required for Android
|
|
184
172
|
injectedJavaScript={`
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
173
|
+
postMessage(
|
|
174
|
+
{
|
|
175
|
+
type: "duffel-assistant-open",
|
|
176
|
+
properties: ${JSON.stringify(properties)},
|
|
177
|
+
},
|
|
178
|
+
"*",
|
|
179
|
+
);
|
|
180
|
+
true;`}
|
|
193
181
|
source={{ uri: assistantIframeUrl }}
|
|
194
182
|
onMessage={handleMessage}
|
|
195
183
|
onShouldStartLoadWithRequest={handleShouldStartLoadWithRequest}
|
|
196
184
|
style={styles.webView}
|
|
197
185
|
/>
|
|
198
|
-
|
|
199
|
-
</
|
|
200
|
-
</
|
|
186
|
+
</View>
|
|
187
|
+
</KeyboardAvoidingView>
|
|
188
|
+
</Modal>
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
return (
|
|
193
|
+
<Modal
|
|
194
|
+
visible={isOpen}
|
|
195
|
+
onRequestClose={() => onClose()}
|
|
196
|
+
animationType="slide"
|
|
197
|
+
>
|
|
198
|
+
<View style={styles.container}>
|
|
199
|
+
<WebView
|
|
200
|
+
injectedJavaScriptObject={properties}
|
|
201
|
+
// When you are running this in development iOS doesn't allow request from hosts with invalid https certificates.
|
|
202
|
+
// If you try ngrok with the local esbuild server it will fail because ngrok requests in https and the dev server rejects http requests.
|
|
203
|
+
// Easiest solution is to use the production URL with test data.
|
|
204
|
+
// If that's not possible, you can also upload the assistant built assets to a different folder in assets.duffel and work with that.
|
|
205
|
+
source={{ uri: assistantIframeUrl }}
|
|
206
|
+
onMessage={handleMessage}
|
|
207
|
+
onShouldStartLoadWithRequest={handleShouldStartLoadWithRequest}
|
|
208
|
+
style={styles.webView}
|
|
209
|
+
/>
|
|
210
|
+
</View>
|
|
201
211
|
</Modal>
|
|
202
212
|
);
|
|
203
213
|
};
|
|
@@ -211,7 +221,14 @@ const styles = StyleSheet.create({
|
|
|
211
221
|
width: '100%',
|
|
212
222
|
paddingHorizontal: 12,
|
|
213
223
|
paddingTop: 50,
|
|
214
|
-
paddingBottom:
|
|
224
|
+
paddingBottom: 10,
|
|
225
|
+
},
|
|
226
|
+
androidContainer: {
|
|
227
|
+
flex: 1,
|
|
228
|
+
width: '100%',
|
|
229
|
+
paddingHorizontal: 12,
|
|
230
|
+
paddingTop: 50,
|
|
231
|
+
paddingBottom: 10,
|
|
215
232
|
},
|
|
216
233
|
webView: {
|
|
217
234
|
flex: 1,
|