react-native-srschat 0.1.13 → 0.1.15
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/commonjs/components/email.js +243 -0
- package/lib/commonjs/components/email.js.map +1 -0
- package/lib/commonjs/components/feedback.js +115 -0
- package/lib/commonjs/components/feedback.js.map +1 -0
- package/lib/commonjs/components/header.js +35 -17
- package/lib/commonjs/components/header.js.map +1 -1
- package/lib/commonjs/components/input.js +106 -0
- package/lib/commonjs/components/input.js.map +1 -0
- package/lib/commonjs/components/productCard.js +234 -0
- package/lib/commonjs/components/productCard.js.map +1 -0
- package/lib/commonjs/components/testing.js +19 -6
- package/lib/commonjs/components/testing.js.map +1 -1
- package/lib/commonjs/{layout/chatIcon.js → components/welcomeButton.js} +40 -37
- package/lib/commonjs/components/welcomeButton.js.map +1 -0
- package/lib/commonjs/components/welcomeInput.js +87 -0
- package/lib/commonjs/components/welcomeInput.js.map +1 -0
- package/lib/commonjs/contexts/AppContext.js +272 -56
- package/lib/commonjs/contexts/AppContext.js.map +1 -1
- package/lib/commonjs/hooks/{Stream.js → stream.js} +107 -39
- package/lib/commonjs/hooks/stream.js.map +1 -0
- package/lib/commonjs/hooks/useAsyncStorage.js +36 -0
- package/lib/commonjs/hooks/useAsyncStorage.js.map +1 -0
- package/lib/commonjs/index.js +13 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/layout/disclaimer.js +200 -0
- package/lib/commonjs/layout/disclaimer.js.map +1 -0
- package/lib/commonjs/layout/ex.js +272 -0
- package/lib/commonjs/layout/ex.js.map +1 -0
- package/lib/commonjs/layout/icon.js +114 -0
- package/lib/commonjs/layout/icon.js.map +1 -0
- package/lib/commonjs/layout/layout.js +148 -14
- package/lib/commonjs/layout/layout.js.map +1 -1
- package/lib/commonjs/layout/welcome.js +135 -0
- package/lib/commonjs/layout/welcome.js.map +1 -0
- package/lib/commonjs/layout/window.js +205 -0
- package/lib/commonjs/layout/window.js.map +1 -0
- package/lib/module/components/email.js +233 -0
- package/lib/module/components/email.js.map +1 -0
- package/lib/module/components/feedback.js +105 -0
- package/lib/module/components/feedback.js.map +1 -0
- package/lib/module/components/header.js +35 -17
- package/lib/module/components/header.js.map +1 -1
- package/lib/module/components/input.js +96 -0
- package/lib/module/components/input.js.map +1 -0
- package/lib/module/components/productCard.js +225 -0
- package/lib/module/components/productCard.js.map +1 -0
- package/lib/module/components/testing.js +20 -7
- package/lib/module/components/testing.js.map +1 -1
- package/lib/module/components/welcomeButton.js +48 -0
- package/lib/module/components/welcomeButton.js.map +1 -0
- package/lib/module/components/welcomeInput.js +77 -0
- package/lib/module/components/welcomeInput.js.map +1 -0
- package/lib/module/contexts/AppContext.js +272 -57
- package/lib/module/contexts/AppContext.js.map +1 -1
- package/lib/module/hooks/{Stream.js → stream.js} +107 -39
- package/lib/module/hooks/stream.js.map +1 -0
- package/lib/module/hooks/useAsyncStorage.js +29 -0
- package/lib/module/hooks/useAsyncStorage.js.map +1 -0
- package/lib/module/index.js +13 -6
- package/lib/module/index.js.map +1 -1
- package/lib/module/layout/disclaimer.js +190 -0
- package/lib/module/layout/disclaimer.js.map +1 -0
- package/lib/module/layout/ex.js +262 -0
- package/lib/module/layout/ex.js.map +1 -0
- package/lib/module/layout/icon.js +104 -0
- package/lib/module/layout/icon.js.map +1 -0
- package/lib/module/layout/layout.js +150 -16
- package/lib/module/layout/layout.js.map +1 -1
- package/lib/module/layout/welcome.js +126 -0
- package/lib/module/layout/welcome.js.map +1 -0
- package/lib/module/layout/window.js +195 -0
- package/lib/module/layout/window.js.map +1 -0
- package/lib/typescript/components/email.d.ts +5 -0
- package/lib/typescript/components/email.d.ts.map +1 -0
- package/lib/typescript/components/feedback.d.ts +6 -0
- package/lib/typescript/components/feedback.d.ts.map +1 -0
- package/lib/typescript/components/header.d.ts.map +1 -1
- package/lib/typescript/components/input.d.ts +6 -0
- package/lib/typescript/components/input.d.ts.map +1 -0
- package/lib/typescript/components/productCard.d.ts +5 -0
- package/lib/typescript/components/productCard.d.ts.map +1 -0
- package/lib/typescript/components/testing.d.ts.map +1 -1
- package/lib/typescript/components/welcomeButton.d.ts +4 -0
- package/lib/typescript/components/welcomeButton.d.ts.map +1 -0
- package/lib/typescript/components/welcomeInput.d.ts +6 -0
- package/lib/typescript/components/welcomeInput.d.ts.map +1 -0
- package/lib/typescript/contexts/AppContext.d.ts +5 -1
- package/lib/typescript/contexts/AppContext.d.ts.map +1 -1
- package/lib/typescript/hooks/{Stream.d.ts → stream.d.ts} +1 -1
- package/lib/typescript/hooks/stream.d.ts.map +1 -0
- package/lib/typescript/hooks/useAsyncStorage.d.ts +2 -0
- package/lib/typescript/hooks/useAsyncStorage.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/layout/disclaimer.d.ts +5 -0
- package/lib/typescript/layout/disclaimer.d.ts.map +1 -0
- package/lib/typescript/layout/ex.d.ts +3 -0
- package/lib/typescript/layout/ex.d.ts.map +1 -0
- package/lib/typescript/layout/{chatIcon.d.ts → icon.d.ts} +1 -1
- package/lib/typescript/layout/icon.d.ts.map +1 -0
- package/lib/typescript/layout/layout.d.ts +1 -4
- package/lib/typescript/layout/layout.d.ts.map +1 -1
- package/lib/typescript/layout/welcome.d.ts +5 -0
- package/lib/typescript/layout/welcome.d.ts.map +1 -0
- package/lib/typescript/layout/window.d.ts +5 -0
- package/lib/typescript/layout/window.d.ts.map +1 -0
- package/package.json +7 -1
- package/src/components/email.js +210 -0
- package/src/components/feedback.js +114 -0
- package/src/components/header.js +32 -17
- package/src/components/input.js +95 -0
- package/src/components/productCard.js +240 -0
- package/src/components/testing.js +17 -4
- package/src/components/welcomeButton.js +51 -0
- package/src/components/welcomeInput.js +81 -0
- package/src/contexts/AppContext.js +237 -52
- package/src/hooks/{Stream.js → stream.js} +123 -41
- package/src/hooks/useAsyncStorage.js +33 -0
- package/src/index.js +7 -3
- package/src/layout/disclaimer.js +187 -0
- package/src/layout/ex.js +251 -0
- package/src/layout/icon.js +96 -0
- package/src/layout/layout.js +137 -10
- package/src/layout/welcome.js +124 -0
- package/src/layout/window.js +194 -0
- package/lib/commonjs/hooks/Stream.js.map +0 -1
- package/lib/commonjs/layout/chatIcon.js.map +0 -1
- package/lib/commonjs/layout/chatWindow.js +0 -214
- package/lib/commonjs/layout/chatWindow.js.map +0 -1
- package/lib/module/hooks/Stream.js.map +0 -1
- package/lib/module/layout/chatIcon.js +0 -44
- package/lib/module/layout/chatIcon.js.map +0 -1
- package/lib/module/layout/chatWindow.js +0 -204
- package/lib/module/layout/chatWindow.js.map +0 -1
- package/lib/typescript/hooks/Stream.d.ts.map +0 -1
- package/lib/typescript/layout/chatIcon.d.ts.map +0 -1
- package/lib/typescript/layout/chatWindow.d.ts +0 -6
- package/lib/typescript/layout/chatWindow.d.ts.map +0 -1
- package/src/layout/chatIcon.js +0 -38
- package/src/layout/chatWindow.js +0 -207
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React, { useState, useEffect, useContext, useRef } from 'react';
|
|
3
|
+
import { Text, StyleSheet, View, TextInput, TouchableOpacity, Platform, KeyboardAvoidingView, Keyboard, Animated, PanResponder, Pressable } from 'react-native';
|
|
4
|
+
import { Header } from '../components/header';
|
|
5
|
+
import { AppContext } from '../contexts/AppContext';
|
|
6
|
+
import Ionicons from 'react-native-vector-icons/Ionicons';
|
|
7
|
+
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
|
|
8
|
+
import { Testing } from '../components/testing';
|
|
9
|
+
import { ChatInput } from '../components/input';
|
|
10
|
+
import { useWebSocketMessage } from '../hooks/stream';
|
|
11
|
+
import { ProductCard } from '../components/productCard';
|
|
12
|
+
import Markdown from 'react-native-markdown-display';
|
|
13
|
+
export const ChatWindow = () => {
|
|
14
|
+
const {
|
|
15
|
+
handleSend,
|
|
16
|
+
messages,
|
|
17
|
+
input,
|
|
18
|
+
setInput,
|
|
19
|
+
ghostMessage,
|
|
20
|
+
handleButtonClick,
|
|
21
|
+
setShowModal
|
|
22
|
+
} = useContext(AppContext);
|
|
23
|
+
const scrollViewRef = useRef(null);
|
|
24
|
+
const fadeAnim = useRef(new Animated.Value(0.6)).current;
|
|
25
|
+
const panY = useRef(new Animated.Value(0)).current;
|
|
26
|
+
const isDragging = useRef(false);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (scrollViewRef.current) {
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
scrollViewRef.current.scrollToEnd({
|
|
31
|
+
animated: false
|
|
32
|
+
});
|
|
33
|
+
}, 100);
|
|
34
|
+
}
|
|
35
|
+
}, []);
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (ghostMessage) {
|
|
38
|
+
Animated.loop(Animated.sequence([Animated.timing(fadeAnim, {
|
|
39
|
+
toValue: 1,
|
|
40
|
+
duration: 500,
|
|
41
|
+
useNativeDriver: false
|
|
42
|
+
}), Animated.timing(fadeAnim, {
|
|
43
|
+
toValue: 0.6,
|
|
44
|
+
duration: 500,
|
|
45
|
+
useNativeDriver: false
|
|
46
|
+
})])).start();
|
|
47
|
+
}
|
|
48
|
+
}, [ghostMessage]);
|
|
49
|
+
useWebSocketMessage();
|
|
50
|
+
const headerPanResponder = PanResponder.create({
|
|
51
|
+
onStartShouldSetPanResponder: () => true,
|
|
52
|
+
onMoveShouldSetPanResponder: () => true,
|
|
53
|
+
onPanResponderGrant: () => {
|
|
54
|
+
isDragging.current = true;
|
|
55
|
+
},
|
|
56
|
+
onPanResponderMove: (evt, gestureState) => {
|
|
57
|
+
if (isDragging.current && gestureState.dy > 0) {
|
|
58
|
+
// Downward swipe
|
|
59
|
+
panY.setValue(gestureState.dy);
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
onPanResponderRelease: (evt, gestureState) => {
|
|
63
|
+
if (gestureState.dy > 100) {
|
|
64
|
+
// Swiped down enough
|
|
65
|
+
handleClick();
|
|
66
|
+
} else {
|
|
67
|
+
Animated.spring(panY, {
|
|
68
|
+
toValue: 0,
|
|
69
|
+
useNativeDriver: false
|
|
70
|
+
}).start();
|
|
71
|
+
}
|
|
72
|
+
isDragging.current = false;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
const handleClick = () => {
|
|
76
|
+
if ((uiConfig.showIcon ?? true) !== true) {
|
|
77
|
+
setShowModal("Off");
|
|
78
|
+
} else {
|
|
79
|
+
setShowModal("Icon");
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
83
|
+
style: styles.overlay
|
|
84
|
+
}, /*#__PURE__*/React.createElement(Pressable, {
|
|
85
|
+
style: styles.outsideTouchable,
|
|
86
|
+
onPress: () => handleClick()
|
|
87
|
+
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
88
|
+
style: [styles.container, {
|
|
89
|
+
transform: [{
|
|
90
|
+
translateY: panY
|
|
91
|
+
}]
|
|
92
|
+
}]
|
|
93
|
+
}, /*#__PURE__*/React.createElement(View, _extends({
|
|
94
|
+
style: styles.headerContainer
|
|
95
|
+
}, headerPanResponder.panHandlers), /*#__PURE__*/React.createElement(Header, null)), /*#__PURE__*/React.createElement(KeyboardAwareScrollView, {
|
|
96
|
+
ref: scrollViewRef,
|
|
97
|
+
contentContainerStyle: styles.messagesContent,
|
|
98
|
+
enableOnAndroid: true,
|
|
99
|
+
contentInsetAdjustmentBehavior: "never",
|
|
100
|
+
automaticallyAdjustContentInsets: false,
|
|
101
|
+
contentInset: {
|
|
102
|
+
bottom: 0
|
|
103
|
+
},
|
|
104
|
+
keyboardShouldPersistTaps: "always",
|
|
105
|
+
showsVerticalScrollIndicator: false,
|
|
106
|
+
extraScrollHeight: 0,
|
|
107
|
+
onContentSizeChange: () => {
|
|
108
|
+
var _scrollViewRef$curren;
|
|
109
|
+
(_scrollViewRef$curren = scrollViewRef.current) === null || _scrollViewRef$curren === void 0 || _scrollViewRef$curren.scrollToEnd({
|
|
110
|
+
animated: true
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}, messages.map((msg, i) => /*#__PURE__*/React.createElement(View, {
|
|
114
|
+
key: i,
|
|
115
|
+
style: styles.messageWrapper
|
|
116
|
+
}, msg.type !== "middle" && /*#__PURE__*/React.createElement(View, {
|
|
117
|
+
style: [styles.messageBubble, msg.type === "user" ? styles.userMessage : styles.aiMessage]
|
|
118
|
+
}, /*#__PURE__*/React.createElement(Markdown, {
|
|
119
|
+
style: {
|
|
120
|
+
body: {
|
|
121
|
+
color: msg.type === "user" ? "#ffffff" : "#161616",
|
|
122
|
+
fontSize: 16,
|
|
123
|
+
lineHeight: 22
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}, msg.text)), msg.products && msg.products.length > 0 && msg.products.map((prod, index) => /*#__PURE__*/React.createElement(View, {
|
|
127
|
+
key: index,
|
|
128
|
+
style: styles.productCardWrapper
|
|
129
|
+
}, /*#__PURE__*/React.createElement(ProductCard, {
|
|
130
|
+
prod: prod
|
|
131
|
+
}))), msg.suggested_questions && Array.isArray(msg.questions) && msg.questions.map((question, index) => /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
132
|
+
key: index,
|
|
133
|
+
style: styles.suggestedQuestionButton,
|
|
134
|
+
onPress: () => handleButtonClick(question)
|
|
135
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
136
|
+
style: styles.suggestedQuestionText
|
|
137
|
+
}, question))), ghostMessage && i === messages.length - 1 && /*#__PURE__*/React.createElement(View, {
|
|
138
|
+
style: styles.ghostMessageContainer
|
|
139
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
140
|
+
style: [styles.ghostBar, styles.ghostBarShort, {
|
|
141
|
+
opacity: fadeAnim
|
|
142
|
+
}]
|
|
143
|
+
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
144
|
+
style: [styles.ghostBar, styles.ghostBarLong, {
|
|
145
|
+
opacity: fadeAnim
|
|
146
|
+
}]
|
|
147
|
+
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
148
|
+
style: [styles.ghostBar, styles.ghostBarMedium, {
|
|
149
|
+
opacity: fadeAnim
|
|
150
|
+
}]
|
|
151
|
+
}))))), /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
|
|
152
|
+
behavior: Platform.OS === 'ios' ? 'padding' : undefined,
|
|
153
|
+
keyboardVerticalOffset: Platform.OS === 'ios' ? 120 : 60
|
|
154
|
+
}, /*#__PURE__*/React.createElement(ChatInput, null))));
|
|
155
|
+
};
|
|
156
|
+
const styles = StyleSheet.create({
|
|
157
|
+
overlay: {
|
|
158
|
+
flex: 1,
|
|
159
|
+
position: 'absolute',
|
|
160
|
+
left: 0,
|
|
161
|
+
right: 0,
|
|
162
|
+
top: 0,
|
|
163
|
+
bottom: 0,
|
|
164
|
+
backgroundColor: 'rgba(0, 0, 0, 0.3)',
|
|
165
|
+
justifyContent: 'flex-end'
|
|
166
|
+
},
|
|
167
|
+
outsideTouchable: {
|
|
168
|
+
flex: 1 // Takes up the space above the chat, allows clicking to close
|
|
169
|
+
},
|
|
170
|
+
container: {
|
|
171
|
+
flex: 1,
|
|
172
|
+
backgroundColor: '#f6f6f6',
|
|
173
|
+
position: 'absolute',
|
|
174
|
+
zIndex: 1000,
|
|
175
|
+
left: 0,
|
|
176
|
+
right: 0,
|
|
177
|
+
bottom: 0,
|
|
178
|
+
top: 140,
|
|
179
|
+
pointerEvents: 'box-none',
|
|
180
|
+
borderTopWidth: 1,
|
|
181
|
+
borderTopColor: '#DDD',
|
|
182
|
+
borderTopLeftRadius: 16,
|
|
183
|
+
borderTopRightRadius: 16,
|
|
184
|
+
overflow: 'hidden'
|
|
185
|
+
},
|
|
186
|
+
headerContainer: {
|
|
187
|
+
alignItems: "center",
|
|
188
|
+
backgroundColor: "#f6f6f6",
|
|
189
|
+
borderTopLeftRadius: 16,
|
|
190
|
+
borderTopRightRadius: 16
|
|
191
|
+
},
|
|
192
|
+
messagesContent: {
|
|
193
|
+
padding: 16,
|
|
194
|
+
justifyContent: 'flex-end'
|
|
195
|
+
},
|
|
196
|
+
messageWrapper: {
|
|
197
|
+
marginBottom: 0
|
|
198
|
+
},
|
|
199
|
+
messageBubble: {
|
|
200
|
+
padding: 6,
|
|
201
|
+
paddingHorizontal: 16,
|
|
202
|
+
borderRadius: 12,
|
|
203
|
+
marginBottom: 5
|
|
204
|
+
},
|
|
205
|
+
userMessage: {
|
|
206
|
+
alignSelf: 'flex-end',
|
|
207
|
+
backgroundColor: "#003764",
|
|
208
|
+
color: "#ffffff"
|
|
209
|
+
},
|
|
210
|
+
aiMessage: {
|
|
211
|
+
alignSelf: 'flex-start',
|
|
212
|
+
backgroundColor: '#FFFFFF',
|
|
213
|
+
width: '100%'
|
|
214
|
+
},
|
|
215
|
+
productCardWrapper: {
|
|
216
|
+
marginTop: 5
|
|
217
|
+
},
|
|
218
|
+
suggestedQuestionButton: {
|
|
219
|
+
backgroundColor: "white",
|
|
220
|
+
borderWidth: 1,
|
|
221
|
+
borderColor: "#004687",
|
|
222
|
+
borderRadius: 18,
|
|
223
|
+
paddingVertical: 10,
|
|
224
|
+
paddingHorizontal: 16,
|
|
225
|
+
marginBottom: 7,
|
|
226
|
+
alignSelf: "flex-start"
|
|
227
|
+
},
|
|
228
|
+
suggestedQuestionText: {
|
|
229
|
+
color: "#004687",
|
|
230
|
+
fontSize: 13,
|
|
231
|
+
textAlign: "left"
|
|
232
|
+
},
|
|
233
|
+
ghostMessageContainer: {
|
|
234
|
+
alignSelf: 'flex-start',
|
|
235
|
+
width: '100%',
|
|
236
|
+
backgroundColor: "#FFFFFF",
|
|
237
|
+
borderRadius: 10,
|
|
238
|
+
borderTopLeftRadius: 0,
|
|
239
|
+
padding: 14,
|
|
240
|
+
marginVertical: 5
|
|
241
|
+
},
|
|
242
|
+
ghostBar: {
|
|
243
|
+
height: 20,
|
|
244
|
+
borderRadius: 10,
|
|
245
|
+
backgroundColor: "#ebebeb",
|
|
246
|
+
marginVertical: 3
|
|
247
|
+
},
|
|
248
|
+
ghostBarShort: {
|
|
249
|
+
width: "50%"
|
|
250
|
+
},
|
|
251
|
+
ghostBarMedium: {
|
|
252
|
+
width: "75%"
|
|
253
|
+
},
|
|
254
|
+
ghostBarLong: {
|
|
255
|
+
width: "100%"
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
{/* <Testing
|
|
259
|
+
onProductCardClick={onProductCardClick}
|
|
260
|
+
onAddToCartClick={onAddToCartClick}
|
|
261
|
+
/> */}
|
|
262
|
+
//# sourceMappingURL=ex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Animated","PanResponder","Pressable","Header","AppContext","Ionicons","KeyboardAwareScrollView","Testing","ChatInput","useWebSocketMessage","ProductCard","Markdown","ChatWindow","handleSend","messages","input","setInput","ghostMessage","handleButtonClick","setShowModal","scrollViewRef","fadeAnim","Value","current","panY","isDragging","setTimeout","scrollToEnd","animated","loop","sequence","timing","toValue","duration","useNativeDriver","start","headerPanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","evt","gestureState","dy","setValue","onPanResponderRelease","handleClick","spring","uiConfig","showIcon","createElement","style","styles","overlay","outsideTouchable","onPress","container","transform","translateY","_extends","headerContainer","panHandlers","ref","contentContainerStyle","messagesContent","enableOnAndroid","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","contentInset","bottom","keyboardShouldPersistTaps","showsVerticalScrollIndicator","extraScrollHeight","onContentSizeChange","_scrollViewRef$curren","map","msg","i","key","messageWrapper","type","messageBubble","userMessage","aiMessage","body","color","fontSize","lineHeight","text","products","length","prod","index","productCardWrapper","suggested_questions","Array","isArray","questions","question","suggestedQuestionButton","suggestedQuestionText","ghostMessageContainer","ghostBar","ghostBarShort","opacity","ghostBarLong","ghostBarMedium","behavior","OS","undefined","keyboardVerticalOffset","flex","position","left","right","top","backgroundColor","justifyContent","zIndex","pointerEvents","borderTopWidth","borderTopColor","borderTopLeftRadius","borderTopRightRadius","overflow","alignItems","padding","marginBottom","paddingHorizontal","borderRadius","alignSelf","width","marginTop","borderWidth","borderColor","paddingVertical","textAlign","marginVertical","height"],"sourceRoot":"../../../src","sources":["layout/ex.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import { TouchableOpacity, View, StyleSheet, Text } from 'react-native';
|
|
3
|
+
import { AppContext } from '../contexts/AppContext';
|
|
4
|
+
import Ionicons from 'react-native-vector-icons/Ionicons';
|
|
5
|
+
export const ChatIcon = () => {
|
|
6
|
+
var _uiConfig$iconPositio, _uiConfig$iconPositio2;
|
|
7
|
+
const {
|
|
8
|
+
setShowModal,
|
|
9
|
+
messages,
|
|
10
|
+
maintenance,
|
|
11
|
+
disclaimer,
|
|
12
|
+
uiConfig
|
|
13
|
+
} = useContext(AppContext);
|
|
14
|
+
|
|
15
|
+
// Determine position from uiConfig or default
|
|
16
|
+
const iconPosition = {
|
|
17
|
+
bottom: (uiConfig === null || uiConfig === void 0 || (_uiConfig$iconPositio = uiConfig.iconPosition) === null || _uiConfig$iconPositio === void 0 ? void 0 : _uiConfig$iconPositio.bottom) ?? 80,
|
|
18
|
+
right: (uiConfig === null || uiConfig === void 0 || (_uiConfig$iconPositio2 = uiConfig.iconPosition) === null || _uiConfig$iconPositio2 === void 0 ? void 0 : _uiConfig$iconPositio2.right) ?? 20
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// Determine icon type (bubble or tab)
|
|
22
|
+
const iconType = (uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.iconType) ?? 'bubble';
|
|
23
|
+
const handleClick = () => {
|
|
24
|
+
if (!disclaimer) {
|
|
25
|
+
setShowModal("Form");
|
|
26
|
+
} else {
|
|
27
|
+
if (messages.length > 1 || maintenance) {
|
|
28
|
+
setShowModal("ChatWindow");
|
|
29
|
+
} else {
|
|
30
|
+
setShowModal("Welcome");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// Different styles for bubble and tab
|
|
36
|
+
const containerStyle = iconType === 'tab' ? [styles.tabContainer, iconPosition] : [styles.bubbleContainer, iconPosition];
|
|
37
|
+
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
38
|
+
style: containerStyle,
|
|
39
|
+
onPress: handleClick,
|
|
40
|
+
activeOpacity: 0.7
|
|
41
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
42
|
+
style: styles.iconContent
|
|
43
|
+
}, /*#__PURE__*/React.createElement(Ionicons, {
|
|
44
|
+
name: "chatbubble-ellipses",
|
|
45
|
+
size: 28,
|
|
46
|
+
color: "white"
|
|
47
|
+
}), iconType === 'tab' && /*#__PURE__*/React.createElement(Text, {
|
|
48
|
+
style: styles.tabText
|
|
49
|
+
}, "Chat with Heritage")));
|
|
50
|
+
};
|
|
51
|
+
const styles = StyleSheet.create({
|
|
52
|
+
// Bubble Style
|
|
53
|
+
bubbleContainer: {
|
|
54
|
+
position: 'absolute',
|
|
55
|
+
width: 60,
|
|
56
|
+
height: 60,
|
|
57
|
+
borderRadius: 30,
|
|
58
|
+
backgroundColor: '#FFA500',
|
|
59
|
+
alignItems: 'center',
|
|
60
|
+
justifyContent: 'center',
|
|
61
|
+
zIndex: 10,
|
|
62
|
+
shadowColor: '#000',
|
|
63
|
+
shadowOffset: {
|
|
64
|
+
width: 0,
|
|
65
|
+
height: 2
|
|
66
|
+
},
|
|
67
|
+
shadowOpacity: 0.2,
|
|
68
|
+
shadowRadius: 3,
|
|
69
|
+
elevation: 5
|
|
70
|
+
},
|
|
71
|
+
// Tab Style
|
|
72
|
+
tabContainer: {
|
|
73
|
+
position: 'absolute',
|
|
74
|
+
width: 130,
|
|
75
|
+
height: 50,
|
|
76
|
+
borderTopLeftRadius: 25,
|
|
77
|
+
borderBottomLeftRadius: 25,
|
|
78
|
+
backgroundColor: '#367CB6',
|
|
79
|
+
flexDirection: 'row',
|
|
80
|
+
alignItems: 'center',
|
|
81
|
+
paddingHorizontal: 15,
|
|
82
|
+
justifyContent: 'flex-start',
|
|
83
|
+
zIndex: 10,
|
|
84
|
+
shadowColor: '#000',
|
|
85
|
+
shadowOffset: {
|
|
86
|
+
width: 0,
|
|
87
|
+
height: 2
|
|
88
|
+
},
|
|
89
|
+
shadowOpacity: 0.2,
|
|
90
|
+
shadowRadius: 3,
|
|
91
|
+
elevation: 5
|
|
92
|
+
},
|
|
93
|
+
iconContent: {
|
|
94
|
+
flexDirection: 'row',
|
|
95
|
+
alignItems: 'center'
|
|
96
|
+
},
|
|
97
|
+
tabText: {
|
|
98
|
+
color: 'white',
|
|
99
|
+
fontSize: 14,
|
|
100
|
+
fontWeight: '500',
|
|
101
|
+
marginLeft: 8
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useContext","TouchableOpacity","View","StyleSheet","Text","AppContext","Ionicons","ChatIcon","_uiConfig$iconPositio","_uiConfig$iconPositio2","setShowModal","messages","maintenance","disclaimer","uiConfig","iconPosition","bottom","right","iconType","handleClick","length","containerStyle","styles","tabContainer","bubbleContainer","createElement","style","onPress","activeOpacity","iconContent","name","size","color","tabText","create","position","width","height","borderRadius","backgroundColor","alignItems","justifyContent","zIndex","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","borderTopLeftRadius","borderBottomLeftRadius","flexDirection","paddingHorizontal","fontSize","fontWeight","marginLeft"],"sourceRoot":"../../../src","sources":["layout/icon.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,31 +1,165 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
import {
|
|
3
|
-
import { ChatWindow } from './chatWindow';
|
|
1
|
+
import React, { useRef, useState, useContext, useEffect } from 'react';
|
|
2
|
+
import { View, Animated, PanResponder, Pressable, StyleSheet } from 'react-native';
|
|
4
3
|
import { AppContext } from '../contexts/AppContext';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
4
|
+
|
|
5
|
+
// Pages
|
|
6
|
+
import { ChatWindow } from './window';
|
|
7
|
+
import { ChatIcon } from './icon';
|
|
8
|
+
import { Welcome } from './welcome';
|
|
9
|
+
import { Disclaimer } from './disclaimer';
|
|
10
|
+
import { EmailForm } from '../components/email';
|
|
11
|
+
export const Layout = () => {
|
|
10
12
|
const {
|
|
11
|
-
showModal
|
|
13
|
+
showModal,
|
|
14
|
+
setShowModal,
|
|
15
|
+
uiConfig,
|
|
16
|
+
disclaimer,
|
|
17
|
+
maintenance,
|
|
18
|
+
messages
|
|
12
19
|
} = useContext(AppContext);
|
|
20
|
+
const panY = useRef(new Animated.Value(0)).current;
|
|
21
|
+
const isDragging = useRef(false);
|
|
22
|
+
const handleClick = () => {
|
|
23
|
+
if ((uiConfig.showIcon ?? true) !== true) {
|
|
24
|
+
setShowModal("Off");
|
|
25
|
+
} else {
|
|
26
|
+
setShowModal("Icon");
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const panResponder = PanResponder.create({
|
|
30
|
+
onStartShouldSetPanResponder: () => true,
|
|
31
|
+
onMoveShouldSetPanResponder: () => true,
|
|
32
|
+
onPanResponderGrant: () => {
|
|
33
|
+
isDragging.current = true;
|
|
34
|
+
},
|
|
35
|
+
onPanResponderMove: (evt, gestureState) => {
|
|
36
|
+
if (isDragging.current && gestureState.dy >= 0) {
|
|
37
|
+
panY.setValue(gestureState.dy);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
onPanResponderRelease: (evt, gestureState) => {
|
|
41
|
+
if (gestureState.dy > 120) {
|
|
42
|
+
// Close if dragged far enough
|
|
43
|
+
Animated.timing(panY, {
|
|
44
|
+
toValue: 600,
|
|
45
|
+
// Off-screen
|
|
46
|
+
duration: 200,
|
|
47
|
+
useNativeDriver: false
|
|
48
|
+
}).start(() => {
|
|
49
|
+
handleClick();
|
|
50
|
+
panY.setValue(0); // Reset for next time
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
// Snap back to full height
|
|
54
|
+
Animated.spring(panY, {
|
|
55
|
+
toValue: 0,
|
|
56
|
+
friction: 6,
|
|
57
|
+
tension: 80,
|
|
58
|
+
useNativeDriver: false
|
|
59
|
+
}).start();
|
|
60
|
+
}
|
|
61
|
+
isDragging.current = false;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// uiConfig.showIcon, uiConfig.toggleChat
|
|
66
|
+
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
if (!disclaimer) {
|
|
69
|
+
setShowModal("Form");
|
|
70
|
+
} else {
|
|
71
|
+
if (messages.length > 1 || maintenance) {
|
|
72
|
+
setShowModal("ChatWindow");
|
|
73
|
+
} else {
|
|
74
|
+
setShowModal("Welcome");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}, [uiConfig.toggleChat]);
|
|
13
78
|
return /*#__PURE__*/React.createElement(View, {
|
|
14
|
-
style: styles.
|
|
79
|
+
style: styles.layout,
|
|
15
80
|
pointerEvents: "box-none"
|
|
16
|
-
}, showModal === "Icon"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
})
|
|
81
|
+
}, showModal === "Icon" && (uiConfig.showIcon ?? true) && /*#__PURE__*/React.createElement(ChatIcon, null), showModal === "ChatWindow" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pressable, {
|
|
82
|
+
style: styles.outsideTouchable,
|
|
83
|
+
onPress: () => handleClick()
|
|
84
|
+
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
85
|
+
style: [styles.container, {
|
|
86
|
+
transform: [{
|
|
87
|
+
translateY: panY
|
|
88
|
+
}]
|
|
89
|
+
}]
|
|
90
|
+
}, /*#__PURE__*/React.createElement(ChatWindow, {
|
|
91
|
+
panHandlers: panResponder.panHandlers
|
|
92
|
+
}))), showModal === "Welcome" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pressable, {
|
|
93
|
+
style: styles.outsideTouchable,
|
|
94
|
+
onPress: () => handleClick()
|
|
95
|
+
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
96
|
+
style: [styles.container, {
|
|
97
|
+
transform: [{
|
|
98
|
+
translateY: panY
|
|
99
|
+
}]
|
|
100
|
+
}]
|
|
101
|
+
}, /*#__PURE__*/React.createElement(Welcome, {
|
|
102
|
+
panHandlers: panResponder.panHandlers
|
|
103
|
+
}))), showModal === "Form" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pressable, {
|
|
104
|
+
style: styles.outsideTouchable,
|
|
105
|
+
onPress: () => handleClick()
|
|
106
|
+
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
107
|
+
style: [styles.container, {
|
|
108
|
+
transform: [{
|
|
109
|
+
translateY: panY
|
|
110
|
+
}]
|
|
111
|
+
}]
|
|
112
|
+
}, /*#__PURE__*/React.createElement(Disclaimer, {
|
|
113
|
+
panHandlers: panResponder.panHandlers
|
|
114
|
+
}))), showModal === "Email" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pressable, {
|
|
115
|
+
style: styles.outsideTouchable,
|
|
116
|
+
onPress: () => handleClick()
|
|
117
|
+
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
118
|
+
style: [styles.container, {
|
|
119
|
+
transform: [{
|
|
120
|
+
translateY: panY
|
|
121
|
+
}]
|
|
122
|
+
}]
|
|
123
|
+
}, /*#__PURE__*/React.createElement(EmailForm, {
|
|
124
|
+
panHandlers: panResponder.panHandlers
|
|
125
|
+
}))));
|
|
20
126
|
};
|
|
21
127
|
const styles = StyleSheet.create({
|
|
22
|
-
|
|
128
|
+
layout: {
|
|
23
129
|
flex: 1,
|
|
24
130
|
position: 'absolute',
|
|
25
131
|
top: 0,
|
|
26
132
|
left: 0,
|
|
27
133
|
right: 0,
|
|
28
|
-
bottom: 0
|
|
134
|
+
bottom: 0,
|
|
135
|
+
backgroundColor: 'rgba(0, 0, 0, 0)',
|
|
136
|
+
justifyContent: 'flex-end'
|
|
137
|
+
},
|
|
138
|
+
container: {
|
|
139
|
+
flex: 1,
|
|
140
|
+
backgroundColor: '#f6f6f6',
|
|
141
|
+
position: 'absolute',
|
|
142
|
+
zIndex: 1000,
|
|
143
|
+
left: 0,
|
|
144
|
+
right: 0,
|
|
145
|
+
bottom: 0,
|
|
146
|
+
top: 140,
|
|
147
|
+
pointerEvents: 'box-none',
|
|
148
|
+
borderTopWidth: 1,
|
|
149
|
+
borderTopColor: '#DDD',
|
|
150
|
+
borderTopLeftRadius: 16,
|
|
151
|
+
borderTopRightRadius: 16,
|
|
152
|
+
overflow: 'hidden'
|
|
153
|
+
},
|
|
154
|
+
outsideTouchable: {
|
|
155
|
+
flex: 1
|
|
156
|
+
},
|
|
157
|
+
dragHandle: {
|
|
158
|
+
height: 20,
|
|
159
|
+
width: '100%',
|
|
160
|
+
backgroundColor: '#DDD',
|
|
161
|
+
borderTopLeftRadius: 16,
|
|
162
|
+
borderTopRightRadius: 16
|
|
29
163
|
}
|
|
30
164
|
});
|
|
31
165
|
//# sourceMappingURL=layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","useContext","useEffect","View","Animated","PanResponder","Pressable","StyleSheet","AppContext","ChatWindow","ChatIcon","Welcome","Disclaimer","EmailForm","Layout","showModal","setShowModal","uiConfig","disclaimer","maintenance","messages","panY","Value","current","isDragging","handleClick","showIcon","panResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","evt","gestureState","dy","setValue","onPanResponderRelease","timing","toValue","duration","useNativeDriver","start","spring","friction","tension","length","toggleChat","createElement","style","styles","layout","pointerEvents","Fragment","outsideTouchable","onPress","container","transform","translateY","panHandlers","flex","position","top","left","right","bottom","backgroundColor","justifyContent","zIndex","borderTopWidth","borderTopColor","borderTopLeftRadius","borderTopRightRadius","overflow","dragHandle","height","width"],"sourceRoot":"../../../src","sources":["layout/layout.js"],"mappings":"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","ignoreList":[]}
|