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.
Files changed (140) hide show
  1. package/lib/commonjs/components/email.js +243 -0
  2. package/lib/commonjs/components/email.js.map +1 -0
  3. package/lib/commonjs/components/feedback.js +115 -0
  4. package/lib/commonjs/components/feedback.js.map +1 -0
  5. package/lib/commonjs/components/header.js +35 -17
  6. package/lib/commonjs/components/header.js.map +1 -1
  7. package/lib/commonjs/components/input.js +106 -0
  8. package/lib/commonjs/components/input.js.map +1 -0
  9. package/lib/commonjs/components/productCard.js +234 -0
  10. package/lib/commonjs/components/productCard.js.map +1 -0
  11. package/lib/commonjs/components/testing.js +19 -6
  12. package/lib/commonjs/components/testing.js.map +1 -1
  13. package/lib/commonjs/{layout/chatIcon.js → components/welcomeButton.js} +40 -37
  14. package/lib/commonjs/components/welcomeButton.js.map +1 -0
  15. package/lib/commonjs/components/welcomeInput.js +87 -0
  16. package/lib/commonjs/components/welcomeInput.js.map +1 -0
  17. package/lib/commonjs/contexts/AppContext.js +272 -56
  18. package/lib/commonjs/contexts/AppContext.js.map +1 -1
  19. package/lib/commonjs/hooks/{Stream.js → stream.js} +107 -39
  20. package/lib/commonjs/hooks/stream.js.map +1 -0
  21. package/lib/commonjs/hooks/useAsyncStorage.js +36 -0
  22. package/lib/commonjs/hooks/useAsyncStorage.js.map +1 -0
  23. package/lib/commonjs/index.js +13 -6
  24. package/lib/commonjs/index.js.map +1 -1
  25. package/lib/commonjs/layout/disclaimer.js +200 -0
  26. package/lib/commonjs/layout/disclaimer.js.map +1 -0
  27. package/lib/commonjs/layout/ex.js +272 -0
  28. package/lib/commonjs/layout/ex.js.map +1 -0
  29. package/lib/commonjs/layout/icon.js +114 -0
  30. package/lib/commonjs/layout/icon.js.map +1 -0
  31. package/lib/commonjs/layout/layout.js +148 -14
  32. package/lib/commonjs/layout/layout.js.map +1 -1
  33. package/lib/commonjs/layout/welcome.js +135 -0
  34. package/lib/commonjs/layout/welcome.js.map +1 -0
  35. package/lib/commonjs/layout/window.js +205 -0
  36. package/lib/commonjs/layout/window.js.map +1 -0
  37. package/lib/module/components/email.js +233 -0
  38. package/lib/module/components/email.js.map +1 -0
  39. package/lib/module/components/feedback.js +105 -0
  40. package/lib/module/components/feedback.js.map +1 -0
  41. package/lib/module/components/header.js +35 -17
  42. package/lib/module/components/header.js.map +1 -1
  43. package/lib/module/components/input.js +96 -0
  44. package/lib/module/components/input.js.map +1 -0
  45. package/lib/module/components/productCard.js +225 -0
  46. package/lib/module/components/productCard.js.map +1 -0
  47. package/lib/module/components/testing.js +20 -7
  48. package/lib/module/components/testing.js.map +1 -1
  49. package/lib/module/components/welcomeButton.js +48 -0
  50. package/lib/module/components/welcomeButton.js.map +1 -0
  51. package/lib/module/components/welcomeInput.js +77 -0
  52. package/lib/module/components/welcomeInput.js.map +1 -0
  53. package/lib/module/contexts/AppContext.js +272 -57
  54. package/lib/module/contexts/AppContext.js.map +1 -1
  55. package/lib/module/hooks/{Stream.js → stream.js} +107 -39
  56. package/lib/module/hooks/stream.js.map +1 -0
  57. package/lib/module/hooks/useAsyncStorage.js +29 -0
  58. package/lib/module/hooks/useAsyncStorage.js.map +1 -0
  59. package/lib/module/index.js +13 -6
  60. package/lib/module/index.js.map +1 -1
  61. package/lib/module/layout/disclaimer.js +190 -0
  62. package/lib/module/layout/disclaimer.js.map +1 -0
  63. package/lib/module/layout/ex.js +262 -0
  64. package/lib/module/layout/ex.js.map +1 -0
  65. package/lib/module/layout/icon.js +104 -0
  66. package/lib/module/layout/icon.js.map +1 -0
  67. package/lib/module/layout/layout.js +150 -16
  68. package/lib/module/layout/layout.js.map +1 -1
  69. package/lib/module/layout/welcome.js +126 -0
  70. package/lib/module/layout/welcome.js.map +1 -0
  71. package/lib/module/layout/window.js +195 -0
  72. package/lib/module/layout/window.js.map +1 -0
  73. package/lib/typescript/components/email.d.ts +5 -0
  74. package/lib/typescript/components/email.d.ts.map +1 -0
  75. package/lib/typescript/components/feedback.d.ts +6 -0
  76. package/lib/typescript/components/feedback.d.ts.map +1 -0
  77. package/lib/typescript/components/header.d.ts.map +1 -1
  78. package/lib/typescript/components/input.d.ts +6 -0
  79. package/lib/typescript/components/input.d.ts.map +1 -0
  80. package/lib/typescript/components/productCard.d.ts +5 -0
  81. package/lib/typescript/components/productCard.d.ts.map +1 -0
  82. package/lib/typescript/components/testing.d.ts.map +1 -1
  83. package/lib/typescript/components/welcomeButton.d.ts +4 -0
  84. package/lib/typescript/components/welcomeButton.d.ts.map +1 -0
  85. package/lib/typescript/components/welcomeInput.d.ts +6 -0
  86. package/lib/typescript/components/welcomeInput.d.ts.map +1 -0
  87. package/lib/typescript/contexts/AppContext.d.ts +5 -1
  88. package/lib/typescript/contexts/AppContext.d.ts.map +1 -1
  89. package/lib/typescript/hooks/{Stream.d.ts → stream.d.ts} +1 -1
  90. package/lib/typescript/hooks/stream.d.ts.map +1 -0
  91. package/lib/typescript/hooks/useAsyncStorage.d.ts +2 -0
  92. package/lib/typescript/hooks/useAsyncStorage.d.ts.map +1 -0
  93. package/lib/typescript/index.d.ts +2 -1
  94. package/lib/typescript/index.d.ts.map +1 -1
  95. package/lib/typescript/layout/disclaimer.d.ts +5 -0
  96. package/lib/typescript/layout/disclaimer.d.ts.map +1 -0
  97. package/lib/typescript/layout/ex.d.ts +3 -0
  98. package/lib/typescript/layout/ex.d.ts.map +1 -0
  99. package/lib/typescript/layout/{chatIcon.d.ts → icon.d.ts} +1 -1
  100. package/lib/typescript/layout/icon.d.ts.map +1 -0
  101. package/lib/typescript/layout/layout.d.ts +1 -4
  102. package/lib/typescript/layout/layout.d.ts.map +1 -1
  103. package/lib/typescript/layout/welcome.d.ts +5 -0
  104. package/lib/typescript/layout/welcome.d.ts.map +1 -0
  105. package/lib/typescript/layout/window.d.ts +5 -0
  106. package/lib/typescript/layout/window.d.ts.map +1 -0
  107. package/package.json +7 -1
  108. package/src/components/email.js +210 -0
  109. package/src/components/feedback.js +114 -0
  110. package/src/components/header.js +32 -17
  111. package/src/components/input.js +95 -0
  112. package/src/components/productCard.js +240 -0
  113. package/src/components/testing.js +17 -4
  114. package/src/components/welcomeButton.js +51 -0
  115. package/src/components/welcomeInput.js +81 -0
  116. package/src/contexts/AppContext.js +237 -52
  117. package/src/hooks/{Stream.js → stream.js} +123 -41
  118. package/src/hooks/useAsyncStorage.js +33 -0
  119. package/src/index.js +7 -3
  120. package/src/layout/disclaimer.js +187 -0
  121. package/src/layout/ex.js +251 -0
  122. package/src/layout/icon.js +96 -0
  123. package/src/layout/layout.js +137 -10
  124. package/src/layout/welcome.js +124 -0
  125. package/src/layout/window.js +194 -0
  126. package/lib/commonjs/hooks/Stream.js.map +0 -1
  127. package/lib/commonjs/layout/chatIcon.js.map +0 -1
  128. package/lib/commonjs/layout/chatWindow.js +0 -214
  129. package/lib/commonjs/layout/chatWindow.js.map +0 -1
  130. package/lib/module/hooks/Stream.js.map +0 -1
  131. package/lib/module/layout/chatIcon.js +0 -44
  132. package/lib/module/layout/chatIcon.js.map +0 -1
  133. package/lib/module/layout/chatWindow.js +0 -204
  134. package/lib/module/layout/chatWindow.js.map +0 -1
  135. package/lib/typescript/hooks/Stream.d.ts.map +0 -1
  136. package/lib/typescript/layout/chatIcon.d.ts.map +0 -1
  137. package/lib/typescript/layout/chatWindow.d.ts +0 -6
  138. package/lib/typescript/layout/chatWindow.d.ts.map +0 -1
  139. package/src/layout/chatIcon.js +0 -38
  140. package/src/layout/chatWindow.js +0 -207
