react-native-srschat 0.1.69 → 0.1.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/LoadingTips.js +1 -2
- package/lib/commonjs/components/LoadingTips.js.map +1 -1
- package/lib/commonjs/components/email.js +58 -55
- package/lib/commonjs/components/email.js.map +1 -1
- package/lib/commonjs/components/feedback.js +1 -2
- package/lib/commonjs/components/feedback.js.map +1 -1
- package/lib/commonjs/components/header.js +1 -2
- package/lib/commonjs/components/header.js.map +1 -1
- package/lib/commonjs/components/input.js +1 -2
- package/lib/commonjs/components/input.js.map +1 -1
- package/lib/commonjs/components/productCard.js +47 -5
- package/lib/commonjs/components/productCard.js.map +1 -1
- package/lib/commonjs/components/progressCircle.js +1 -2
- package/lib/commonjs/components/progressCircle.js.map +1 -1
- package/lib/commonjs/components/voice.js +1 -2
- package/lib/commonjs/components/voice.js.map +1 -1
- package/lib/commonjs/components/welcomeButton.js +1 -2
- package/lib/commonjs/components/welcomeButton.js.map +1 -1
- package/lib/commonjs/components/welcomeInput.js +1 -2
- package/lib/commonjs/components/welcomeInput.js.map +1 -1
- package/lib/commonjs/contexts/AppContext.js +1 -2
- package/lib/commonjs/contexts/AppContext.js.map +1 -1
- package/lib/commonjs/hooks/Stream.js +1 -2
- package/lib/commonjs/hooks/Stream.js.map +1 -1
- package/lib/commonjs/layout/disclaimer.js +14 -10
- package/lib/commonjs/layout/disclaimer.js.map +1 -1
- package/lib/commonjs/layout/icon.js +1 -2
- package/lib/commonjs/layout/icon.js.map +1 -1
- package/lib/commonjs/layout/layout.js +1 -2
- package/lib/commonjs/layout/layout.js.map +1 -1
- package/lib/commonjs/layout/welcome.js +1 -2
- package/lib/commonjs/layout/welcome.js.map +1 -1
- package/lib/commonjs/layout/window.js +1 -2
- package/lib/commonjs/layout/window.js.map +1 -1
- package/lib/commonjs/utils/audioRecorder.js +11 -5
- package/lib/commonjs/utils/audioRecorder.js.map +1 -1
- package/lib/commonjs/utils/cloudinary.js +1 -2
- package/lib/commonjs/utils/cloudinary.js.map +1 -1
- package/lib/commonjs/utils/textToSpeech.js +1 -2
- package/lib/commonjs/utils/textToSpeech.js.map +1 -1
- package/lib/module/components/email.js +57 -53
- package/lib/module/components/email.js.map +1 -1
- package/lib/module/components/productCard.js +46 -3
- package/lib/module/components/productCard.js.map +1 -1
- package/lib/module/layout/disclaimer.js +13 -8
- package/lib/module/layout/disclaimer.js.map +1 -1
- package/lib/module/utils/audioRecorder.js +11 -5
- package/lib/module/utils/audioRecorder.js.map +1 -1
- package/lib/typescript/components/email.d.ts.map +1 -1
- package/lib/typescript/components/productCard.d.ts +1 -1
- package/lib/typescript/components/productCard.d.ts.map +1 -1
- package/lib/typescript/utils/audioRecorder.d.ts.map +1 -1
- package/package.json +26 -25
- package/src/components/email.js +61 -54
- package/src/components/productCard.js +45 -3
- package/src/layout/disclaimer.js +6 -8
- package/src/utils/audioRecorder.js +18 -13
|
@@ -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;;
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/components/email.js"],"names":[],"mappings":"AAiBO;;sBAqVN;;kBAtW8D,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"productCard.d.ts","sourceRoot":"","sources":["../../../src/components/productCard.js"],"names":[],"mappings":"AAOO;;;;
|
|
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,
|
|
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.
|
|
3
|
+
"version": "0.1.71",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A modern, sophisticated chat interface for React Native",
|
|
6
6
|
"main": "lib/commonjs/index",
|
|
@@ -28,27 +28,28 @@
|
|
|
28
28
|
"react-native": "*"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@babel/core": "^7.
|
|
31
|
+
"@babel/core": "^7.25.2",
|
|
32
32
|
"@babel/plugin-transform-runtime": "^7.22.15",
|
|
33
|
-
"@babel/preset-env": "^7.
|
|
34
|
-
"@babel/preset-react": "^7.
|
|
33
|
+
"@babel/preset-env": "^7.25.3",
|
|
34
|
+
"@babel/preset-react": "^7.14.5",
|
|
35
35
|
"@babel/preset-typescript": "^7.20.0",
|
|
36
|
-
"@react-native/babel-preset": "
|
|
37
|
-
"@react-native/codegen": "^0.
|
|
38
|
-
"@react-native/eslint-config": "^0.
|
|
39
|
-
"@types/react": "
|
|
36
|
+
"@react-native/babel-preset": "0.79.6",
|
|
37
|
+
"@react-native/codegen": "^0.82.0",
|
|
38
|
+
"@react-native/eslint-config": "^0.82.0",
|
|
39
|
+
"@types/react": "19.0.14",
|
|
40
40
|
"@types/react-native": "~0.72.8",
|
|
41
41
|
"@types/react-native-vector-icons": "^6.4.18",
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
43
|
-
"@typescript-eslint/parser": "^
|
|
44
|
-
"eslint": "
|
|
45
|
-
"eslint-plugin-react": "
|
|
46
|
-
"eslint-plugin-react-native": "
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^6.9.1",
|
|
43
|
+
"@typescript-eslint/parser": "^6.9.1",
|
|
44
|
+
"eslint": "~8.48.0",
|
|
45
|
+
"eslint-plugin-react": "7.32.2",
|
|
46
|
+
"eslint-plugin-react-native": "4.1.0",
|
|
47
47
|
"metro-react-native-babel-preset": "^0.77.0",
|
|
48
|
-
"react": "
|
|
49
|
-
"react-native": "^0.
|
|
48
|
+
"react": "^19.0.0",
|
|
49
|
+
"react-native": "^0.79.6",
|
|
50
50
|
"react-native-builder-bob": "^0.20.0",
|
|
51
|
-
"typescript": "
|
|
51
|
+
"typescript": "5.9.2",
|
|
52
|
+
"minimatch": "^9.0.0"
|
|
52
53
|
},
|
|
53
54
|
"repository": {
|
|
54
55
|
"type": "git",
|
|
@@ -60,22 +61,22 @@
|
|
|
60
61
|
"homepage": "https://github.com/alxkai/react-native-srschat#readme",
|
|
61
62
|
"dependencies": {
|
|
62
63
|
"@babel/runtime": "^7.20.0",
|
|
63
|
-
"@react-native-async-storage/async-storage": "^2.
|
|
64
|
-
"@react-native-community/audio-toolkit": "^2.0.3",
|
|
64
|
+
"@react-native-async-storage/async-storage": "^2.2.0",
|
|
65
65
|
"@react-native-community/cli": "^15.0.0",
|
|
66
|
-
"@react-native-picker/picker": "^2.11.
|
|
67
|
-
"@react-native-voice/voice": "^3.
|
|
68
|
-
"axios": "
|
|
66
|
+
"@react-native-picker/picker": "^2.11.4",
|
|
67
|
+
"@react-native-voice/voice": "^3.1.5",
|
|
68
|
+
"axios": "1.6.5",
|
|
69
69
|
"cloudinary-react-native": "^0.3.0",
|
|
70
|
-
"react-native-audio-recorder-player": "^3.6.
|
|
70
|
+
"react-native-audio-recorder-player": "^3.6.14",
|
|
71
71
|
"react-native-eject": "^1.0.2",
|
|
72
72
|
"react-native-keyboard-aware-scroll-view": "^0.9.5",
|
|
73
73
|
"react-native-markdown-display": "^7.0.2",
|
|
74
74
|
"react-native-permissions": "^5.2.6",
|
|
75
75
|
"react-native-uuid": "^2.0.3",
|
|
76
|
-
"react-native-
|
|
77
|
-
"react-native-
|
|
78
|
-
"react-native-
|
|
76
|
+
"@react-native-community/cli-platform-android": "18.0.0",
|
|
77
|
+
"react-native-vector-icons": "10.0.3",
|
|
78
|
+
"react-native-video": "^6.17.0",
|
|
79
|
+
"react-native-web": "0.20.0"
|
|
79
80
|
},
|
|
80
81
|
"react-native-builder-bob": {
|
|
81
82
|
"source": "src",
|
package/src/components/email.js
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
168
|
-
|
|
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
|
-
|
|
176
|
-
|
|
177
|
-
setError(emailError);
|
|
178
|
-
setSuccess(false);
|
|
203
|
+
if (!userEmail || !subject || !message) {
|
|
204
|
+
setError("Please fill in all fields");
|
|
179
205
|
return;
|
|
180
206
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
-
|
|
194
|
-
|
|
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
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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).
|
|
364
|
-
<Text style={styles.salePrice} allowFontScaling={false}>${Number(netPrice).
|
|
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).
|
|
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
|
)}
|
package/src/layout/disclaimer.js
CHANGED
|
@@ -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=
|
|
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
|
-
|
|
57
|
-
|
|
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
|
-
//
|
|
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);
|