react-native-srschat 0.1.46 → 0.1.48

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 (69) hide show
  1. package/README.md +14 -3
  2. package/lib/commonjs/components/LoadingTips.js +2 -2
  3. package/lib/commonjs/components/LoadingTips.js.map +1 -1
  4. package/lib/commonjs/components/email.js +6 -3
  5. package/lib/commonjs/components/email.js.map +1 -1
  6. package/lib/commonjs/components/input.js +2 -3
  7. package/lib/commonjs/components/input.js.map +1 -1
  8. package/lib/commonjs/components/productCard.js +125 -32
  9. package/lib/commonjs/components/productCard.js.map +1 -1
  10. package/lib/commonjs/components/progressCircle.js +1 -1
  11. package/lib/commonjs/components/progressCircle.js.map +1 -1
  12. package/lib/commonjs/contexts/AppContext.js +12 -6
  13. package/lib/commonjs/contexts/AppContext.js.map +1 -1
  14. package/lib/commonjs/hooks/Stream.js +2 -1
  15. package/lib/commonjs/hooks/Stream.js.map +1 -1
  16. package/lib/commonjs/layout/ex.js +252 -270
  17. package/lib/commonjs/layout/ex.js.map +1 -1
  18. package/lib/commonjs/layout/icon.js +2 -1
  19. package/lib/commonjs/layout/icon.js.map +1 -1
  20. package/lib/commonjs/layout/welcome.js +6 -5
  21. package/lib/commonjs/layout/welcome.js.map +1 -1
  22. package/lib/commonjs/layout/window.js +38 -10
  23. package/lib/commonjs/layout/window.js.map +1 -1
  24. package/lib/commonjs/utils/storage.js +1 -1
  25. package/lib/module/components/LoadingTips.js +2 -2
  26. package/lib/module/components/LoadingTips.js.map +1 -1
  27. package/lib/module/components/email.js +7 -4
  28. package/lib/module/components/email.js.map +1 -1
  29. package/lib/module/components/input.js +2 -3
  30. package/lib/module/components/input.js.map +1 -1
  31. package/lib/module/components/productCard.js +125 -32
  32. package/lib/module/components/productCard.js.map +1 -1
  33. package/lib/module/components/progressCircle.js +1 -1
  34. package/lib/module/components/progressCircle.js.map +1 -1
  35. package/lib/module/contexts/AppContext.js +12 -6
  36. package/lib/module/contexts/AppContext.js.map +1 -1
  37. package/lib/module/hooks/Stream.js +2 -1
  38. package/lib/module/hooks/Stream.js.map +1 -1
  39. package/lib/module/layout/ex.js +252 -261
  40. package/lib/module/layout/ex.js.map +1 -1
  41. package/lib/module/layout/icon.js +2 -1
  42. package/lib/module/layout/icon.js.map +1 -1
  43. package/lib/module/layout/welcome.js +6 -5
  44. package/lib/module/layout/welcome.js.map +1 -1
  45. package/lib/module/layout/window.js +38 -10
  46. package/lib/module/layout/window.js.map +1 -1
  47. package/lib/module/utils/storage.js +1 -1
  48. package/lib/typescript/components/email.d.ts.map +1 -1
  49. package/lib/typescript/components/productCard.d.ts +2 -1
  50. package/lib/typescript/components/productCard.d.ts.map +1 -1
  51. package/lib/typescript/contexts/AppContext.d.ts.map +1 -1
  52. package/lib/typescript/hooks/Stream.d.ts.map +1 -1
  53. package/lib/typescript/layout/ex.d.ts +0 -2
  54. package/lib/typescript/layout/ex.d.ts.map +1 -1
  55. package/lib/typescript/layout/icon.d.ts.map +1 -1
  56. package/lib/typescript/layout/window.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/src/components/LoadingTips.js +2 -2
  59. package/src/components/email.js +7 -4
  60. package/src/components/input.js +1 -2
  61. package/src/components/productCard.js +132 -33
  62. package/src/components/progressCircle.js +1 -1
  63. package/src/contexts/AppContext.js +13 -6
  64. package/src/hooks/Stream.js +1 -0
  65. package/src/layout/ex.js +250 -249
  66. package/src/layout/icon.js +2 -1
  67. package/src/layout/welcome.js +5 -5
  68. package/src/layout/window.js +33 -6
  69. package/src/utils/storage.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","View","Text","TouchableOpacity","ScrollView","StyleSheet","Ionicons","AppContext","WelcomeInput","ButtonComponent","CloudinaryImage","Welcome","panHandlers","setShowModal","uiConfig","onProductCardClick","onAddToCartClick","handleClick","showIcon","setToggleChat","createElement","style","styles","container","parentContainer","topContainer","topHeader","logoContainer","cldImg","imageStyle","width","height","onPress","collapseButton","name","size","color","blueContainer","welcomeHeader","welcomeBody2","textBeta","bottomContainer","welcomeBody","create","flex","flexGrow","backgroundColor","paddingTop","paddingBottom","flexDirection","alignItems","paddingHorizontal","justifyContent","position","left","top","padding","margin","borderRadius","fontSize","marginBottom","fontWeight","lineHeight","textAlign","marginTop"],"sourceRoot":"../../../src","sources":["layout/welcome.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useContext","View","Text","TouchableOpacity","ScrollView","StyleSheet","Ionicons","AppContext","WelcomeInput","ButtonComponent","CloudinaryImage","Welcome","panHandlers","setShowModal","uiConfig","onProductCardClick","onAddToCartClick","data","handleClick","showIcon","setToggleChat","createElement","style","styles","container","parentContainer","topContainer","topHeader","logoContainer","cldImg","imageStyle","width","height","onPress","collapseButton","name","size","color","blueContainer","welcomeHeader","customer_name","welcomeBody2","textBeta","bottomContainer","welcomeBody","create","flex","flexGrow","backgroundColor","paddingTop","paddingBottom","flexDirection","alignItems","paddingHorizontal","justifyContent","position","left","top","padding","margin","borderRadius","fontSize","marginBottom","fontWeight","lineHeight","textAlign","marginTop"],"sourceRoot":"../../../src","sources":["layout/welcome.js"],"mappings":"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","ignoreList":[]}
