react-native-srschat 0.1.7 → 0.1.9

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.
Files changed (62) hide show
  1. package/README.md +70 -0
  2. package/lib/commonjs/assets/heritage.png +0 -0
  3. package/lib/commonjs/components/header.js +105 -0
  4. package/lib/commonjs/components/header.js.map +1 -0
  5. package/lib/commonjs/components/testing.js +61 -0
  6. package/lib/commonjs/components/testing.js.map +1 -0
  7. package/lib/commonjs/contexts/AppContext.js +99 -0
  8. package/lib/commonjs/contexts/AppContext.js.map +1 -0
  9. package/lib/commonjs/hooks/Stream.js +202 -0
  10. package/lib/commonjs/hooks/Stream.js.map +1 -0
  11. package/lib/commonjs/index.js +13 -262
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/layout/chatIcon.js +53 -0
  14. package/lib/commonjs/layout/chatIcon.js.map +1 -0
  15. package/lib/commonjs/layout/chatWindow.js +208 -0
  16. package/lib/commonjs/layout/chatWindow.js.map +1 -0
  17. package/lib/commonjs/layout/layout.js +35 -0
  18. package/lib/commonjs/layout/layout.js.map +1 -0
  19. package/lib/module/assets/heritage.png +0 -0
  20. package/lib/module/components/header.js +96 -0
  21. package/lib/module/components/header.js.map +1 -0
  22. package/lib/module/components/testing.js +53 -0
  23. package/lib/module/components/testing.js.map +1 -0
  24. package/lib/module/contexts/AppContext.js +90 -0
  25. package/lib/module/contexts/AppContext.js.map +1 -0
  26. package/lib/module/hooks/Stream.js +194 -0
  27. package/lib/module/hooks/Stream.js.map +1 -0
  28. package/lib/module/index.js +11 -261
  29. package/lib/module/index.js.map +1 -1
  30. package/lib/module/layout/chatIcon.js +44 -0
  31. package/lib/module/layout/chatIcon.js.map +1 -0
  32. package/lib/module/layout/chatWindow.js +199 -0
  33. package/lib/module/layout/chatWindow.js.map +1 -0
  34. package/lib/module/layout/layout.js +26 -0
  35. package/lib/module/layout/layout.js.map +1 -0
  36. package/lib/typescript/components/header.d.ts +3 -0
  37. package/lib/typescript/components/header.d.ts.map +1 -0
  38. package/lib/typescript/components/testing.d.ts +6 -0
  39. package/lib/typescript/components/testing.d.ts.map +1 -0
  40. package/lib/typescript/contexts/AppContext.d.ts +6 -0
  41. package/lib/typescript/contexts/AppContext.d.ts.map +1 -0
  42. package/lib/typescript/hooks/Stream.d.ts +2 -0
  43. package/lib/typescript/hooks/Stream.d.ts.map +1 -0
  44. package/lib/typescript/index.d.ts +5 -12
  45. package/lib/typescript/index.d.ts.map +1 -1
  46. package/lib/typescript/layout/chatIcon.d.ts +3 -0
  47. package/lib/typescript/layout/chatIcon.d.ts.map +1 -0
  48. package/lib/typescript/layout/chatWindow.d.ts +6 -0
  49. package/lib/typescript/layout/chatWindow.d.ts.map +1 -0
  50. package/lib/typescript/layout/layout.d.ts +6 -0
  51. package/lib/typescript/layout/layout.d.ts.map +1 -0
  52. package/package.json +1 -1
  53. package/src/assets/heritage.png +0 -0
  54. package/src/components/header.js +89 -0
  55. package/src/components/testing.js +47 -0
  56. package/src/contexts/AppContext.js +83 -0
  57. package/src/hooks/Stream.js +198 -0
  58. package/src/index.js +18 -0
  59. package/src/layout/chatIcon.js +38 -0
  60. package/src/layout/chatWindow.js +200 -0
  61. package/src/layout/layout.js +23 -0
  62. package/src/index.tsx +0 -323
@@ -1,267 +1,17 @@
1
- import React from 'react';
1
+ import React, { useState, useCallback } from 'react';
2
2
  import { SafeAreaView, Text, StyleSheet, View, TextInput, ScrollView, KeyboardAvoidingView, Platform, TouchableOpacity, RefreshControl } from 'react-native';
3
3
  import { Ionicons as Icon } from '@expo/vector-icons';