@@ -0,0 +1,77 @@
1
+ import React, { useState, useEffect, useContext, useRef } from 'react';
2
+ import { Text, StyleSheet, View, TextInput, TouchableOpacity, Platform, KeyboardAvoidingView, Keyboard } from 'react-native';
3
+ import { Header } from '../components/header';
4
+ import { AppContext } from '../contexts/AppContext';
5
+ import Ionicons from 'react-native-vector-icons/Ionicons';
6
+ export const WelcomeInput = ({
7
+ onProductCardClick,
8
+ onAddToCartClick
9
+ }) => {
10
+ const {
11
+ handleSend,
12
+ input,
13
+ setInput,
14
+ showModal,
15
+ theme
16
+ } = useContext(AppContext);
17
+ return /*#__PURE__*/React.createElement(View, {
18
+ style: styles.inputContainer
19
+ }, /*#__PURE__*/React.createElement(TextInput, {
20
+ style: styles.input,
21
+ value: input,
22
+ onChangeText: setInput,
23
+ placeholder: "Ask a question...",
24
+ placeholderTextColor: "#999",
25
+ multiline: true
26
+ }), /*#__PURE__*/React.createElement(TouchableOpacity, {
27
+ style: styles.inputButton
28
+ }, /*#__PURE__*/React.createElement(Ionicons, {
29
+ name: "mic-outline",
30
+ size: 24,
31
+ color: "#8E8E93"
32
+ })), /*#__PURE__*/React.createElement(TouchableOpacity, {
33
+ style: styles.sendButton,
34
+ onPress: () => handleSend(input),
35
+ disabled: !input.trim()
36
+ }, /*#__PURE__*/React.createElement(Ionicons, {
37
+ name: "paper-plane-outline",
38
+ size: 24,
39
+ color: input.trim() ? theme.primaryColor : '#8E8E93'
40
+ })));
41
+ };
42
+ const styles = StyleSheet.create({
43
+ inputContainer: {
44
+ flexDirection: 'row',
45
+ alignItems: 'center',
46
+ paddingHorizontal: 8,
47
+ paddingVertical: 8,
48
+ backgroundColor: '#FFFFFF',
49
+ borderRadius: 16,
50
+ shadowColor: '#000',
51
+ shadowOffset: {
52
+ width: 0,
53
+ height: 2
54
+ },
55
+ shadowOpacity: 0.1,
56
+ shadowRadius: 4,
57
+ elevation: 3
58
+ },
59
+ input: {
60
+ flex: 1,
61
+ fontSize: 16,
62
+ paddingVertical: 8,
63
+ paddingHorizontal: 12,
64
+ color: '#000000'
65
+ },
66
+ inputButton: {
67
+ padding: 6
68
+ },
69
+ sendButton: {
70
+ padding: 6,
71
+ marginLeft: 'auto'
72
+ },
73
+ disabledButton: {
74
+ opacity: 0.7
75
+ }
76
+ });
77
+ //# sourceMappingURL=welcomeInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Header","AppContext","Ionicons","WelcomeInput","onProductCardClick","onAddToCartClick","handleSend","input","setInput","showModal","theme","createElement","style","styles","inputContainer","value","onChangeText","placeholder","placeholderTextColor","multiline","inputButton","name","size","color","sendButton","onPress","disabled","trim","primaryColor","create","flexDirection","alignItems","paddingHorizontal","paddingVertical","backgroundColor","borderRadius","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","flex","fontSize","padding","marginLeft","disabledButton","opacity"],"sourceRoot":"../../../src","sources":["components/welcomeInput.js"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACtE,SACEC,IAAI,EACJC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,gBAAgB,EAChBC,QAAQ,EACRC,oBAAoB,EACpBC,QAAQ,QACH,cAAc;AACrB,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,UAAU,QAAQ,wBAAwB;AACnD,OAAOC,QAAQ,MAAM,oCAAoC;AAEzD,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC;AAAiB,CAAC,KAAK;EACxE,MAAM;IAAEC,UAAU;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGpB,UAAU,CAACW,UAAU,CAAC;EAEhF,oBACMd,KAAA,CAAAwB,aAAA,CAACjB,IAAI;IAACkB,KAAK,EAAEC,MAAM,CAACC;EAAe,gBACnC3B,KAAA,CAAAwB,aAAA,CAAChB,SAAS;IACNiB,KAAK,EAAEC,MAAM,CAACN,KAAM;IACpBQ,KAAK,EAAER,KAAM;IACbS,YAAY,EAAER,QAAS;IACvBS,WAAW,EAAC,mBAAmB;IAC/BC,oBAAoB,EAAC,MAAM;IAC3BC,SAAS;EAAA,CACZ,CAAC,eACFhC,KAAA,CAAAwB,aAAA,CAACf,gBAAgB;IAACgB,KAAK,EAAEC,MAAM,CAACO;EAAY,gBACxCjC,KAAA,CAAAwB,aAAA,CAACT,QAAQ;IAACmB,IAAI,EAAC,aAAa;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAS,CAAE,CAC1C,CAAC,eACnBpC,KAAA,CAAAwB,aAAA,CAACf,gBAAgB;IACbgB,KAAK,EAAEC,MAAM,CAACW,UAAW;IACzBC,OAAO,EAAEA,CAAA,KAAMnB,UAAU,CAACC,KAAK,CAAE;IACjCmB,QAAQ,EAAE,CAACnB,KAAK,CAACoB,IAAI,CAAC;EAAE,gBAExBxC,KAAA,CAAAwB,aAAA,CAACT,QAAQ;IACTmB,IAAI,EAAC,qBAAqB;IAC1BC,IAAI,EAAE,EAAG;IACTC,KAAK,EAAEhB,KAAK,CAACoB,IAAI,CAAC,CAAC,GAAGjB,KAAK,CAACkB,YAAY,GAAG;EAAU,CACpD,CACa,CACZ,CAAC;AAEf,CAAC;AAED,MAAMf,MAAM,GAAGpB,UAAU,CAACoC,MAAM,CAAC;EAC/Bf,cAAc,EAAE;IACdgB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE,CAAC;IAClBC,eAAe,EAAE,SAAS;IAC1BC,YAAY,EAAE,EAAE;IAChBC,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;EACDnC,KAAK,EAAE;IACLoC,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,EAAE;IACZX,eAAe,EAAE,CAAC;IAClBD,iBAAiB,EAAE,EAAE;IACrBT,KAAK,EAAE;EACT,CAAC;EACDH,WAAW,EAAE;IACXyB,OAAO,EAAE;EACX,CAAC;EACDrB,UAAU,EAAE;IACVqB,OAAO,EAAE,CAAC;IACVC,UAAU,EAAE;EACd,CAAC;EACDC,cAAc,EAAE;IACdC,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,78 +1,250 @@
1
- import React, { createContext, useContext, useState, useEffect } from "react";
1
+ import React, { createContext, useContext, useState, useEffect, useMemo } from "react";
2
+ import uuid from 'react-native-uuid';
3
+ import axios from "axios";
4
+ import useAsyncStorage from '../hooks/useAsyncStorage';
2
5
  export const AppContext = /*#__PURE__*/createContext();