@@ -25,10 +25,13 @@ export const ChatWindow = ({
25
25
  onAddToCartClick,
26
26
  uiConfig,
27
27
  ghostCard,
28
- typingIndicator
28
+ typingIndicator,
29
+ feedbackOpen,
30
+ setFeedbackOpen
29
31
  } = useContext(AppContext);
30
32
  const scrollViewRef = useRef(null);
31
33
  const fadeAnim = useRef(new Animated.Value(0.6)).current;
34
+ const [messageCount, setMessageCount] = useState(messages.length);
32
35
  useEffect(() => {
33
36
  if (scrollViewRef.current) {
34
37
  const timeoutId = setTimeout(() => {
@@ -64,6 +67,7 @@ export const ChatWindow = ({
64
67
  ref: scrollViewRef,
65
68
  contentContainerStyle: styles.messagesContent,
66
69
  enableOnAndroid: true,
70
+ enableOnIOS: true,
67
71
  contentInsetAdjustmentBehavior: "never",
68
72
  automaticallyAdjustContentInsets: false,
69
73
  contentInset: {
@@ -71,17 +75,39 @@ export const ChatWindow = ({
71
75
  },
72
76
  keyboardShouldPersistTaps: "handled",
73
77
  showsVerticalScrollIndicator: false,
74
- extraScrollHeight: 0,
75
- onContentSizeChange: () => {
76
- var _scrollViewRef$curren;
77
- (_scrollViewRef$curren = scrollViewRef.current) === null || _scrollViewRef$curren === void 0 || _scrollViewRef$curren.scrollToEnd({
78
- animated: true
79
- });
78
+ extraScrollHeight: 200,
79
+ onContentSizeChange: (contentWidth, contentHeight) => {
80
+ const currentLength = messages.length;
81
+ if (currentLength > messageCount) {
82
+ var _scrollViewRef$curren;
83
+ (_scrollViewRef$curren = scrollViewRef.current) === null || _scrollViewRef$curren === void 0 || _scrollViewRef$curren.scrollToEnd({
84
+ animated: true
85
+ });
86
+ setMessageCount(currentLength);
87
+ } else if (currentLength == messageCount) {
88
+ // Check if *any* value in the feedbackOpen object is true
89
+ const isAnyFeedbackOpen = Object.values(feedbackOpen).some(isOpen => isOpen === true);
90
+ if (isAnyFeedbackOpen) {
91
+ // console.log("A feedback input is open, not scrolling to end.");
92
+ // Do nothing, prevent scrolling
93
+ } else {
94
+ // console.log("No feedback open, scrolling to end.");
95
+ if (typingIndicator) {
96
+ var _scrollViewRef$curren2;
97
+ (_scrollViewRef$curren2 = scrollViewRef.current) === null || _scrollViewRef$curren2 === void 0 || _scrollViewRef$curren2.scrollToEnd({
98
+ animated: true
99
+ });
100
+ }
101
+ }
102
+ // You might still want to update messageCount regardless
103
+ setMessageCount(currentLength); // Decide if this should be inside the else or outside the if/else
104
+ } else if (currentLength < messageCount) {
105
+ setMessageCount(currentLength);
106
+ }
80
107
  },
81
108
  keyboardDismissMode: "none",
82
109
  bounces: false,
83
110
  enableResetScrollToCoords: false,
84
- extraHeight: 0,
85
111
  keyboardOpeningTime: 0
86
112
  }, messages.map((msg, i) => /*#__PURE__*/React.createElement(View, {
87
113
  key: i,
@@ -119,7 +145,8 @@ export const ChatWindow = ({
119
145
  key: index,
120
146
  style: styles.productCardWrapper
121
147
  }, /*#__PURE__*/React.createElement(ProductCard, {
122
- prod: prod
148
+ prod: prod,
149
+ messageId: msg.message_id
123
150
  }))), msg.resource && msg.resource.length > 0 && msg.resource_type == "video" && /*#__PURE__*/React.createElement(TouchableOpacity, {
124
151
  style: styles.resourceButton,
125
152
  onPress: () => openLink(msg.resource)
@@ -185,7 +212,8 @@ const styles = StyleSheet.create({
185
212
  },
186
213
  messagesContent: {
187
214
  padding: 16,
188
- justifyContent: 'flex-end'
215
+ justifyContent: 'flex-end',
216
+ paddingBottom: 300
189
217
  },
190
218
  messageWrapper: {
191
219
  marginBottom: 0
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Animated","Linking","Button","Header","AppContext","Ionicons","KeyboardAwareScrollView","Testing","ChatInput","useWebSocketMessage","ProductCard","Markdown","Feedback","ProgressCircle","ChatWindow","panHandlers","handleSend","messages","input","setInput","ghostMessage","handleButtonClick","onProductCardClick","onAddToCartClick","uiConfig","ghostCard","typingIndicator","scrollViewRef","fadeAnim","Value","current","timeoutId","setTimeout","scrollToEnd","animated","clearTimeout","loop","sequence","timing","toValue","duration","useNativeDriver","start","openLink","url","openURL","createElement","style","styles","container","ref","contentContainerStyle","messagesContent","enableOnAndroid","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","contentInset","bottom","keyboardShouldPersistTaps","showsVerticalScrollIndicator","extraScrollHeight","onContentSizeChange","_scrollViewRef$curren","keyboardDismissMode","bounces","enableResetScrollToCoords","extraHeight","keyboardOpeningTime","map","msg","i","key","messageWrapper","type","messageBubble","userMessage","aiMessage","body","color","fontSize","lineHeight","text","String","message_id","message","messageId","middleMessageBubble","middleMessage","name","size","marginRight","products","length","prod","index","productCardWrapper","resource","resource_type","resourceButton","onPress","resourceText","icon","suggested_questions","Array","isArray","questions","question","suggestedQuestionButton","suggestedQuestionText","ghostMessageContainer","ghostBar","ghostBarShort","opacity","ghostBarLong","ghostBarMedium","ghostCardContainer","ghostSquare","ghostBarsContainer","behavior","OS","keyboardVerticalOffset","width","testButtons","create","flex","padding","justifyContent","marginBottom","paddingHorizontal","borderRadius","alignSelf","backgroundColor","borderTopRightRadius","marginTop","borderWidth","borderColor","paddingVertical","textAlign","borderTopLeftRadius","marginVertical","height","flexDirection","alignItems","aspectRatio","paddingLeft"],"sourceRoot":"../../../src","sources":["layout/window.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Animated","Linking","Button","Header","AppContext","Ionicons","KeyboardAwareScrollView","Testing","ChatInput","useWebSocketMessage","ProductCard","Markdown","Feedback","ProgressCircle","ChatWindow","panHandlers","handleSend","messages","input","setInput","ghostMessage","handleButtonClick","onProductCardClick","onAddToCartClick","uiConfig","ghostCard","typingIndicator","feedbackOpen","setFeedbackOpen","scrollViewRef","fadeAnim","Value","current","messageCount","setMessageCount","length","timeoutId","setTimeout","scrollToEnd","animated","clearTimeout","loop","sequence","timing","toValue","duration","useNativeDriver","start","openLink","url","openURL","createElement","style","styles","container","ref","contentContainerStyle","messagesContent","enableOnAndroid","enableOnIOS","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","contentInset","bottom","keyboardShouldPersistTaps","showsVerticalScrollIndicator","extraScrollHeight","onContentSizeChange","contentWidth","contentHeight","currentLength","_scrollViewRef$curren","isAnyFeedbackOpen","Object","values","some","isOpen","_scrollViewRef$curren2","keyboardDismissMode","bounces","enableResetScrollToCoords","keyboardOpeningTime","map","msg","i","key","messageWrapper","type","messageBubble","userMessage","aiMessage","body","color","fontSize","lineHeight","text","String","message_id","message","messageId","middleMessageBubble","middleMessage","name","size","marginRight","products","prod","index","productCardWrapper","resource","resource_type","resourceButton","onPress","resourceText","icon","suggested_questions","Array","isArray","questions","question","suggestedQuestionButton","suggestedQuestionText","ghostMessageContainer","ghostBar","ghostBarShort","opacity","ghostBarLong","ghostBarMedium","ghostCardContainer","ghostSquare","ghostBarsContainer","behavior","OS","keyboardVerticalOffset","width","testButtons","create","flex","padding","justifyContent","paddingBottom","marginBottom","paddingHorizontal","borderRadius","alignSelf","backgroundColor","borderTopRightRadius","marginTop","borderWidth","borderColor","paddingVertical","textAlign","borderTopLeftRadius","marginVertical","height","flexDirection","alignItems","aspectRatio","paddingLeft"],"sourceRoot":"../../../src","sources":["layout/window.js"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,7 @@ export const defaultState = {
11
11
  startStreaming: false,
12
12
  messages: [{
13
13
  type: "ai",
14
- 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?"
14
+ text: "Hi there 👋 Hi there 👋 I'm your Heritage Pool+ AI Assistant. I'm here to help you with Product and Account information during your online visit. I'm still learning and growing - the more we interact and the more feedback you share, the better I can assist you. How can I help you today?"
15
15
  }],
16
16
  showIcon: true,
17
17
  toggleChat: false,
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/components/email.js"],"names":[],"mappings":"AAiBO;;sBAmKN;;kBApLmD,OAAO"}
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/components/email.js"],"names":[],"mappings":"AAiBO;;sBAsKN;;kBAvL8D,OAAO"}
@@ -1,6 +1,7 @@
1
- export function ProductCard({ prod, onFocusQuantityInput }: {
1
+ export function ProductCard({ prod, onFocusQuantityInput, messageId }: {
2
2
  prod: any;
3
3
  onFocusQuantityInput: any;
4
+ messageId: any;
4
5
  }): React.JSX.Element;
5
6
  import React from "react";
6
7
  //# sourceMappingURL=productCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"productCard.d.ts","sourceRoot":"","sources":["../../../src/components/productCard.js"],"names":[],"mappings":"AAOO;;;sBAqSN;kBA5SsD,OAAO"}
1
+ {"version":3,"file":"productCard.d.ts","sourceRoot":"","sources":["../../../src/components/productCard.js"],"names":[],"mappings":"AAOO;;;;sBA6YN;kBApZsD,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"AAMA,4CAA0C;AAEnC;;;;;;sBA8UN;kBAtV6E,OAAO"}
1
+ {"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"AAMA,4CAA0C;AAEnC;;;;;;sBAqVN;kBA7V6E,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../../src/hooks/Stream.js"],"names":[],"mappings":"AAGA,4CAsRC"}
1
+ {"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../../src/hooks/Stream.js"],"names":[],"mappings":"AAGA,4CAuRC"}
@@ -1,3 +1 @@
1
- export function ChatWindow(): React.JSX.Element;
2
- import React from 'react';
3
1
  //# sourceMappingURL=ex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ex.d.ts","sourceRoot":"","sources":["../../../src/layout/ex.js"],"names":[],"mappings":"AAaO,gDAiIN;kBA9I8D,OAAO"}
1
+ {"version":3,"file":"ex.d.ts","sourceRoot":"","sources":["../../../src/layout/ex.js"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/layout/icon.js"],"names":[],"mappings":"AAMO,8CAgDN;kBAtDiC,OAAO"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/layout/icon.js"],"names":[],"mappings":"AAMO,8CAiDN;kBAvDiC,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/layout/window.js"],"names":[],"mappings":"AAeO;;sBAqJN;kBApK8D,OAAO"}
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/layout/window.js"],"names":[],"mappings":"AAeO;;sBA+KN;kBA9L8D,OAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-srschat",
3
- "version": "0.1.46",
3
+ "version": "0.1.48",
4
4
  "private": false,
5
5
  "description": "A modern, sophisticated chat interface for React Native",
6
6
  "main": "lib/commonjs/index",
@@ -4,11 +4,11 @@ import Ionicons from 'react-native-vector-icons/Ionicons';
4
4
 
5
5
  const tips = [
6
6
  {
7
- text: 'Use 👍👎 next to each response to help us improve Poseidon',
7
+ text: 'Use 👍👎 next to each response to help us improve AI Assistant',
8
8
  icon: ''
9
9
  },
10
10
  {
11
- text: 'Use 🗑️ to clear current chat history and dismiss chat window',
11
+ text: '🗑️ Clear the chat history after each conversation for continued accurate responses',
12
12
  icon: ''
13
13
  },
14
14
  {
@@ -1,4 +1,4 @@
1
- import React, { useState, useContext, useRef } from "react";
1
+ import React, { useState, useContext, useRef, useEffect } from "react";
2
2
  import {
3
3
  View,
4
4
  Text,
@@ -19,7 +19,7 @@ export const EmailForm = ({ panHandlers }) => {
19
19
  const { data, BASE_URL, setShowModal, messages, formatChatHistory, conversationStartTime } = useContext(AppContext);
20
20
  const [subject, setSubject] = useState("");
21
21
  const [message, setMessage] = useState("");
22
- const [userEmail, setUserEmail] = useState("");
22
+ const [userEmail, setUserEmail] = useState(data?.user_email || "");
23
23
  const [branchEmail, setBranchEmail] = useState((data?.branch_email) || "");
24
24
  const [isLoading, setIsLoading] = useState(false);
25
25
  const [error, setError] = useState("");
@@ -38,14 +38,17 @@ export const EmailForm = ({ panHandlers }) => {
38
38
 
39
39
  try {
40
40
  const chatHistory = formatChatHistory();
41
+ const customerName = data?.customer_name || "";
41
42
  const payload = {
42
43
  chat_history: chatHistory,
43
44
  conversation_start_time: conversationStartTime,
44
- customer_name: "",
45
+ customer_name: data?.customer_name || "",
45
46
  branch_email: branchEmail,
46
47
  };
47
48
 
48
49
  const response = await axios.post(`https://${BASE_URL}/compose-email`, payload);
50
+ // Use customer name from data if available, otherwise leave blank
51
+
49
52
  setMessage(response.data.message);
50
53
  setSubject(response.data.subject || "");
51
54
  } catch (error) {
@@ -114,7 +117,7 @@ export const EmailForm = ({ panHandlers }) => {
114
117
  </View>
115
118
 
116
119
  <Text style={styles.infoText}>
117
- Our AI assistant can help draft a professional email based on your chat conversation. The email will capture your main points and maintain a conversational tone. You can review and modify before sending.
120
+ Press "Draft My Email" to generate an email based on your chat conversation. You can review and modify before sending.
118
121
  </Text>
119
122
 
120
123
  <TouchableOpacity style={styles.composeButton} onPress={handleComposeEmail} disabled={isComposing}>
@@ -33,7 +33,7 @@ export const ChatInput = ({ onProductCardClick, onAddToCartClick }) => {
33
33
 
34
34
  return (
35
35
  <>
36
- <Text style={styles.textBeta}>Beta version. Poseidon is learning!</Text>
36
+ <Text style={styles.textBeta}>Beta version. AI Assistant is still learning!</Text>
37
37
  <View style={styles.inputWrapper}>
38
38
  <View style={styles.inputContainer}>
39
39
  <TextInput
@@ -66,7 +66,6 @@ const styles = StyleSheet.create({
66
66
  paddingVertical: 6,
67
67
  borderTopWidth: 1,
68
68
  borderTopColor: 'rgba(0, 0, 0, 0.1)',
69
- paddingBottom: 25,
70
69
  },
71
70
  inputContainer: {
72
71
  flexDirection: 'row',
@@ -5,7 +5,7 @@ import Ionicons from 'react-native-vector-icons/Ionicons';
5
5
  import axios from 'axios';
6
6
 
7
7
 
8
- export const ProductCard = ({ prod, onFocusQuantityInput }) => {
8
+ export const ProductCard = ({ prod, onFocusQuantityInput, messageId }) => {
9
9
  const { onProductCardClick, onAddToCartClick, sessionId, data, ADD_TO_CART_URL } = useContext(AppContext);
10
10
  const [keyboardVisible, setKeyboardVisible] = useState(false);
11
11
 
@@ -18,23 +18,44 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
18
18
  return "EA";
19
19
  });
20
20
 
21
+ // Helper function to get min_pack_qty, defaulting to 1 if not applicable
22
+ const getMinPackQtyForUom = (uomKey) => {
23
+ const minPackStr = prod.inventory_info?.info_by_uom?.[uomKey]?.min_pack_qty;
24
+ if (minPackStr) {
25
+ const minPackNum = parseFloat(minPackStr);
26
+ if (!isNaN(minPackNum) && minPackNum > 1.0) {
27
+ return minPackNum;
28
+ }
29
+ }
30
+ return 1; // Default min pack quantity
31
+ };
32
+
21
33
  const uoms = prod.inventory_info?.info_by_uom
22
34
  ? Object.keys(prod.inventory_info.info_by_uom)
23
35
  : ["EA"];
36
+
24
37
  const uomInfo = prod.inventory_info?.info_by_uom?.[selectedUom] || {};
25
-
26
38
  const grossPrice = uomInfo.gross_price || 0;
27
39
  const netPrice = uomInfo.net_price || 0;
28
40
  const isOnSale = uomInfo.is_on_sale || false;
29
41
  const discountsArray = Array.isArray(uomInfo.discounts) ? uomInfo.discounts : [];
30
42
  const discountsString = uomInfo.discounts ? uomInfo.discounts : "";
31
-
32
43
 
33
-
34
- const maxQuantity = Math.floor(prod.inventory_info?.info_by_uom?.EA?.quantity_available || 0);
44
+ // maxQuantity is for display purposes only now
45
+ const maxQuantity = Math.floor(uomInfo.quantity_available || 0);
35
46
  const valid = prod.inventory_info?.is_valid || false;
36
- const inStock = maxQuantity > 0;
37
- const [quantity, setQuantity] = useState(valid && inStock ? 1 : 0);
47
+ // inStock is for display purposes or if specific logic still needs it, but not for quantity restriction
48
+ const inStock = maxQuantity > 0;
49
+
50
+ const currentMinPackQtyForSelectedUom = getMinPackQtyForUom(selectedUom);
51
+
52
+ const [quantity, setQuantity] = useState(() => {
53
+ if (valid) {
54
+ // Initial quantity is min pack, not limited by maxQuantity
55
+ return currentMinPackQtyForSelectedUom;
56
+ }
57
+ return 0;
58
+ });
38
59
 
39
60
  // Add keyboard listeners to detect when keyboard appears/disappears
40
61
  useEffect(() => {
@@ -62,30 +83,98 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
62
83
  };
63
84
  }, []);
64
85
 
86
+ // Called on every keystroke in the quantity input
65
87
  const handleQuantityChange = (text) => {
66
- const value = parseInt(text) || 0;
67
- if (value >= 0 && value <= maxQuantity) {
68
- setQuantity(value);
88
+ const rawValue = text.trim();
89
+ if (rawValue === "") {
90
+ setQuantity(0);
91
+ return;
92
+ }
93
+ const numericValue = parseInt(rawValue, 10);
94
+ if (!isNaN(numericValue) && numericValue >= 0) {
95
+ setQuantity(numericValue);
96
+ } else {
97
+ setQuantity(0);
69
98
  }
70
99
  };
71
100
 
72
- const incrementQuantity = () => {
73
- if (quantity < maxQuantity) {
74
- setQuantity(prevQuantity => prevQuantity + 1);
101
+ // Called when the quantity input loses focus (onEndEditing)
102
+ const handleQuantityBlur = () => {
103
+ const currentQuantityFromState = quantity;
104
+ const uom = selectedUom;
105
+ const minPack = getMinPackQtyForUom(uom);
106
+ const isProdValid = prod.inventory_info?.is_valid || false;
107
+
108
+ if (!isProdValid) {
109
+ if (quantity !== 0) setQuantity(0);
110
+ return;
111
+ }
112
+
113
+ if (currentQuantityFromState === 0) {
114
+ if (quantity !== 0) setQuantity(0);
115
+ return;
116
+ }
117
+
118
+ let adjustedValue;
119
+ if (minPack <= 1) {
120
+ adjustedValue = currentQuantityFromState;
121
+ } else {
122
+ adjustedValue = Math.round(currentQuantityFromState / minPack) * minPack;
123
+ if (currentQuantityFromState > 0 && adjustedValue === 0) {
124
+ adjustedValue = minPack;
125
+ }
126
+ }
127
+
128
+ const finalQuantity = Math.max(0, adjustedValue);
129
+ if (quantity !== finalQuantity) {
130
+ setQuantity(finalQuantity);
75
131
  }
76
132
  };
77
133
 
134
+ const incrementQuantity = () => {
135
+ const uomForCalc = selectedUom;
136
+ const minPackForUom = getMinPackQtyForUom(uomForCalc);
137
+
138
+ setQuantity(prevQuantity => {
139
+ let newQuantity;
140
+ if (prevQuantity === 0 && minPackForUom > 0) {
141
+ newQuantity = minPackForUom;
142
+ } else {
143
+ newQuantity = prevQuantity + minPackForUom;
144
+ }
145
+
146
+ return newQuantity;
147
+ });
148
+ };
149
+
78
150
  const decrementQuantity = () => {
79
- if (quantity > 0) {
80
- setQuantity(prevQuantity => prevQuantity - 1);
81
- }
151
+ const uomForCalc = selectedUom;
152
+ const minPackForUom = getMinPackQtyForUom(uomForCalc);
153
+
154
+ setQuantity(prevQuantity => {
155
+ if (prevQuantity === 0) return 0; // Cannot go below 0
156
+
157
+ let newQuantity = prevQuantity - minPackForUom;
158
+
159
+ if (newQuantity < 0) {
160
+ newQuantity = 0;
161
+ }
162
+
163
+ // If new quantity is positive but less than minPackForUom, it should be 0
164
+ // (as any purchase must be in multiples of minPackForUom or 0)
165
+ if (newQuantity > 0 && newQuantity < minPackForUom) {
166
+ newQuantity = 0;
167
+ }
168
+
169
+ return newQuantity;
170
+ });
82
171
  };
83
172
 
84
173
  const handleAddToCart = () => {
85
174
  //call add to cart logging endpoint
86
175
  try{
87
176
  const discount = discountsString ? discountsString : discountsArray.join(", ");
88
- payload = {
177
+ const payload = {
89
178
  product_name: prod.product_details.product_name,
90
179
  time_stamp: new Date().toISOString(),
91
180
  user_id: data.user_id,
@@ -93,7 +182,8 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
93
182
  quantity: quantity,
94
183
  uom: selectedUom,
95
184
  is_sale: isOnSale,
96
- discount_string: discount
185
+ discount_string: discount,
186
+ message_id: messageId
97
187
  }
98
188
  console.log("add to cart payload", payload)
99
189
  axios.post(ADD_TO_CART_URL, payload)
@@ -122,8 +212,19 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
122
212
  onProductCardClick(prodWithSku);
123
213
  };
124
214
 
125
- const handleUomChange = (value) => {
126
- setSelectedUom(value);
215
+ const handleUomChange = (newUom) => {
216
+ const newMinPack = getMinPackQtyForUom(newUom);
217
+ const isProductCurrentlyValid = prod.inventory_info?.is_valid || false;
218
+
219
+ setSelectedUom(newUom);
220
+
221
+ let qtyToSet;
222
+ if (isProductCurrentlyValid) { // Only depends on validity now
223
+ qtyToSet = newMinPack;
224
+ } else {
225
+ qtyToSet = 0;
226
+ }
227
+ setQuantity(qtyToSet);
127
228
  };
128
229
 
129
230
  const openUomPicker = () => {
@@ -217,7 +318,7 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
217
318
  ))}
218
319
  </View>
219
320
  )}
220
- {discountsString && (
321
+ {discountsString == 0 && discountsString !== "" && (
221
322
  <Text style={styles.discountText}>{discountsString}</Text>
222
323
  )}
223
324
 
@@ -237,7 +338,9 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
237
338
  ) : null}
238
339
 
239
340
  <View style={styles.quantityContainer}>
240
- <Text style={styles.inputLabel}>Qty</Text>
341
+ <Text style={styles.inputLabel}>
342
+ Qty {currentMinPackQtyForSelectedUom > 1 ? `(steps of ${currentMinPackQtyForSelectedUom})` : ''}
343
+ </Text>
241
344
  <View style={styles.quantityInputContainer}>
242
345
  <TouchableOpacity
243
346
  style={styles.quantityButton}
@@ -254,9 +357,10 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
254
357
  <TextInput
255
358
  value={quantity.toString()}
256
359
  onChangeText={handleQuantityChange}
360
+ onEndEditing={handleQuantityBlur}
257
361
  keyboardType="numeric"
258
362
  style={styles.quantityInput}
259
- editable={valid && inStock}
363
+ editable={valid}
260
364
  underlineColorAndroid="transparent"
261
365
  autoCorrect={false}
262
366
  autoCapitalize="none"
@@ -269,12 +373,12 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
269
373
  <TouchableOpacity
270
374
  style={styles.quantityButton}
271
375
  onPress={incrementQuantity}
272
- disabled={!valid || quantity >= maxQuantity}
376
+ disabled={!valid}
273
377
  >
274
378
  <Ionicons
275
379
  name="add"
276
380
  size={18}
277
- color={valid && quantity < maxQuantity ? "#367cb6" : "rgba(0, 0, 0, 0.23)"}
381
+ color={valid ? "#367cb6" : "rgba(0, 0, 0, 0.23)"}
278
382
  />
279
383
  </TouchableOpacity>
280
384
  </View>
@@ -284,13 +388,13 @@ export const ProductCard = ({ prod, onFocusQuantityInput }) => {
284
388
  {/* Add to Cart Button on a new line */}
285
389
  <TouchableOpacity
286
390
  onPress={handleAddToCart}
287
- disabled={!valid || !inStock || quantity === 0}
391
+ disabled={!valid || quantity === 0}
288
392
  style={[
289
393
  styles.addToCartButton,
290
- valid && inStock && quantity > 0 ? styles.activeButton : styles.disabledButton
394
+ valid && quantity > 0 ? styles.activeButton : styles.disabledButton
291
395
  ]}
292
396
  >
293
- <Text style={[styles.buttonText, valid && inStock && quantity > 0 ? styles.activeText : styles.disabledText]}>
397
+ <Text style={[styles.buttonText, valid && quantity > 0 ? styles.activeText : styles.disabledText]}>
294
398
  Add to Cart
295
399
  </Text>
296
400
  </TouchableOpacity>
@@ -399,11 +503,6 @@ const styles = StyleSheet.create({
399
503
  fontSize: 13,
400
504
  color: "#e41e31",
401
505
  fontWeight: "500",
402
- // backgroundColor: "#f0f7ff",
403
- // borderWidth: 1,
404
- // borderColor: "#bae0ff",
405
- // borderRadius: 4,
406
- // padding: 3,
407
506
  marginTop: 3,
408
507
  },
409
508
  inputRow: {
@@ -27,7 +27,7 @@ export const ProgressCircle = () => {
27
27
 
28
28
  return (
29
29
  <>
30
- <Text style={styles.textBeta}>Beta version. Poseidon is learning!</Text>
30
+ <Text style={styles.textBeta}>Beta version. AI Assistant is still learning!</Text>
31
31
  <View style={styles.container}>
32
32
  <LoadingTips />
33
33
  <Pressable style={styles.circleContainer} onPress={stopGenerating}>