4
- const defaultTheme = {
5
- primaryColor: '#007AFF',
6
- backgroundColor: '#FFFFFF',
7
- textColor: '#000000',
8
- inputBackgroundColor: '#FFFFFF'
9
- };
4
+ import { AppProvider } from './contexts/AppContext';
5
+ import { Layout } from './layout/layout';
10
6
  export const Chat = ({
11
- onSendMessage,
12
- placeholder = 'Type your message here...',
13
- theme = defaultTheme
7
+ data,
8
+ onProductCardClick,
9
+ onAddToCartClick
14
10
  }) => {
15
- const [message, setMessage] = React.useState('');
16
- const [messages, setMessages] = React.useState([]);
17
- const [refreshing, setRefreshing] = React.useState(false);
18
- const onRefresh = React.useCallback(async () => {
19
- setRefreshing(true);
20
- try {
21
- const response = await onSendMessage("Hi, I'm refreshing the chat!");
22
- const currentTime = new Date().toLocaleTimeString([], {
23
- hour: 'numeric',
24
- minute: '2-digit',
25
- hour12: true
26
- });
27
- setMessages(prev => [...prev, {
28
- text: response,
29
- isUser: false,
30
- timestamp: currentTime
31
- }]);
32
- } catch (error) {
33
- console.error('Error refreshing chat:', error);
34
- } finally {
35
- setRefreshing(false);
36
- }
37
- }, [onSendMessage]);
38
- const handleSend = async () => {
39
- if (!message.trim()) return;
40
- const userMessage = message;
41
- setMessage('');
42
- const currentTime = new Date().toLocaleTimeString([], {
43
- hour: 'numeric',
44
- minute: '2-digit',
45
- hour12: true
46
- });
47
- setMessages(prev => [...prev, {
48
- text: userMessage,
49
- isUser: true,
50
- timestamp: currentTime
51
- }]);
52
- try {
53
- // Create bot message placeholder before streaming
54
- setMessages(prev => [...prev, {
55
- text: '',
56
- isUser: false,
57
- timestamp: currentTime
58
- }]);
59
- const response = await onSendMessage(userMessage, chunk => {
60
- setMessages(prev => {
61
- const newMessages = [...prev];
62
- const lastMessage = newMessages[newMessages.length - 1];
63
- if (lastMessage && !lastMessage.isUser) {
64
- lastMessage.text += chunk;
65
- }
66
- return newMessages;
67
- });
68
- });
69
-
70
- // Only update if final response is different from streamed content
71
- setMessages(prev => {
72
- const newMessages = [...prev];
73
- const lastMessage = newMessages[newMessages.length - 1];
74
- if (lastMessage && !lastMessage.isUser && lastMessage.text !== response) {
75
- lastMessage.text = response;
76
- }
77
- return newMessages;
78
- });
79
- } catch (error) {
80
- console.error('Error sending message:', error);
81
- }
82
- };
83
- const getMessageStyle = fromUser => [styles.messageBubble, fromUser ? styles.userMessage : styles.botMessage, {
84
- backgroundColor: fromUser ? theme.primaryColor : '#E8E8E8'
85
- }];
86
- const getTextStyle = fromUser => [styles.messageText, {
87
- color: fromUser ? '#fff' : theme.textColor
88
- }];
89
- return /*#__PURE__*/React.createElement(SafeAreaView, {
90
- style: [styles.container, {
91
- backgroundColor: theme.backgroundColor
92
- }]
93
- }, /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
94
- behavior: Platform.OS === 'ios' ? 'padding' : 'height',
95
- style: styles.content,
96
- keyboardVerticalOffset: Platform.OS === 'ios' ? 60 : 0
97
- }, /*#__PURE__*/React.createElement(ScrollView, {
98
- style: styles.messagesContainer,
99
- contentContainerStyle: styles.messagesContent,
100
- refreshControl: /*#__PURE__*/React.createElement(RefreshControl, {
101
- refreshing: refreshing,
102
- onRefresh: onRefresh,
103
- tintColor: theme.primaryColor || defaultTheme.primaryColor,
104
- colors: [theme.primaryColor || defaultTheme.primaryColor],
105
- progressBackgroundColor: "#ffffff"
106
- })
107
- }, messages.map((msg, i) => /*#__PURE__*/React.createElement(View, {
108
- key: i,
109
- style: styles.messageWrapper
110
- }, /*#__PURE__*/React.createElement(View, {
111
- style: [getMessageStyle(msg.isUser), styles.messageShadow]
112
- }, /*#__PURE__*/React.createElement(Text, {
113
- style: getTextStyle(msg.isUser)
114
- }, msg.text)), /*#__PURE__*/React.createElement(Text, {
115
- style: [styles.timestamp, msg.isUser ? styles.timestampRight : styles.timestampLeft]
116
- }, msg.timestamp)))), /*#__PURE__*/React.createElement(View, {
117
- style: styles.inputWrapper
118
- }, /*#__PURE__*/React.createElement(View, {
119
- style: styles.inputContainer
120
- }, /*#__PURE__*/React.createElement(TextInput, {
121
- style: styles.input,
122
- value: message,
123
- onChangeText: setMessage,
124
- placeholder: placeholder,
125
- placeholderTextColor: "#999",
126
- multiline: true
127
- })), /*#__PURE__*/React.createElement(View, {
128
- style: styles.inputButtonsContainer
129
- }, /*#__PURE__*/React.createElement(TouchableOpacity, {
130
- style: styles.inputButton
131
- }, /*#__PURE__*/React.createElement(Icon, {
132
- name: "add",
133
- size: 28,
134
- color: "#8E8E93"
135
- })), /*#__PURE__*/React.createElement(TouchableOpacity, {
136
- style: styles.inputButton
137
- }, /*#__PURE__*/React.createElement(Icon, {
138
- name: "refresh-outline",
139
- size: 28,
140
- color: "#8E8E93"
141
- })), /*#__PURE__*/React.createElement(TouchableOpacity, {
142
- style: styles.inputButton
143
- }, /*#__PURE__*/React.createElement(Icon, {
144
- name: "mic-outline",
145
- size: 28,
146
- color: "#8E8E93"
147
- })), /*#__PURE__*/React.createElement(TouchableOpacity, {
148
- style: [styles.sendButton, !message.trim() && styles.disabledButton],
149
- onPress: handleSend,
150
- disabled: !message.trim()
151
- }, /*#__PURE__*/React.createElement(Icon, {
152
- name: "paper-plane-outline",
153
- size: 28,
154
- color: message.trim() ? theme.primaryColor : '#8E8E93'
155
- }))))));
11
+ return /*#__PURE__*/React.createElement(AppProvider, null, /*#__PURE__*/React.createElement(Layout, {
12
+ onProductCardClick: onProductCardClick,
13
+ onAddToCartClick: onAddToCartClick
14
+ }));
156
15
  };