3
6
  export const AppProvider = ({
7
+ data,
8
+ onProductCardClick,
9
+ onAddToCartClick,
10
+ uiConfig = {},
4
11
  children
5
12
  }) => {
6
- const [showModal, setShowModal] = useState("Icon");
7
- const [input, setInput] = useState('');
8
- const [messages, setMessages] = useState([{
13
+ const theme = {
14
+ userMessage: '#003764',
15
+ botMessage: '#003764',
16
+ backgroundColor: '#f6f6f6',
17
+ textColor: '#161616',
18
+ textColorSecondary: '#FFFFFF',
19
+ inlineButtonColor: '#dbd4c8'
20
+ };
21
+
22
+ // Backend URLs
23
+ const BASE_URL = "srs-external-agent-backend-586731320826.us-central1.run.app";
24
+ const LOGGING_URL = "srs-external-agent-logging-ve7hwyltsq-uc.a.run.app";
25
+ const API_PREFIX = "https://";
26
+
27
+ // Default Messages
28
+ const defaultMessage = [{
9
29
  type: "ai",
10
30
  text: "Hi there 👋 I’m Poseidon, your Heritage Pool+ AI Agent. I can help you during your online visit with Product and Account information. How can I help you today?"
11
- }, {
12
- type: "user",
13
- text: "Do you carry Hayward super pumps?"
14
- }, {
31
+ }];
32
+ const maintenanceMessage = [{
15
33
  type: "ai",
16
- text: "Could you provide more details on the specific model or horsepower you are interested in for the Hayward Super Pump? We have various models with different features, such as variable speed settings and different horsepower ratings. Alternatively, I can offer you some recommendations right away to help you decide."
17
- }]);
18
- const handleSend = async () => {
19
- if (!input.trim()) return;
20
- const userMessage = input;
21
- setInput('');
34
+ text: "Hi there 👋 I’m Poseidon, your Heritage Pool+ AI Agent. I'm currently undergoing maintenance to improve my services. Thank you for your patience and understanding!"
35
+ }];
22
36
 
23
- // Add user message to the list
24
- setMessages(prev => [...prev, {
25
- type: "user",
26
- text: userMessage
27
- }]);
28
- try {
29
- // Add placeholder for AI message
30
- setMessages(prev => [...prev, {
37
+ // Base Variables
38
+ const [showModal, setShowModal] = useState("Icon");
39
+ const [input, setInput] = useState('');
40
+ const [messages, setMessages] = useState(defaultMessage);
41
+ const [conversationStartTime, setConversationStartTime] = useState(null);
42
+ const [lastUserMessage, setLastUserMessage] = useState("");
43
+ const [lastMessageId, setLastMessageId] = useState("");
44
+ const [sessionId, setSessionId] = useState(null);
45
+ useEffect(() => {
46
+ const newSessionId = uuid.v4(); // Generate UUID v4
47
+ setSessionId(newSessionId);
48
+ }, []);
49
+ useEffect(() => {
50
+ if (showModal == "Off") {
51
+ setShowModal("Icon");
52
+ }
53
+ }, [uiConfig.showIcon]);
54
+
55
+ // Message UI
56
+ const [typingIndicator, setTypingIndicator] = useState(false);
57
+ const [ghostMessage, setGhostMessage] = useState(false);
58
+ const [ghostCard, setGhostCard] = useState(false);
59
+ const [stopActivated, setStopActivated] = useState(false);
60
+ const [disclaimer, setDisclaimer] = useState(false);
61
+ const [startStreaming, setStartStreaming] = useState(false);
62
+ const stopGenerating = () => {
63
+ setTypingIndicator(false);
64
+ setStopActivated(true);
65
+ };
66
+ function handleSend(input) {
67
+ if (maintenance) {
68
+ setMessages([...messages, {
69
+ type: "user",
70
+ text: input
71
+ }, {
31
72
  type: "ai",
32
- text: ''
73
+ text: "The chat is currently unavailable, please come back later!"
33
74
  }]);
75
+ return;
76
+ }
77
+ if (input.trim() !== "") {
78
+ if (messages.length <= 1) {
79
+ const startTime = new Date().toISOString();
80
+ setConversationStartTime(startTime);
81
+ }
34
82
 
35
- // Simulate response with streaming
36
- const response = await onSendMessage(userMessage, chunk => {
37
- setMessages(prev => {
38
- const newMessages = [...prev];
39
- const lastMessage = newMessages[newMessages.length - 1];
40
- if (lastMessage && lastMessage.type === "ai") {
41
- lastMessage.text += chunk;
42
- }
43
- return newMessages;
44
- });
45
- });
83
+ // Initiate streaming
84
+ setShowModal("ChatWindow");
85
+ setLastUserMessage(input);
86
+ setMessages([...messages, {
87
+ type: "user",
88
+ text: input
89
+ }]);
90
+ setTypingIndicator(true);
91
+ setGhostMessage(true);
92
+ setStartStreaming(true);
93
+ setInput("");
94
+ }
95
+ }
46
96
 
47
- // Finalize AI response
48
- setMessages(prev => {
49
- const newMessages = [...prev];
50
- const lastMessage = newMessages[newMessages.length - 1];
51
- if (lastMessage && lastMessage.type === "ai" && lastMessage.text !== response) {
52
- lastMessage.text = response;
97
+ // After form submission
98
+ function setNextMessage(name) {
99
+ setMessages(prevMessages => {
100
+ const updatedMessages = prevMessages.map((message, index) => {
101
+ if (index === prevMessages.length - 1 && message.form) {
102
+ return {
103
+ ...message,
104
+ form: false
105
+ };
53
106
  }
54
- return newMessages;
107
+ return message;
108
+ });
109
+ const nextMessage = {
110
+ type: "ai",
111
+ text: [`Nice to meet you ${name}. How can I help you today?`]
112
+ };
113
+ return [...updatedMessages, nextMessage];
114
+ });
115
+ }
116
+
117
+ // Confirm Disclaimer
118
+ async function confirmDisclaimer() {
119
+ setDisclaimer(true);
120
+ if (!maintenance) {
121
+ setShowModal("Welcome");
122
+ setMessages(defaultMessage);
123
+ } else {
124
+ setShowModal("ChatWindow");
125
+ setMessages(maintenanceMessage);
126
+ }
127
+ try {
128
+ const response = await axios.post(API_PREFIX + LOGGING_URL + "/log-disclaimer", {
129
+ email: "cristin@instalily.ai"
55
130
  });
56
131
  } catch (error) {
57
- console.error('Error sending message:', error);
132
+ console.error("Error in Log disclaimer:", error);
133
+ }
134
+ }
135
+ function handleButtonClick(buttonText) {
136
+ handleSend(buttonText);
137
+ }
138
+ const [maintenance, setMaintenance] = useState(false);
139
+ const handleClearState = async () => {
140
+ if (!maintenance) {
141
+ setShowModal("Welcome");
142
+ }
143
+ if (messages.length > 1) {
144
+ if (maintenance) {
145
+ setMessages(maintenanceMessage);
146
+ } else {
147
+ setMessages(defaultMessage);
148
+ }
149
+ const newSessionId = uuid.v4();
150
+ setSessionId(newSessionId);
151
+ setTypingIndicator(false);
152
+ setGhostMessage(false);
153
+ /* try {
154
+ const response = await axios.post(API_PREFIX + BASE_URL + "/clear", {
155
+ customer_code: data.customer_code,
156
+ session_id: data.session_id,
157
+ message_id: lastMessageId,
158
+ user_UUID: data.user_UUID,
159
+ });
160
+ console.log(response);
161
+ } catch (error) {
162
+ console.error("Error in Clear:", error);
163
+ } */
58
164
  }
59
165
  };
60
- const onSendMessage = async (message, onStream) => {
61
- try {
62
- if (onStream) {
63
- const words = `You said: ${message}`.split(' ');
64
- for (const word of words) {
65
- await new Promise(resolve => setTimeout(resolve, 100));
66
- onStream(word + ' ');
67
- }
68
- return `You said: ${message}`;
166
+ const [feedback, setFeedback] = useState({});
167
+ async function handleFeedback(feedbackValue, messageId) {
168
+ switchFeedbackOpen(true, messageId, true);
169
+ setFeedback(prevFeedback => {
170
+ const updatedFeedback = {
171
+ ...prevFeedback
172
+ };
173
+ if (!updatedFeedback[messageId]) {
174
+ updatedFeedback[messageId] = 0;
69
175
  }
70
- await new Promise(resolve => setTimeout(resolve, 1000));
71
- return `You said: ${message}`;
176
+ updatedFeedback[messageId] = feedbackValue;
177
+ return updatedFeedback;
178
+ });
179
+ try {
180
+ const response = await axios.post(API_PREFIX + LOGGING_URL + "/feedback", {
181
+ message_id: messageId,
182
+ feedback: feedbackValue
183
+ });
184
+ //console.log(response)
72
185
  } catch (error) {
73
- console.error('Error handling message:', error);
74
- return 'Error processing message';
186
+ console.error("Error in feedback post:", error);
75
187
  }
188
+ }
189
+ const [feedbackOpen, setFeedbackOpen] = useState({});
190
+ const [writeFeedback, setWriteFeedback] = useState("");
191
+ const [writeAnswer, setWriteAnswer] = useState("");
192
+
193
+ // Written Feedback ----------------------------
194
+
195
+ function switchFeedbackOpen(newVal, messageId, resetvalue) {
196
+ console.log(newVal, feedbackOpen[messageId], messageId, resetvalue);
197
+ console.log(feedbackOpen);
198
+ if (newVal != feedbackOpen[messageId]) {
199
+ setWriteFeedback("");
200
+ setWriteAnswer("");
201
+ }
202
+ if (resetvalue) {
203
+ setWriteFeedback("");
204
+ setWriteAnswer("");
205
+ }
206
+ if (feedbackOpen[messageId] == "done") {
207
+ return;
208
+ }
209
+ setFeedbackOpen(prevFeedback => {
210
+ const updatedFeedback = {
211
+ ...prevFeedback
212
+ };
213
+ updatedFeedback[messageId] = newVal;
214
+ return updatedFeedback;
215
+ });
216
+ console.log(feedbackOpen);
217
+ }
218
+ async function handleWrittenFeedback(messageId) {
219
+ if (writeFeedback.trim() !== "" || writeAnswer.trim() !== "") {
220
+ //console.log(messageId, writeFeedback)
221
+ switchFeedbackOpen(-1, messageId, true);
222
+ try {
223
+ const response = await axios.post(API_PREFIX + LOGGING_URL + "/feedback-message", {
224
+ message_id: messageId,
225
+ feedback_message: writeFeedback,
226
+ correct_answer: writeAnswer
227
+ });
228
+ //console.log(response)
229
+ } catch (error) {
230
+ console.error("Error in feedback_message:", error);
231
+ }
232
+ }
233
+ }
234
+ const formatChatHistory = () => {
235
+ // Skip the first message (index 0) which is the welcome message
236
+ return messages.slice(1).map(message => {
237
+ if (Array.isArray(message.text)) {
238
+ return {
239
+ type: message.type,
240
+ content: message.text.join("\n")
241
+ };
242
+ }
243
+ return {
244
+ type: message.type,
245
+ content: message.text
246
+ };
247
+ });
76
248
  };
77
249
  return /*#__PURE__*/React.createElement(AppContext.Provider, {
78
250
  value: {
@@ -81,9 +253,52 @@ export const AppProvider = ({
81
253
  messages,
82
254
  setMessages,
83
255
  handleSend,
84
- onSendMessage,
85
256
  input,
86
- setInput
257
+ setInput,
258
+ defaultMessage,
259
+ typingIndicator,
260
+ setTypingIndicator,
261
+ handleClearState,
262
+ theme,
263
+ handleButtonClick,
264
+ conversationStartTime,
265
+ setConversationStartTime,
266
+ lastUserMessage,
267
+ setLastUserMessage,
268
+ ghostMessage,
269
+ setGhostMessage,
270
+ ghostCard,
271
+ setGhostCard,
272
+ stopActivated,
273
+ setStopActivated,
274
+ disclaimer,
275
+ setDisclaimer,
276
+ startStreaming,
277
+ setStartStreaming,
278
+ maintenance,
279
+ setMaintenance,
280
+ feedback,
281
+ setFeedback,
282
+ handleFeedback,
283
+ feedbackOpen,
284
+ setFeedbackOpen,
285
+ writeFeedback,
286
+ setWriteFeedback,
287
+ writeAnswer,
288
+ setWriteAnswer,
289
+ BASE_URL,
290
+ lastMessageId,
291
+ setLastMessageId,
292
+ onProductCardClick,
293
+ onAddToCartClick,
294
+ data,
295
+ sessionId,
296
+ setSessionId,
297
+ handleWrittenFeedback,
298
+ switchFeedbackOpen,
299
+ confirmDisclaimer,
300
+ formatChatHistory,
301
+ uiConfig
87
302
  }
88
303
  }, children);
89
304
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","useState","useEffect","AppContext","AppProvider","children","showModal","setShowModal","input","setInput","messages","setMessages","type","text","handleSend","trim","userMessage","prev","response","onSendMessage","chunk","newMessages","lastMessage","length","error","console","message","onStream","words","split","word","Promise","resolve","setTimeout","createElement","Provider","value"],"sourceRoot":"../../../src","sources":["contexts/AppContext.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useContext","useState","useEffect","useMemo","uuid","axios","useAsyncStorage","AppContext","AppProvider","data","onProductCardClick","onAddToCartClick","uiConfig","children","theme","userMessage","botMessage","backgroundColor","textColor","textColorSecondary","inlineButtonColor","BASE_URL","LOGGING_URL","API_PREFIX","defaultMessage","type","text","maintenanceMessage","showModal","setShowModal","input","setInput","messages","setMessages","conversationStartTime","setConversationStartTime","lastUserMessage","setLastUserMessage","lastMessageId","setLastMessageId","sessionId","setSessionId","newSessionId","v4","showIcon","typingIndicator","setTypingIndicator","ghostMessage","setGhostMessage","ghostCard","setGhostCard","stopActivated","setStopActivated","disclaimer","setDisclaimer","startStreaming","setStartStreaming","stopGenerating","handleSend","maintenance","trim","length","startTime","Date","toISOString","setNextMessage","name","prevMessages","updatedMessages","map","message","index","form","nextMessage","confirmDisclaimer","response","post","email","error","console","handleButtonClick","buttonText","setMaintenance","handleClearState","feedback","setFeedback","handleFeedback","feedbackValue","messageId","switchFeedbackOpen","prevFeedback","updatedFeedback","message_id","feedbackOpen","setFeedbackOpen","writeFeedback","setWriteFeedback","writeAnswer","setWriteAnswer","newVal","resetvalue","log","handleWrittenFeedback","feedback_message","correct_answer","formatChatHistory","slice","Array","isArray","content","join","createElement","Provider","value"],"sourceRoot":"../../../src","sources":["contexts/AppContext.js"],"mappings":"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","ignoreList":[]}