react-native-srschat 0.1.69 → 0.1.70

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.
@@ -50,10 +50,9 @@ export async function initVoice(onResult, onPartialResult = null) {
50
50
  console.log('onSpeechStart: ', e);
51
51
  isCurrentlyRecording = true;
52
52
  finalResult = '';
53
- if (silenceTimer) {
54
- clearTimeout(silenceTimer);
55
- silenceTimer = null;
56
- }
53
+
54
+ // Start silence timer immediately when recording begins
55
+ handleSilenceDetection();
57
56
  };
58
57
  Voice.onSpeechRecognized = e => {
59
58
  console.log('onSpeechRecognized: ', e);
@@ -140,11 +139,14 @@ const handleSilenceDetection = () => {
140
139
  const handleFinalResult = async () => {
141
140
  if (!isCurrentlyRecording) return;
142
141
  console.log('handleFinalResult called with:', finalResult);
142
+
143
+ // Call the result callback first to update UI (button state)
144
+ // This ensures the button changes from stop to microphone immediately
143
145
  if (finalResult && resultCallback) {
144
146
  resultCallback(finalResult, null);
145
147
  }
146
148
 
147
- // Stop recording first
149
+ // Then stop recording
148
150
  await stopRecording();
149
151
  };
150
152
  const cleanupVoiceSession = async () => {
@@ -221,6 +223,10 @@ export async function startRecording() {
221
223
  await Voice.start('en-US');
222
224
  console.log('Voice.start() completed');
223
225
  isCurrentlyRecording = true;
226
+
227
+ // Start silence detection timer immediately
228
+ // This ensures recording stops after 3 seconds even if no speech is detected
229
+ handleSilenceDetection();
224
230
  return true;
225
231
  } catch (error) {
226
232
  console.error('Error starting voice recognition:', error);
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Voice","check","PERMISSIONS","request","RESULTS","resultCallback","partialResultCallback","silenceTimer","isCurrentlyRecording","finalResult","SILENCE_DURATION","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","onPartialResult","console","error","isAvailable","removeAllListeners","onSpeechStart","e","log","clearTimeout","onSpeechRecognized","isFinal","handleFinalResult","onSpeechEnd","onSpeechError","_e$error","_e$error2","code","toString","msg","message","OS","includes","cleanupVoiceSession","onSpeechResults","value","length","handleSilenceDetection","onSpeechPartialResults","onSpeechVolumeChanged","setTimeout","stopRecording","isRecognizing","cancel","stop","Promise","resolve","destroy","startRecording","hasPermission","requestAudioPermission","start","cancelRecording","storedPermission","permissionResult","requestAndroidPermission","requestIOSPermission","micPermission","ANDROID","RECORD_AUDIO","GRANTED","services","getSpeechRecognitionServices","IOS","MICROPHONE","speechPermission","SPEECH_RECOGNITION","resetStoredPermission","cleanup","then","catch"],"sourceRoot":"../../../src","sources":["utils/audioRecorder.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","Voice","check","PERMISSIONS","request","RESULTS","resultCallback","partialResultCallback","silenceTimer","isCurrentlyRecording","finalResult","SILENCE_DURATION","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","onPartialResult","console","error","isAvailable","removeAllListeners","onSpeechStart","e","log","handleSilenceDetection","onSpeechRecognized","isFinal","handleFinalResult","onSpeechEnd","clearTimeout","onSpeechError","_e$error","_e$error2","code","toString","msg","message","OS","includes","cleanupVoiceSession","onSpeechResults","value","length","onSpeechPartialResults","onSpeechVolumeChanged","setTimeout","stopRecording","isRecognizing","cancel","stop","Promise","resolve","destroy","startRecording","hasPermission","requestAudioPermission","start","cancelRecording","storedPermission","permissionResult","requestAndroidPermission","requestIOSPermission","micPermission","ANDROID","RECORD_AUDIO","GRANTED","services","getSpeechRecognitionServices","IOS","MICROPHONE","speechPermission","SPEECH_RECOGNITION","resetStoredPermission","cleanup","then","catch"],"sourceRoot":"../../../src","sources":["utils/audioRecorder.js"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/components/email.js"],"names":[],"mappings":"AAiBO;;sBA4UN;;kBA7V8D,OAAO"}
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/components/email.js"],"names":[],"mappings":"AAiBO;;sBAqVN;;kBAtW8D,OAAO"}
@@ -2,6 +2,6 @@ export function ProductCard({ prod, onFocusQuantityInput, messageId }: {
2
2
  prod: any;
3
3
  onFocusQuantityInput: any;
4
4
  messageId: any;
5
- }): React.JSX.Element;
5
+ }): React.JSX.Element | null;
6
6
  import React from "react";