157
- const styles = StyleSheet.create({
158
- container: {
159
- flex: 1,
160
- backgroundColor: '#FFFFFF'
161
- },
162
- content: {
163
- flex: 1
164
- },
165
- messagesContainer: {
166
- flex: 1
167
- },
168
- messagesContent: {
169
- padding: 16,
170
- paddingBottom: 32
171
- },
172
- messageWrapper: {
173
- marginBottom: 16
174
- },
175
- timestamp: {
176
- fontSize: 12,
177
- color: '#8E8E93',
178
- marginTop: 4,
179
- paddingHorizontal: 4
180
- },
181
- timestampRight: {
182
- textAlign: 'right'
183
- },
184
- timestampLeft: {
185
- textAlign: 'left'
186
- },
187
- messageBubble: {
188
- maxWidth: '70%',
189
- padding: 12,
190
- paddingHorizontal: 16,
191
- borderRadius: 20,
192
- backgroundColor: '#FFFFFF'
193
- },
194
- messageShadow: {
195
- shadowColor: '#000',
196
- shadowOffset: {
197
- width: 0,
198
- height: 1
199
- },
200
- shadowOpacity: 0.08,
201
- shadowRadius: 2,
202
- elevation: 2
203
- },
204
- userMessage: {
205
- alignSelf: 'flex-end',
206
- backgroundColor: '#007AFF'
207
- },
208
- botMessage: {
209
- alignSelf: 'flex-start',
210
- backgroundColor: '#F2F2F7'
211
- },
212
- messageText: {
213
- fontSize: 16,
214
- lineHeight: 22
215
- },
216
- inputWrapper: {
217
- backgroundColor: '#FFFFFF',
218
- paddingHorizontal: 8,
219
- paddingVertical: 8,
220
- borderTopWidth: 1,
221
- borderTopColor: 'rgba(0, 0, 0, 0.1)'
222
- },
223
- inputContainer: {
224
- flexDirection: 'row',
225
- alignItems: 'center',
226
- paddingHorizontal: 8,
227
- paddingVertical: 8,
228
- backgroundColor: '#FFFFFF',
229
- borderRadius: 16,
230
- margin: 8,
231
- shadowColor: '#000',
232
- shadowOffset: {
233
- width: 0,
234
- height: 2
235
- },
236
- shadowOpacity: 0.1,
237
- shadowRadius: 4,
238
- elevation: 3
239
- },
240
- input: {
241
- flex: 1,
242
- fontSize: 16,
243
- paddingVertical: 8,
244
- paddingHorizontal: 12,
245
- maxHeight: 100,
246
- color: '#000000'
247
- },
248
- inputButtonsContainer: {
249
- flexDirection: 'row',
250
- alignItems: 'center',
251
- justifyContent: 'space-between',
252
- paddingHorizontal: 8,
253
- marginTop: 4
254
- },
255
- inputButton: {
256
- padding: 6,
257
- marginHorizontal: 4
258
- },
259
- sendButton: {
260
- padding: 6,
261
- marginLeft: 'auto'
262
- },
263
- disabledButton: {
264
- opacity: 0.7
265
- }
266
- });
16
+ const styles = StyleSheet.create({});
267
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","SafeAreaView","Text","StyleSheet","View","TextInput","ScrollView","KeyboardAvoidingView","Platform","TouchableOpacity","RefreshControl","Ionicons","Icon","defaultTheme","primaryColor","backgroundColor","textColor","inputBackgroundColor","Chat","onSendMessage","placeholder","theme","message","setMessage","useState","messages","setMessages","refreshing","setRefreshing","onRefresh","useCallback","response","currentTime","Date","toLocaleTimeString","hour","minute","hour12","prev","text","isUser","timestamp","error","console","handleSend","trim","userMessage","chunk","newMessages","lastMessage","length","getMessageStyle","fromUser","styles","messageBubble","botMessage","getTextStyle","messageText","color","createElement","style","container","behavior","OS","content","keyboardVerticalOffset","messagesContainer","contentContainerStyle","messagesContent","refreshControl","tintColor","colors","progressBackgroundColor","map","msg","i","key","messageWrapper","messageShadow","timestampRight","timestampLeft","inputWrapper","inputContainer","input","value","onChangeText","placeholderTextColor","multiline","inputButtonsContainer","inputButton","name","size","sendButton","disabledButton","onPress","disabled","create","flex","padding","paddingBottom","marginBottom","fontSize","marginTop","paddingHorizontal","textAlign","maxWidth","borderRadius","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","alignSelf","lineHeight","paddingVertical","borderTopWidth","borderTopColor","flexDirection","alignItems","margin","maxHeight","justifyContent","marginHorizontal","marginLeft","opacity"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,YAAY,EACZC,IAAI,EACJC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,UAAU,EACVC,oBAAoB,EACpBC,QAAQ,EACRC,gBAAgB,EAChBC,cAAc,QACT,cAAc;AACrB,SAASC,QAAQ,IAAIC,IAAI,QAAQ,oBAAoB;AAgBrD,MAAMC,YAAY,GAAG;EACnBC,YAAY,EAAE,SAAS;EACvBC,eAAe,EAAE,SAAS;EAC1BC,SAAS,EAAE,SAAS;EACpBC,oBAAoB,EAAE;AACxB,CAAC;AAED,OAAO,MAAMC,IAAyB,GAAGA,CAAC;EACxCC,aAAa;EACbC,WAAW,GAAG,2BAA2B;EACzCC,KAAK,GAAGR;AACV,CAAC,KAAK;EACJ,MAAM,CAACS,OAAO,EAAEC,UAAU,CAAC,GAAGvB,KAAK,CAACwB,QAAQ,CAAC,EAAE,CAAC;EAChD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG1B,KAAK,CAACwB,QAAQ,CAI1C,EAAE,CAAC;EACP,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAG5B,KAAK,CAACwB,QAAQ,CAAC,KAAK,CAAC;EAEzD,MAAMK,SAAS,GAAG7B,KAAK,CAAC8B,WAAW,CAAC,YAAY;IAC9CF,aAAa,CAAC,IAAI,CAAC;IACnB,IAAI;MACF,MAAMG,QAAQ,GAAG,MAAMZ,aAAa,CAAC,8BAA8B,CAAC;MACpE,MAAMa,WAAW,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,kBAAkB,CAAC,EAAE,EAAE;QACpDC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE,SAAS;QACjBC,MAAM,EAAE;MACV,CAAC,CAAC;MACFX,WAAW,CAACY,IAAI,IAAI,CAAC,GAAGA,IAAI,EAAE;QAC5BC,IAAI,EAAER,QAAQ;QACdS,MAAM,EAAE,KAAK;QACbC,SAAS,EAAET;MACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,OAAOU,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;IAChD,CAAC,SAAS;MACRd,aAAa,CAAC,KAAK,CAAC;IACtB;EACF,CAAC,EAAE,CAACT,aAAa,CAAC,CAAC;EAEnB,MAAMyB,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC7B,IAAI,CAACtB,OAAO,CAACuB,IAAI,CAAC,CAAC,EAAE;IAErB,MAAMC,WAAW,GAAGxB,OAAO;IAC3BC,UAAU,CAAC,EAAE,CAAC;IACd,MAAMS,WAAW,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,kBAAkB,CAAC,EAAE,EAAE;MACpDC,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAE;IACV,CAAC,CAAC;IAEFX,WAAW,CAACY,IAAI,IAAI,CAAC,GAAGA,IAAI,EAAE;MAC5BC,IAAI,EAAEO,WAAW;MACjBN,MAAM,EAAE,IAAI;MACZC,SAAS,EAAET;IACb,CAAC,CAAC,CAAC;IAEH,IAAI;MACF;MACAN,WAAW,CAACY,IAAI,IAAI,CAAC,GAAGA,IAAI,EAAE;QAC5BC,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE,KAAK;QACbC,SAAS,EAAET;MACb,CAAC,CAAC,CAAC;MAEH,MAAMD,QAAQ,GAAG,MAAMZ,aAAa,CAClC2B,WAAW,EACVC,KAAK,IAAK;QACTrB,WAAW,CAACY,IAAI,IAAI;UAClB,MAAMU,WAAW,GAAG,CAAC,GAAGV,IAAI,CAAC;UAC7B,MAAMW,WAAW,GAAGD,WAAW,CAACA,WAAW,CAACE,MAAM,GAAG,CAAC,CAAC;UACvD,IAAID,WAAW,IAAI,CAACA,WAAW,CAACT,MAAM,EAAE;YACtCS,WAAW,CAACV,IAAI,IAAIQ,KAAK;UAC3B;UACA,OAAOC,WAAW;QACpB,CAAC,CAAC;MACJ,CACF,CAAC;;MAED;MACAtB,WAAW,CAACY,IAAI,IAAI;QAClB,MAAMU,WAAW,GAAG,CAAC,GAAGV,IAAI,CAAC;QAC7B,MAAMW,WAAW,GAAGD,WAAW,CAACA,WAAW,CAACE,MAAM,GAAG,CAAC,CAAC;QACvD,IAAID,WAAW,IAAI,CAACA,WAAW,CAACT,MAAM,IAAIS,WAAW,CAACV,IAAI,KAAKR,QAAQ,EAAE;UACvEkB,WAAW,CAACV,IAAI,GAAGR,QAAQ;QAC7B;QACA,OAAOiB,WAAW;MACpB,CAAC,CAAC;IACJ,CAAC,CAAC,OAAON,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;IAChD;EACF,CAAC;EAED,MAAMS,eAAe,GAAIC,QAAiB,IAAK,CAC7CC,MAAM,CAACC,aAAa,EACpBF,QAAQ,GAAGC,MAAM,CAACP,WAAW,GAAGO,MAAM,CAACE,UAAU,EACjD;IAAExC,eAAe,EAAEqC,QAAQ,GAAG/B,KAAK,CAACP,YAAY,GAAG;EAAU,CAAC,CAC/D;EAED,MAAM0C,YAAY,GAAIJ,QAAiB,IAAK,CAC1CC,MAAM,CAACI,WAAW,EAClB;IAAEC,KAAK,EAAEN,QAAQ,GAAG,MAAM,GAAG/B,KAAK,CAACL;EAAU,CAAC,CAC/C;EAED,oBACEhB,KAAA,CAAA2D,aAAA,CAAC1D,YAAY;IAAC2D,KAAK,EAAE,CAACP,MAAM,CAACQ,SAAS,EAAE;MAAE9C,eAAe,EAAEM,KAAK,CAACN;IAAgB,CAAC;EAAE,gBAClFf,KAAA,CAAA2D,aAAA,CAACpD,oBAAoB;IACnBuD,QAAQ,EAAEtD,QAAQ,CAACuD,EAAE,KAAK,KAAK,GAAG,SAAS,GAAG,QAAS;IACvDH,KAAK,EAAEP,MAAM,CAACW,OAAQ;IACtBC,sBAAsB,EAAEzD,QAAQ,CAACuD,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG;EAAE,gBAEvD/D,KAAA,CAAA2D,aAAA,CAACrD,UAAU;IACTsD,KAAK,EAAEP,MAAM,CAACa,iBAAkB;IAChCC,qBAAqB,EAAEd,MAAM,CAACe,eAAgB;IAC9CC,cAAc,eACZrE,KAAA,CAAA2D,aAAA,CAACjD,cAAc;MACbiB,UAAU,EAAEA,UAAW;MACvBE,SAAS,EAAEA,SAAU;MACrByC,SAAS,EAAEjD,KAAK,CAACP,YAAY,IAAID,YAAY,CAACC,YAAa;MAC3DyD,MAAM,EAAE,CAAClD,KAAK,CAACP,YAAY,IAAID,YAAY,CAACC,YAAY,CAAE;MAC1D0D,uBAAuB,EAAC;IAAS,CAClC;EACF,GAEA/C,QAAQ,CAACgD,GAAG,CAAC,CAACC,GAAG,EAAEC,CAAC,kBACnB3E,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAACwE,GAAG,EAAED,CAAE;IAACf,KAAK,EAAEP,MAAM,CAACwB;EAAe,gBACzC7E,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAACwD,KAAK,EAAE,CAACT,eAAe,CAACuB,GAAG,CAAClC,MAAM,CAAC,EAAEa,MAAM,CAACyB,aAAa;EAAE,gBAC/D9E,KAAA,CAAA2D,aAAA,CAACzD,IAAI;IAAC0D,KAAK,EAAEJ,YAAY,CAACkB,GAAG,CAAClC,MAAM;EAAE,GACnCkC,GAAG,CAACnC,IACD,CACF,CAAC,eACPvC,KAAA,CAAA2D,aAAA,CAACzD,IAAI;IAAC0D,KAAK,EAAE,CACXP,MAAM,CAACZ,SAAS,EAChBiC,GAAG,CAAClC,MAAM,GAAGa,MAAM,CAAC0B,cAAc,GAAG1B,MAAM,CAAC2B,aAAa;EACzD,GACCN,GAAG,CAACjC,SACD,CACF,CACP,CACS,CAAC,eAEbzC,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAACwD,KAAK,EAAEP,MAAM,CAAC4B;EAAa,gBAC/BjF,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAACwD,KAAK,EAAEP,MAAM,CAAC6B;EAAe,gBACjClF,KAAA,CAAA2D,aAAA,CAACtD,SAAS;IACRuD,KAAK,EAAEP,MAAM,CAAC8B,KAAM;IACpBC,KAAK,EAAE9D,OAAQ;IACf+D,YAAY,EAAE9D,UAAW;IACzBH,WAAW,EAAEA,WAAY;IACzBkE,oBAAoB,EAAC,MAAM;IAC3BC,SAAS;EAAA,CACV,CACG,CAAC,eACPvF,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAACwD,KAAK,EAAEP,MAAM,CAACmC;EAAsB,gBACxCxF,KAAA,CAAA2D,aAAA,CAAClD,gBAAgB;IAACmD,KAAK,EAAEP,MAAM,CAACoC;EAAY,gBAC1CzF,KAAA,CAAA2D,aAAA,CAAC/C,IAAI;IAAC8E,IAAI,EAAC,KAAK;IAACC,IAAI,EAAE,EAAG;IAACjC,KAAK,EAAC;EAAS,CAAE,CAC5B,CAAC,eACnB1D,KAAA,CAAA2D,aAAA,CAAClD,gBAAgB;IAACmD,KAAK,EAAEP,MAAM,CAACoC;EAAY,gBAC1CzF,KAAA,CAAA2D,aAAA,CAAC/C,IAAI;IAAC8E,IAAI,EAAC,iBAAiB;IAACC,IAAI,EAAE,EAAG;IAACjC,KAAK,EAAC;EAAS,CAAE,CACxC,CAAC,eACnB1D,KAAA,CAAA2D,aAAA,CAAClD,gBAAgB;IAACmD,KAAK,EAAEP,MAAM,CAACoC;EAAY,gBAC1CzF,KAAA,CAAA2D,aAAA,CAAC/C,IAAI;IAAC8E,IAAI,EAAC,aAAa;IAACC,IAAI,EAAE,EAAG;IAACjC,KAAK,EAAC;EAAS,CAAE,CACpC,CAAC,eACnB1D,KAAA,CAAA2D,aAAA,CAAClD,gBAAgB;IACfmD,KAAK,EAAE,CACLP,MAAM,CAACuC,UAAU,EACjB,CAACtE,OAAO,CAACuB,IAAI,CAAC,CAAC,IAAIQ,MAAM,CAACwC,cAAc,CACxC;IACFC,OAAO,EAAElD,UAAW;IACpBmD,QAAQ,EAAE,CAACzE,OAAO,CAACuB,IAAI,CAAC;EAAE,gBAE1B7C,KAAA,CAAA2D,aAAA,CAAC/C,IAAI;IACH8E,IAAI,EAAC,qBAAqB;IAC1BC,IAAI,EAAE,EAAG;IACTjC,KAAK,EAAEpC,OAAO,CAACuB,IAAI,CAAC,CAAC,GAAGxB,KAAK,CAACP,YAAY,GAAG;EAAU,CACxD,CACe,CACd,CACF,CACc,CACV,CAAC;AAEnB,CAAC;AAED,MAAMuC,MAAM,GAAGlD,UAAU,CAAC6F,MAAM,CAAC;EAC/BnC,SAAS,EAAE;IACToC,IAAI,EAAE,CAAC;IACPlF,eAAe,EAAE;EACnB,CAAC;EACDiD,OAAO,EAAE;IACPiC,IAAI,EAAE;EACR,CAAC;EACD/B,iBAAiB,EAAE;IACjB+B,IAAI,EAAE;EACR,CAAC;EACD7B,eAAe,EAAE;IACf8B,OAAO,EAAE,EAAE;IACXC,aAAa,EAAE;EACjB,CAAC;EACDtB,cAAc,EAAE;IACduB,YAAY,EAAE;EAChB,CAAC;EACD3D,SAAS,EAAE;IACT4D,QAAQ,EAAE,EAAE;IACZ3C,KAAK,EAAE,SAAS;IAChB4C,SAAS,EAAE,CAAC;IACZC,iBAAiB,EAAE;EACrB,CAAC;EACDxB,cAAc,EAAE;IACdyB,SAAS,EAAE;EACb,CAAC;EACDxB,aAAa,EAAE;IACbwB,SAAS,EAAE;EACb,CAAC;EACDlD,aAAa,EAAE;IACbmD,QAAQ,EAAE,KAAK;IACfP,OAAO,EAAE,EAAE;IACXK,iBAAiB,EAAE,EAAE;IACrBG,YAAY,EAAE,EAAE;IAChB3F,eAAe,EAAE;EACnB,CAAC;EACD+D,aAAa,EAAE;IACb6B,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MACZC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE;IACV,CAAC;IACDC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDnE,WAAW,EAAE;IACXoE,SAAS,EAAE,UAAU;IACrBnG,eAAe,EAAE;EACnB,CAAC;EACDwC,UAAU,EAAE;IACV2D,SAAS,EAAE,YAAY;IACvBnG,eAAe,EAAE;EACnB,CAAC;EACD0C,WAAW,EAAE;IACX4C,QAAQ,EAAE,EAAE;IACZc,UAAU,EAAE;EACd,CAAC;EACDlC,YAAY,EAAE;IACZlE,eAAe,EAAE,SAAS;IAC1BwF,iBAAiB,EAAE,CAAC;IACpBa,eAAe,EAAE,CAAC;IAClBC,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAE;EAClB,CAAC;EACDpC,cAAc,EAAE;IACdqC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBjB,iBAAiB,EAAE,CAAC;IACpBa,eAAe,EAAE,CAAC;IAClBrG,eAAe,EAAE,SAAS;IAC1B2F,YAAY,EAAE,EAAE;IAChBe,MAAM,EAAE,CAAC;IACTd,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MACZC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE;IACV,CAAC;IACDC,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACD9B,KAAK,EAAE;IACLc,IAAI,EAAE,CAAC;IACPI,QAAQ,EAAE,EAAE;IACZe,eAAe,EAAE,CAAC;IAClBb,iBAAiB,EAAE,EAAE;IACrBmB,SAAS,EAAE,GAAG;IACdhE,KAAK,EAAE;EACT,CAAC;EACD8B,qBAAqB,EAAE;IACrB+B,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBG,cAAc,EAAE,eAAe;IAC/BpB,iBAAiB,EAAE,CAAC;IACpBD,SAAS,EAAE;EACb,CAAC;EACDb,WAAW,EAAE;IACXS,OAAO,EAAE,CAAC;IACV0B,gBAAgB,EAAE;EACpB,CAAC;EACDhC,UAAU,EAAE;IACVM,OAAO,EAAE,CAAC;IACV2B,UAAU,EAAE;EACd,CAAC;EACDhC,cAAc,EAAE;IACdiC,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useCallback","SafeAreaView","Text","StyleSheet","View","TextInput","ScrollView","KeyboardAvoidingView","Platform","TouchableOpacity","RefreshControl","Ionicons","Icon","AppProvider","Layout","Chat","data","onProductCardClick","onAddToCartClick","createElement","styles","create"],"sourceRoot":"../../src","sources":["index.js"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AACpD,SAASC,YAAY,EAAEC,IAAI,EAAEC,UAAU,EAAEC,IAAI,EAAEC,SAAS,EAAEC,UAAU,EAAEC,oBAAoB,EACxFC,QAAQ,EAAEC,gBAAgB,EAAEC,cAAc,QAAS,cAAc;AACnE,SAASC,QAAQ,IAAIC,IAAI,QAAQ,oBAAoB;AACrD,SAASC,WAAW,QAAQ,uBAAuB;AACnD,SAASC,MAAM,QAAQ,iBAAiB;AAExC,OAAO,MAAMC,IAAI,GAAGA,CAAC;EAACC,IAAI;EAAEC,kBAAkB;EAAEC;AAAiB,CAAC,KAAK;EAErE,oBACEpB,KAAA,CAAAqB,aAAA,CAACN,WAAW,qBACVf,KAAA,CAAAqB,aAAA,CAACL,MAAM;IAACG,kBAAkB,EAAEA,kBAAmB;IAACC,gBAAgB,EAAEA;EAAiB,CAAC,CACzE,CAAC;AAElB,CAAC;AAED,MAAME,MAAM,GAAGjB,UAAU,CAACkB,MAAM,CAAC,CACjC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ import React, { useContext } from 'react';
2
+ import { TouchableOpacity, View, StyleSheet } from 'react-native';
3
+ import { Ionicons as Icon } from '@expo/vector-icons';
4
+ import { AppContext } from '../contexts/AppContext';
5
+ export const ChatIcon = () => {
6
+ const {
7
+ setShowModal
8
+ } = useContext(AppContext);
9
+ return /*#__PURE__*/React.createElement(TouchableOpacity, {
10
+ style: styles.iconContainer,
11
+ onPress: () => setShowModal("ChatWindow")
12
+ }, /*#__PURE__*/React.createElement(View, {
13
+ style: styles.icon
14
+ }, /*#__PURE__*/React.createElement(Icon, {
15
+ name: "chatbubble-ellipses",
16
+ size: 28,
17
+ color: "white"
18
+ })));
19
+ };
20
+ const styles = StyleSheet.create({
21
+ iconContainer: {
22
+ position: 'absolute',
23
+ bottom: 80,
24
+ right: 20,
25
+ zIndex: 10
26
+ },
27
+ icon: {
28
+ backgroundColor: '#FFA500',
29
+ width: 60,
30
+ height: 60,
31
+ borderRadius: 30,
32
+ alignItems: 'center',
33
+ justifyContent: 'center',
34
+ shadowColor: '#000',
35
+ shadowOffset: {
36
+ width: 0,
37
+ height: 2
38
+ },
39
+ shadowOpacity: 0.2,
40
+ shadowRadius: 3,
41
+ elevation: 5
42
+ }
43
+ });
44
+ //# sourceMappingURL=chatIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useContext","TouchableOpacity","View","StyleSheet","Ionicons","Icon","AppContext","ChatIcon","setShowModal","createElement","style","styles","iconContainer","onPress","icon","name","size","color","create","position","bottom","right","zIndex","backgroundColor","width","height","borderRadius","alignItems","justifyContent","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation"],"sourceRoot":"../../../src","sources":["layout/chatIcon.js"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,gBAAgB,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACjE,SAASC,QAAQ,IAAIC,IAAI,QAAQ,oBAAoB;AACrD,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,OAAO,MAAMC,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAM;IAAEC;EAAa,CAAC,GAAGR,UAAU,CAACM,UAAU,CAAC;EAE/C,oBACEP,KAAA,CAAAU,aAAA,CAACR,gBAAgB;IAACS,KAAK,EAAEC,MAAM,CAACC,aAAc;IAACC,OAAO,EAAEA,CAAA,KAAML,YAAY,CAAC,YAAY;EAAE,gBACvFT,KAAA,CAAAU,aAAA,CAACP,IAAI;IAACQ,KAAK,EAAEC,MAAM,CAACG;EAAK,gBACvBf,KAAA,CAAAU,aAAA,CAACJ,IAAI;IAACU,IAAI,EAAC,qBAAqB;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAO,CAAE,CACtD,CACU,CAAC;AAEvB,CAAC;AAED,MAAMN,MAAM,GAAGR,UAAU,CAACe,MAAM,CAAC;EAC/BN,aAAa,EAAE;IACbO,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACDR,IAAI,EAAE;IACJS,eAAe,EAAE,SAAS;IAC1BC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,EAAE;IAChBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEN,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCM,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,199 @@
1
+ import React, { useState, useCallback, useContext } from 'react';
2
+ import { SafeAreaView, Text, StyleSheet, View, TextInput, ScrollView, KeyboardAvoidingView, Platform, TouchableOpacity, RefreshControl } from 'react-native';
3
+ import { Ionicons as Icon } from '@expo/vector-icons';
4
+ import { Header } from '../components/header';
5
+ import { AppContext } from '../contexts/AppContext';
6
+ import { Testing } from '../components/testing';
7
+ const theme = {
8
+ primaryColor: '#003764',
9
+ backgroundColor: '#f6f6f6',
10
+ textColor: '#000000',
11
+ inputBackgroundColor: '#f6f6f6'
12
+ };
13
+ export const ChatWindow = ({
14
+ onProductCardClick,
15
+ onAddToCartClick
16
+ }) => {
17
+ const {
18
+ handleSend,
19
+ messages,
20
+ setMessages,
21
+ onSendMessage,
22
+ input,
23
+ setInput
24
+ } = useContext(AppContext);
25
+ const [refreshing, setRefreshing] = useState(false);
26
+ const onRefresh = useCallback(async () => {
27
+ setRefreshing(true);
28
+ try {
29
+ const response = await onSendMessage("Hi, I'm refreshing the chat!");
30
+ setMessages(prev => [...prev, {
31
+ text: response,
32
+ isUser: false
33
+ }]);
34
+ } catch (error) {
35
+ console.error('Error refreshing chat:', error);
36
+ } finally {
37
+ setRefreshing(false);
38
+ }
39
+ }, []);
40
+ const getMessageStyle = type => [styles.messageBubble, type === "user" ? styles.userMessage : styles.aiMessage, {
41
+ backgroundColor: type === "user" ? theme.primaryColor : '#E8E8E8'
42
+ }];
43
+ const getTextStyle = type => [styles.messageText, {
44
+ color: type === "user" ? '#fff' : theme.textColor
45
+ }];
46
+ return /*#__PURE__*/React.createElement(SafeAreaView, {
47
+ style: [styles.container, {
48
+ backgroundColor: theme.backgroundColor
49
+ }]
50
+ }, /*#__PURE__*/React.createElement(View, {
51
+ style: styles.chatWindow
52
+ }, /*#__PURE__*/React.createElement(Header, null), /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
53
+ behavior: Platform.OS === 'ios' ? 'padding' : 'height',
54
+ style: styles.content,
55
+ keyboardVerticalOffset: Platform.OS === 'ios' ? 60 : 0
56
+ }, /*#__PURE__*/React.createElement(ScrollView, {
57
+ style: styles.messagesContainer,
58
+ contentContainerStyle: styles.messagesContent,
59
+ refreshControl: /*#__PURE__*/React.createElement(RefreshControl, {
60
+ refreshing: refreshing,
61
+ onRefresh: onRefresh,
62
+ tintColor: theme.primaryColor,
63
+ colors: [theme.primaryColor],
64
+ progressBackgroundColor: "#ffffff"
65
+ })
66
+ }, messages.map((msg, i) => /*#__PURE__*/React.createElement(View, {
67
+ key: i,
68
+ style: styles.messageWrapper
69
+ }, /*#__PURE__*/React.createElement(View, {
70
+ style: [getMessageStyle(msg.type), styles.messageShadow]
71
+ }, /*#__PURE__*/React.createElement(Text, {
72
+ style: getTextStyle(msg.type)
73
+ }, msg.text))))), /*#__PURE__*/React.createElement(Testing, {
74
+ onProductCardClick: onProductCardClick,
75
+ onAddToCartClick: onAddToCartClick
76
+ }), /*#__PURE__*/React.createElement(View, {
77
+ style: styles.inputWrapper
78
+ }, /*#__PURE__*/React.createElement(View, {
79
+ style: styles.inputContainer
80
+ }, /*#__PURE__*/React.createElement(TextInput, {
81
+ style: styles.input,
82
+ value: input,
83
+ onChangeText: setInput,
84
+ placeholder: "Ask a question...",
85
+ placeholderTextColor: "#999",
86
+ multiline: true
87
+ }), /*#__PURE__*/React.createElement(TouchableOpacity, {
88
+ style: styles.inputButton
89
+ }, /*#__PURE__*/React.createElement(Icon, {
90
+ name: "mic-outline",
91
+ size: 24,
92
+ color: "#8E8E93"
93
+ })), /*#__PURE__*/React.createElement(TouchableOpacity, {
94
+ style: [styles.sendButton, !input.trim() && styles.disabledButton],
95
+ onPress: handleSend,
96
+ disabled: !input.trim()
97
+ }, /*#__PURE__*/React.createElement(Icon, {
98
+ name: "paper-plane-outline",
99
+ size: 24,
100
+ color: input.trim() ? theme.primaryColor : '#8E8E93'
101
+ })))))));
102
+ };
103
+ const styles = StyleSheet.create({
104
+ container: {
105
+ flex: 1,
106
+ backgroundColor: '#FFFFFF'
107
+ },
108
+ chatWindow: {
109
+ zIndex: 1,
110
+ flex: 1,
111
+ marginTop: 40,
112
+ borderTopWidth: 1,
113
+ borderTopColor: '#DDD',
114
+ borderTopLeftRadius: 16,
115
+ borderTopRightRadius: 16,
116
+ overflow: 'hidden',
117
+ backgroundColor: theme.backgroundColor
118
+ },
119
+ content: {
120
+ flex: 1
121
+ },
122
+ messagesContainer: {
123
+ flex: 1
124
+ },
125
+ messagesContent: {
126
+ padding: 16,
127
+ paddingBottom: 32
128
+ },
129
+ messageWrapper: {
130
+ marginBottom: 16
131
+ },
132
+ messageBubble: {
133
+ maxWidth: '90%',
134
+ padding: 12,
135
+ paddingHorizontal: 16,
136
+ borderRadius: 20
137
+ },
138
+ messageShadow: {
139
+ shadowColor: '#000',
140
+ shadowOffset: {
141
+ width: 0,
142
+ height: 1
143
+ },
144
+ shadowOpacity: 0.08,
145
+ shadowRadius: 2,
146
+ elevation: 2
147
+ },
148
+ userMessage: {
149
+ alignSelf: 'flex-end',
150
+ backgroundColor: theme.primaryColor
151
+ },
152
+ aiMessage: {
153
+ alignSelf: 'flex-start',
154
+ backgroundColor: '#F2F2F7'
155
+ },
156
+ messageText: {
157
+ fontSize: 16,
158
+ lineHeight: 22
159
+ },
160
+ inputWrapper: {
161
+ backgroundColor: '#f6f6f6',
162
+ paddingHorizontal: 8,
163
+ paddingVertical: 8,
164
+ borderTopWidth: 1,
165
+ borderTopColor: 'rgba(0, 0, 0, 0.1)'
166
+ },
167
+ inputContainer: {
168
+ flexDirection: 'row',
169
+ alignItems: 'center',
170
+ paddingHorizontal: 8,
171
+ paddingVertical: 8,
172
+ backgroundColor: '#FFFFFF',
173
+ borderRadius: 16,
174
+ margin: 8,
175
+ shadowColor: '#000',
176
+ shadowOffset: {
177
+ width: 0,
178
+ height: 2
179
+ },
180
+ shadowOpacity: 0.1,
181
+ shadowRadius: 4,
182
+ elevation: 3
183
+ },
184
+ input: {
185
+ flex: 1,
186
+ fontSize: 16,
187
+ paddingVertical: 8,
188
+ paddingHorizontal: 12,
189
+ color: '#000000'
190
+ },
191
+ sendButton: {
192
+ padding: 6,
193
+ marginLeft: 'auto'
194
+ },
195
+ disabledButton: {
196
+ opacity: 0.7
197
+ }
198
+ });
199
+ //# sourceMappingURL=chatWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useCallback","useContext","SafeAreaView","Text","StyleSheet","View","TextInput","ScrollView","KeyboardAvoidingView","Platform","TouchableOpacity","RefreshControl","Ionicons","Icon","Header","AppContext","Testing","theme","primaryColor","backgroundColor","textColor","inputBackgroundColor","ChatWindow","onProductCardClick","onAddToCartClick","handleSend","messages","setMessages","onSendMessage","input","setInput","refreshing","setRefreshing","onRefresh","response","prev","text","isUser","error","console","getMessageStyle","type","styles","messageBubble","userMessage","aiMessage","getTextStyle","messageText","color","createElement","style","container","chatWindow","behavior","OS","content","keyboardVerticalOffset","messagesContainer","contentContainerStyle","messagesContent","refreshControl","tintColor","colors","progressBackgroundColor","map","msg","i","key","messageWrapper","messageShadow","inputWrapper","inputContainer","value","onChangeText","placeholder","placeholderTextColor","multiline","inputButton","name","size","sendButton","trim","disabledButton","onPress","disabled","create","flex","zIndex","marginTop","borderTopWidth","borderTopColor","borderTopLeftRadius","borderTopRightRadius","overflow","padding","paddingBottom","marginBottom","maxWidth","paddingHorizontal","borderRadius","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","alignSelf","fontSize","lineHeight","paddingVertical","flexDirection","alignItems","margin","marginLeft","opacity"],"sourceRoot":"../../../src","sources":["layout/chatWindow.js"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import React, { useState, useCallback, useContext } from 'react';
2
+ import { SafeAreaView, Text, StyleSheet, View, TextInput, ScrollView, KeyboardAvoidingView, Platform, TouchableOpacity, RefreshControl } from 'react-native';
3
+ import { Ionicons as Icon } from '@expo/vector-icons';
4
+ import { ChatWindow } from './chatWindow';
5
+ import { AppContext } from '../contexts/AppContext';
6
+ import { ChatIcon } from './chatIcon';
7
+ export const Layout = ({
8
+ onProductCardClick,
9
+ onAddToCartClick
10
+ }) => {
11
+ const {
12
+ showModal
13
+ } = useContext(AppContext);
14
+ return /*#__PURE__*/React.createElement(View, {
15
+ style: styles.container
16
+ }, showModal === "Icon" ? /*#__PURE__*/React.createElement(ChatIcon, null) : /*#__PURE__*/React.createElement(ChatWindow, {
17
+ onProductCardClick: onProductCardClick,
18
+ onAddToCartClick: onAddToCartClick
19
+ }));
20
+ };
21
+ const styles = StyleSheet.create({
22
+ container: {
23
+ flex: 1
24
+ }
25
+ });
26
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useCallback","useContext","SafeAreaView","Text","StyleSheet","View","TextInput","ScrollView","KeyboardAvoidingView","Platform","TouchableOpacity","RefreshControl","Ionicons","Icon","ChatWindow","AppContext","ChatIcon","Layout","onProductCardClick","onAddToCartClick","showModal","createElement","style","styles","container","create","flex"],"sourceRoot":"../../../src","sources":["layout/layout.js"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AAChE,SAASC,YAAY,EAAEC,IAAI,EAAEC,UAAU,EAAEC,IAAI,EAAEC,SAAS,EAAEC,UAAU,EAAEC,oBAAoB,EACxFC,QAAQ,EAAEC,gBAAgB,EAAEC,cAAc,QAAS,cAAc;AACnE,SAASC,QAAQ,IAAIC,IAAI,QAAQ,oBAAoB;AACrD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,QAAQ,QAAQ,YAAY;AAErC,OAAO,MAAMC,MAAM,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC;AAAiB,CAAC,KAAK;EAChE,MAAM;IAAEC;EAAU,CAAC,GAAGnB,UAAU,CAACc,UAAU,CAAC;EAE5C,oBACEjB,KAAA,CAAAuB,aAAA,CAAChB,IAAI;IAACiB,KAAK,EAAEC,MAAM,CAACC;EAAU,GAC3BJ,SAAS,KAAK,MAAM,gBAAGtB,KAAA,CAAAuB,aAAA,CAACL,QAAQ,MAAE,CAAC,gBAAGlB,KAAA,CAAAuB,aAAA,CAACP,UAAU;IAACI,kBAAkB,EAAEA,kBAAmB;IAACC,gBAAgB,EAAEA;EAAiB,CAAC,CAC3H,CAAC;AAEb,CAAC;AAED,MAAMI,MAAM,GAAGnB,UAAU,CAACqB,MAAM,CAAC;EAC7BD,SAAS,EAAE;IACTE,IAAI,EAAE;EACR;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export function Header(): React.JSX.Element;
2
+ import React from 'react';
3
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/components/header.js"],"names":[],"mappings":"AAKO,4CA+BN;kBApCiC,OAAO"}
@@ -0,0 +1,6 @@
1
+ export function Testing({ onProductCardClick, onAddToCartClick }: {
2
+ onProductCardClick: any;
3
+ onAddToCartClick: any;
4
+ }): React.JSX.Element;
5
+ import React from 'react';
6
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/components/testing.js"],"names":[],"mappings":"AAGO;;;sBAgCN;kBAnCiB,OAAO"}
@@ -0,0 +1,6 @@
1
+ export const AppContext: React.Context<any>;
2
+ export function AppProvider({ children }: {
3
+ children: any;
4
+ }): React.JSX.Element;
5
+ import React from "react";
6
+ //# sourceMappingURL=AppContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"AAEA,4CAA0C;AAEnC;;sBA8EN;kBAlFoE,OAAO"}
@@ -0,0 +1,2 @@
1
+ export function useWebSocketMessage(): void;
2
+ //# sourceMappingURL=Stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../../src/hooks/Stream.js"],"names":[],"mappings":"AAGA,4CAkMC"}
@@ -1,14 +1,7 @@
1
+ export function Chat({ data, onProductCardClick, onAddToCartClick }: {
2
+ data: any;
3
+ onProductCardClick: any;
4
+ onAddToCartClick: any;
5
+ }): React.JSX.Element;
1
6
  import React from 'react';
2
- interface ChatProps {
3
- onSendMessage: (message: string, onStream?: (chunk: string) => void) => Promise<string>;
4
- placeholder?: string;
5
- theme?: {
6
- primaryColor?: string;
7
- backgroundColor?: string;
8
- textColor?: string;
9
- inputBackgroundColor?: string;
10
- };
11
- }
12
- export declare const Chat: React.FC<ChatProps>;
13
- export {};
14
7
  //# sourceMappingURL=index.d.ts.map