7
7
  //# sourceMappingURL=productCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"productCard.d.ts","sourceRoot":"","sources":["../../../src/components/productCard.js"],"names":[],"mappings":"AAOO;;;;sBA8dN;kBAresD,OAAO"}
1
+ {"version":3,"file":"productCard.d.ts","sourceRoot":"","sources":["../../../src/components/productCard.js"],"names":[],"mappings":"AAOO;;;;6BAwgBN;kBA/gBsD,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAqBA,4EAGC;AAGD,mFAqHC;AA+ED,mDAmCC;AAED,+CAkDC;AAED,iDASC;AAED,2DA2BC;AAqDD,iDAMC;AAED,gCAgBC"}
1
+ {"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAqBA,4EAGC;AAGD,mFAmHC;AAiFD,mDAwCC;AAED,+CAkDC;AAED,iDASC;AAED,2DA2BC;AAqDD,iDAMC;AAED,gCAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-srschat",
3
- "version": "0.1.69",
3
+ "version": "0.1.70",
4
4
  "private": false,
5
5
  "description": "A modern, sophisticated chat interface for React Native",
6
6
  "main": "lib/commonjs/index",
@@ -16,11 +16,12 @@ import { Header } from "./header";
16
16
  import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view";
17
17
 
18
18
  export const EmailForm = ({ panHandlers }) => {
19
- const { data, BASE_URL, setShowModal, formatChatHistory, conversationStartTime, sessionId } = useContext(AppContext);
19
+ const { data, BASE_URL, setShowModal, formatChatHistory, conversationStartTime, sessionId, theme } = useContext(AppContext);
20
+ const API_PREFIX = "https://";
20
21
  const [subject, setSubject] = useState("");
21
22
  const [message, setMessage] = useState("");
22
- const [userEmail, setUserEmail] = useState(data?.user_email || "");
23
- const [branchEmail, setBranchEmail] = useState((data?.branch_email) || "");
23
+ const [userEmail, setUserEmail] = useState(data?.user_email || ""); // Sender's email
24
+ const [branchEmail, setBranchEmail] = useState((data?.branch_email) || ""); // Recipient's email
24
25
  const [isLoading, setIsLoading] = useState(false);
25
26
  const [error, setError] = useState("");
26
27
  const [success, setSuccess] = useState(false);
@@ -152,81 +153,89 @@ export const EmailForm = ({ panHandlers }) => {
152
153
  const handleComposeEmail = async () => {
153
154
  setIsComposing(true);
154
155
  setError("");
155
- setSuccess(false);
156
156
 
157
157
  try {
158
- const chatHistory = formatChatHistory();
159
- const payload = buildEmailRequestPayload(chatHistory);
158
+ const chatHistory = formatChatHistory().map(({ variant_type, ...rest }) => rest);
159
+
160
+ const payload = {
161
+ chat_history: chatHistory,
162
+ conversation_start_time: conversationStartTime || null,
163
+ customer_name: data?.customer_name || null,
164
+ user_id: data?.user_id || null,
165
+ session_id: data?.session_id || data?.session || sessionId || null,
166
+ user_email: data?.user_email || "",
167
+ branch_email: data?.branch_email || ""
168
+ };
169
+
170
+ console.log("Email composition request payload:", payload);
171
+
172
+ const response = await axios.post(`${API_PREFIX}${BASE_URL}/compose-email`, payload);
173
+
174
+ const textToType = response.data.message;
175
+ let currentText = "";
176
+ const typingSpeed = 10;
177
+
178
+ for (let i = 0; i < textToType.length; i++) {
179
+ await new Promise(resolve => setTimeout(resolve, typingSpeed));
180
+ currentText += textToType[i];
181
+ setMessage(currentText);
182
+ }
160
183
 
161
- const response = await axios.post(`https://${BASE_URL}/compose-email`, payload);
162
- // Use customer name from data if available, otherwise leave blank
163
-
164
- setMessage(response.data.message);
165
184
  setSubject(response.data.subject || "");
185
+ setUserEmail(response.data.user_email || userEmail || "");
186
+ // Don't overwrite branch email if response doesn't have it
187
+ if (response.data.branch_email) {
188
+ setBranchEmail(response.data.branch_email);
189
+ }
190
+
166
191
  } catch (error) {
167
- setError(error.response?.data?.message || "Failed to compose email");
168
- setSuccess(false);
192
+ setError(
193
+ error.response?.data?.message ||
194
+ error.message ||
195
+ "Failed to compose email"
196
+ );
169
197
  } finally {
170
198
  setIsComposing(false);
171
199
  }
172
200
  };
173
201
 
174
202
  const handleSubmit = async () => {
175
- const emailError = validateEmail(userEmail);
176
- if (emailError) {
177
- setError(emailError);
178
- setSuccess(false);
203
+ if (!userEmail || !subject || !message) {
204
+ setError("Please fill in all fields");
179
205
  return;
180
206
  }
181
- if (!subject || !message) {
182
- setError("Please fill in all fields");
183
- setSuccess(false);
207
+
208
+ if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(userEmail)) {
209
+ setError("Please enter a valid email address");
184
210
  return;
185
211
  }
186
212
 
187
213
  setIsLoading(true);
188
- setError("");
189
- setSuccess(false);
190
214
 
191
215
  try {
192
- const chatHistory = formatChatHistory();
193
- const payload = {
194
- ...buildEmailRequestPayload(chatHistory),
216
+ const chatHistory = formatChatHistory().map(({ variant_type, ...rest }) => rest);
217
+ console.log("Sending email with chat history:", chatHistory);
218
+
219
+ await axios.post(`https://${BASE_URL}/send-email`, {
195
220
  user_email: userEmail,
196
221
  subject,
197
222
  message,
198
- branch_email: branchEmail,
199
- customer_name: data?.customer_name ?? null,
200
- conversation_start_time: conversationStartTime ?? null,
201
- };
202
-
203
- await axios.post(`https://${BASE_URL}/send-email`, payload);
204
-
223
+ chat_history: chatHistory,
224
+ conversation_start_time: conversationStartTime,
225
+ customer_name: data?.customer_name,
226
+ branch_email: branchEmail || data?.branch_email || ""
227
+ });
205
228
  setSuccess(true);
206
- setError("");
207
229
  setTimeout(() => {
208
230
  setSuccess(false);
209
231
  setShowModal("ChatWindow");
210
232
  }, 2000);
211
233
  } catch (error) {
212
- console.error("Email send error:", {
213
- status: error.response?.status,
214
- statusText: error.response?.statusText,
215
- errorMessage: error.response?.data?.message,
216
- errorDetails: error.response?.data,
217
- requestPayload: {
218
- user_email: userEmail,
219
- subject,
220
- message_length: message?.length,
221
- branch_email: branchEmail,
222
- customer_name: data?.customer_name,
223
- conversation_start_time: conversationStartTime,
224
- session_id: data?.session_id || data?.session || sessionId,
225
- chat_history_length: chatHistory?.length
226
- }
227
- });
228
- setError(error.response?.data?.message || "Failed to send email");
229
- setSuccess(false);
234
+ setError(
235
+ error.response?.data?.message ||
236
+ error.message ||
237
+ "Failed to send email",
238
+ );
230
239
  } finally {
231
240
  setIsLoading(false);
232
241
  }
@@ -257,7 +266,7 @@ export const EmailForm = ({ panHandlers }) => {
257
266
  Press "Draft My Email" to generate an email based on your chat conversation. You can review and modify before sending.
258
267
  </Text>
259
268
 
260
- <TouchableOpacity style={styles.composeButton} onPress={handleComposeEmail} disabled={isComposing}>
269
+ <TouchableOpacity style={[styles.composeButton, { backgroundColor: theme.primaryColor }]} onPress={handleComposeEmail} disabled={isComposing}>
261
270
  {isComposing ? (
262
271
  <ActivityIndicator size="small" color="#FFFFFF" />
263
272
  ) : (
@@ -341,7 +350,7 @@ export const EmailForm = ({ panHandlers }) => {
341
350
  {error ? <Text style={styles.errorText}>{error}</Text> : null}
342
351
  {success ? <Text style={styles.successText}>Email sent successfully!</Text> : null}
343
352
 
344
- <TouchableOpacity style={styles.sendButton} onPress={handleSubmit} disabled={isLoading}>
353
+ <TouchableOpacity style={[styles.sendButton, { backgroundColor: theme.primaryColor }]} onPress={handleSubmit} disabled={isLoading}>
345
354
  {isLoading ? <ActivityIndicator size="small" color="#FFFFFF" /> : <Text style={styles.buttonText}>Send Email</Text>}
346
355
  </TouchableOpacity>
347
356
  </KeyboardAwareScrollView>
@@ -405,14 +414,12 @@ const styles = StyleSheet.create({
405
414
  color: "#000",
406
415
  },
407
416
  composeButton: {
408
- backgroundColor: "#367CB6",
409
417
  borderRadius: 5,
410
418
  padding: 12,
411
419
  alignItems: "center",
412
420
  marginBottom: 20,
413
421
  },
414
422
  sendButton: {
415
- backgroundColor: "#367CB6",
416
423
  borderRadius: 5,
417
424
  padding: 12,
418
425
  alignItems: "center",
@@ -9,6 +9,48 @@ 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
 
12
+ // Validation: Check for incomplete product information
13
+ const hasValidProductDetails = () => {
14
+ if (!prod || !prod.product_details) {
15
+ return false;
16
+ }
17
+
18
+ const details = prod.product_details;
19
+ if (!details.product_name || !details.part_number || !details.image_url) {
20
+ return false;
21
+ }
22
+
23
+ return true;
24
+ };
25
+
26
+ const hasValidInventoryInfo = () => {
27
+ if (!prod.inventory_info || !prod.inventory_info.info_by_uom) {
28
+ return false;
29
+ }
30
+
31
+ const uomData = prod.inventory_info.info_by_uom;
32
+ const uomKeys = Object.keys(uomData);
33
+
34
+ if (uomKeys.length === 0) {
35
+ return false;
36
+ }
37
+
38
+ // Check if at least one UOM has valid pricing
39
+ const hasValidPricing = uomKeys.some(uom => {
40
+ const uomInfo = uomData[uom];
41
+ return uomInfo &&
42
+ typeof uomInfo.gross_price === 'number' &&
43
+ uomInfo.gross_price > 0;
44
+ });
45
+
46
+ return hasValidPricing;
47
+ };
48
+
49
+ // Return null if product lacks essential information
50
+ if (!hasValidProductDetails() || !hasValidInventoryInfo()) {
51
+ return null;
52
+ }
53
+
12
54
  const [selectedUom, setSelectedUom] = useState(() => {
13
55
  if (prod.inventory_info?.info_by_uom) {
14
56
  const availableUoms = Object.keys(prod.inventory_info.info_by_uom);
@@ -360,13 +402,13 @@ export const ProductCard = ({ prod, onFocusQuantityInput, messageId }) => {
360
402
  <View style={styles.priceContainer}>
361
403
  {isOnSale ? (
362
404
  <>
363
- <Text style={styles.originalPrice} allowFontScaling={false}>${Number(grossPrice).toFixed(2)}</Text>
364
- <Text style={styles.salePrice} allowFontScaling={false}>${Number(netPrice).toFixed(2)}</Text>
405
+ <Text style={styles.originalPrice} allowFontScaling={false}>${Number(grossPrice).toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2})}</Text>
406
+ <Text style={styles.salePrice} allowFontScaling={false}>${Number(netPrice).toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2})}</Text>
365
407
  <Text style={styles.perUnit}>/ {selectedUom}</Text>
366
408
  </>
367
409
  ) : (
368
410
  <>
369
- <Text style={styles.price} allowFontScaling={false}>${Number(grossPrice).toFixed(2)}</Text>
411
+ <Text style={styles.price} allowFontScaling={false}>${Number(grossPrice).toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2})}</Text>
370
412
  <Text style={styles.perUnit}>/ {selectedUom}</Text>
371
413
  </>
372
414
  )}
@@ -6,7 +6,7 @@ import { Header } from '../components/header';
6
6
  import { Testing } from "../components/testing";
7
7
 
8
8
  export const Disclaimer = ({ panHandlers }) => {
9
- const { setShowModal, confirmDisclaimer, uiConfig, onAddToCartClick, onProductCardClick } = useContext(AppContext);
9
+ const { setShowModal, confirmDisclaimer, uiConfig, onAddToCartClick, onProductCardClick, theme } = useContext(AppContext);
10
10
 
11
11
  const sections = [
12
12
  {
@@ -47,7 +47,7 @@ export const Disclaimer = ({ panHandlers }) => {
47
47
  </Text>
48
48
 
49
49
  {sections.map((section, index) => (
50
- <Paragraph key={index} title={section.title} details={section.details} icon={section.icon} />
50
+ <Paragraph key={index} title={section.title} details={section.details} icon={section.icon} theme={theme} />
51
51
  ))}
52
52
 
53
53
  <Text style={styles.disclaimerText}>
@@ -61,7 +61,7 @@ export const Disclaimer = ({ panHandlers }) => {
61
61
  <Testing onProductCardClick={onProductCardClick} onAddToCartClick={onAddToCartClick} />
62
62
  }
63
63
  <View style={styles.confirmArea}>
64
- <TouchableOpacity style={styles.button} onPress={confirmDisclaimer}>
64
+ <TouchableOpacity style={[styles.button, { backgroundColor: theme.primaryColor }]} onPress={confirmDisclaimer}>
65
65
  <Text style={styles.buttonText}>Confirm</Text>
66
66
  </TouchableOpacity>
67
67
  <Text style={styles.confirmText}>
@@ -72,11 +72,11 @@ export const Disclaimer = ({ panHandlers }) => {
72
72
  );
73
73
  };
74
74
 
75
- const Paragraph = ({ title, details, icon }) => {
75
+ const Paragraph = ({ title, details, icon, theme }) => {
76
76
  return (
77
77
  <View style={styles.sectionContainer}>
78
- <View style={styles.iconContainer}>
79
- <Feather name={icon} size={18} color="#1976d2" />
78
+ <View style={[styles.iconContainer, { backgroundColor: `${theme.primaryColor}20` }]}>
79
+ <Feather name={icon} size={18} color={theme?.primaryColor || '#1976d2'} />
80
80
  </View>
81
81
  <View style={styles.textContainer}>
82
82
  <Text style={styles.sectionTitle}>{title}</Text>
@@ -135,7 +135,6 @@ const styles = StyleSheet.create({
135
135
  elevation: 1,
136
136
  },
137
137
  iconContainer: {
138
- backgroundColor: "#bbdefb",
139
138
  borderRadius: 10,
140
139
  padding: 10,
141
140
  alignItems: "center",
@@ -165,7 +164,6 @@ const styles = StyleSheet.create({
165
164
  paddingBottom: 25,
166
165
  },
167
166
  button: {
168
- backgroundColor: "#367CB6",
169
167
  width: "100%",
170
168
  paddingVertical: 12,
171
169
  borderRadius: 5,
@@ -52,11 +52,9 @@ export async function initVoice(onResult, onPartialResult = null) {
52
52
  console.log('onSpeechStart: ', e);
53
53
  isCurrentlyRecording = true;
54
54
  finalResult = '';
55
-
56
- if (silenceTimer) {
57
- clearTimeout(silenceTimer);
58
- silenceTimer = null;
59
- }
55
+
56
+ // Start silence timer immediately when recording begins
57
+ handleSilenceDetection();
60
58
  };
61
59
 
62
60
  Voice.onSpeechRecognized = (e) => {
@@ -158,14 +156,16 @@ const handleSilenceDetection = () => {
158
156
 
159
157
  const handleFinalResult = async () => {
160
158
  if (!isCurrentlyRecording) return;
161
-
159
+
162
160
  console.log('handleFinalResult called with:', finalResult);
163
-
161
+
162
+ // Call the result callback first to update UI (button state)
163
+ // This ensures the button changes from stop to microphone immediately
164
164
  if (finalResult && resultCallback) {
165
165
  resultCallback(finalResult, null);
166
166
  }
167
-
168
- // Stop recording first
167
+
168
+ // Then stop recording
169
169
  await stopRecording();
170
170
  };
171
171
 
@@ -224,7 +224,7 @@ const cleanupVoiceSession = async () => {
224
224
  export async function startRecording() {
225
225
  try {
226
226
  console.log('startRecording called');
227
-
227
+
228
228
  // Check if Voice module is available
229
229
  if (!Voice) {
230
230
  console.error('Voice module is not available');
@@ -233,10 +233,10 @@ export async function startRecording() {
233
233
 
234
234
  // Ensure cleanup of any existing session
235
235
  await cleanupVoiceSession();
236
-
236
+
237
237
  // Small delay to ensure cleanup is complete
238
238
  await new Promise(resolve => setTimeout(resolve, 200));
239
-
239
+
240
240
  const hasPermission = await requestAudioPermission();
241
241
  if (!hasPermission) {
242
242
  console.error('No permission to record audio');
@@ -245,11 +245,16 @@ export async function startRecording() {
245
245
 
246
246
  // Re-initialize listeners each time for iOS stability
247
247
  await initVoice(resultCallback, partialResultCallback);
248
-
248
+
249
249
  // Start recognition
250
250
  await Voice.start('en-US');
251
251
  console.log('Voice.start() completed');
252
252
  isCurrentlyRecording = true;
253
+
254
+ // Start silence detection timer immediately
255
+ // This ensures recording stops after 3 seconds even if no speech is detected
256
+ handleSilenceDetection();
257
+
253
258
  return true;
254
259
  } catch (error) {
255
260
  console.error('Error starting voice recognition:', error);