react-native-srschat 0.1.77 → 0.1.79
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/email.js +35 -19
- package/lib/commonjs/components/email.js.map +1 -1
- package/lib/commonjs/components/productCard.js +13 -3
- package/lib/commonjs/components/productCard.js.map +1 -1
- package/lib/commonjs/contexts/AppContext.js +36 -10
- package/lib/commonjs/contexts/AppContext.js.map +1 -1
- package/lib/commonjs/utils/audioRecorder.js +8 -5
- package/lib/commonjs/utils/audioRecorder.js.map +1 -1
- package/lib/commonjs/utils/textToSpeech.js +24 -15
- package/lib/commonjs/utils/textToSpeech.js.map +1 -1
- package/lib/module/components/email.js +35 -19
- package/lib/module/components/email.js.map +1 -1
- package/lib/module/components/productCard.js +13 -3
- package/lib/module/components/productCard.js.map +1 -1
- package/lib/module/contexts/AppContext.js +36 -10
- package/lib/module/contexts/AppContext.js.map +1 -1
- package/lib/module/utils/audioRecorder.js +8 -5
- package/lib/module/utils/audioRecorder.js.map +1 -1
- package/lib/module/utils/textToSpeech.js +24 -15
- package/lib/module/utils/textToSpeech.js.map +1 -1
- package/lib/typescript/components/email.d.ts.map +1 -1
- package/lib/typescript/components/productCard.d.ts.map +1 -1
- package/lib/typescript/contexts/AppContext.d.ts.map +1 -1
- package/lib/typescript/utils/audioRecorder.d.ts.map +1 -1
- package/lib/typescript/utils/textToSpeech.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/components/email.js +37 -17
- package/src/components/productCard.js +14 -3
- package/src/contexts/AppContext.js +38 -12
- package/src/utils/audioRecorder.js +9 -6
- package/src/utils/textToSpeech.js +27 -16
|
@@ -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","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
|
+
{"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,6 +1,5 @@
|
|
|
1
1
|
// textToSpeech.js
|
|
2
2
|
import React, { useState, useContext } from 'react';
|
|
3
|
-
import axios from 'axios';
|
|
4
3
|
import Sound from 'react-native-sound';
|
|
5
4
|
import { AppContext } from '../contexts/AppContext';
|
|
6
5
|
export const TextToSpeech = async inputText => {
|
|
@@ -8,25 +7,35 @@ export const TextToSpeech = async inputText => {
|
|
|
8
7
|
data
|
|
9
8
|
} = useContext(AppContext);
|
|
10
9
|
try {
|
|
11
|
-
const response = await
|
|
12
|
-
|
|
13
|
-
voice: 'alloy',
|
|
14
|
-
input: inputText
|
|
15
|
-
}, {
|
|
10
|
+
const response = await fetch('https://api.openai.com/v1/audio/speech', {
|
|
11
|
+
method: 'POST',
|
|
16
12
|
headers: {
|
|
17
13
|
Authorization: `Bearer ${data.openai_key}`,
|
|
18
14
|
'Content-Type': 'application/json'
|
|
19
15
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
console.error('Error playing sound:', error);
|
|
26
|
-
} else {
|
|
27
|
-
sound.play();
|
|
28
|
-
}
|
|
16
|
+
body: JSON.stringify({
|
|
17
|
+
model: 'tts-1',
|
|
18
|
+
voice: 'alloy',
|
|
19
|
+
input: inputText
|
|
20
|
+
})
|
|
29
21
|
});
|
|
22
|
+
if (!response.ok) {
|
|
23
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
24
|
+
}
|
|
25
|
+
const blob = await response.blob();
|
|
26
|
+
const reader = new FileReader();
|
|
27
|
+
reader.onloadend = () => {
|
|
28
|
+
const base64data = reader.result.split(',')[1];
|
|
29
|
+
const audioFile = `data:audio/mp3;base64,${base64data}`;
|
|
30
|
+
const sound = new Sound(audioFile, null, error => {
|
|
31
|
+
if (error) {
|
|
32
|
+
console.error('Error playing sound:', error);
|
|
33
|
+
} else {
|
|
34
|
+
sound.play();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
reader.readAsDataURL(blob);
|
|
30
39
|
} catch (error) {
|
|
31
40
|
console.error('Error generating TTS:', error);
|
|
32
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useContext","
|
|
1
|
+
{"version":3,"names":["React","useState","useContext","Sound","AppContext","TextToSpeech","inputText","data","response","fetch","method","headers","Authorization","openai_key","body","JSON","stringify","model","voice","input","ok","Error","status","blob","reader","FileReader","onloadend","base64data","result","split","audioFile","sound","error","console","play","readAsDataURL"],"sourceRoot":"../../../src","sources":["utils/textToSpeech.js"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAGC,QAAQ,EAAEC,UAAU,QAAO,OAAO;AACjD,OAAOC,KAAK,MAAM,oBAAoB;AACtC,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,OAAO,MAAMC,YAAY,GAAG,MAAOC,SAAS,IAAK;EAC/C,MAAM;IAAEC;EAAK,CAAC,GAAGL,UAAU,CAACE,UAAU,CAAC;EACvC,IAAI;IACF,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CAC1B,wCAAwC,EACxC;MACEC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACPC,aAAa,EAAE,UAAUL,IAAI,CAACM,UAAU,EAAE;QAC1C,cAAc,EAAE;MAClB,CAAC;MACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QACnBC,KAAK,EAAE,OAAO;QACdC,KAAK,EAAE,OAAO;QACdC,KAAK,EAAEb;MACT,CAAC;IACH,CACF,CAAC;IAED,IAAI,CAACE,QAAQ,CAACY,EAAE,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,uBAAuBb,QAAQ,CAACc,MAAM,EAAE,CAAC;IAC3D;IAEA,MAAMC,IAAI,GAAG,MAAMf,QAAQ,CAACe,IAAI,CAAC,CAAC;IAClC,MAAMC,MAAM,GAAG,IAAIC,UAAU,CAAC,CAAC;IAE/BD,MAAM,CAACE,SAAS,GAAG,MAAM;MACvB,MAAMC,UAAU,GAAGH,MAAM,CAACI,MAAM,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAC9C,MAAMC,SAAS,GAAG,yBAAyBH,UAAU,EAAE;MAEvD,MAAMI,KAAK,GAAG,IAAI5B,KAAK,CAAC2B,SAAS,EAAE,IAAI,EAAGE,KAAK,IAAK;QAClD,IAAIA,KAAK,EAAE;UACTC,OAAO,CAACD,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC;QAC9C,CAAC,MAAM;UACLD,KAAK,CAACG,IAAI,CAAC,CAAC;QACd;MACF,CAAC,CAAC;IACJ,CAAC;IAEDV,MAAM,CAACW,aAAa,CAACZ,IAAI,CAAC;EAC5B,CAAC,CAAC,OAAOS,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;EAC/C;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/components/email.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/components/email.js"],"names":[],"mappings":"AAgBO;;sBA0WN;;kBA1X8D,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"productCard.d.ts","sourceRoot":"","sources":["../../../src/components/productCard.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"productCard.d.ts","sourceRoot":"","sources":["../../../src/components/productCard.js"],"names":[],"mappings":"AAMO;;;;6BAohBN;kBA1hBsD,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"AAKA,4CAA0C;AAEnC;;;;;;sBAsbN;kBA7b6E,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAqBA,4EAGC;AAGD,mFAmHC;
|
|
1
|
+
{"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAqBA,4EAGC;AAGD,mFAmHC;AAkFD,mDAwCC;AAED,+CAoDC;AAED,iDASC;AAED,2DA2BC;AAqDD,iDAMC;AAED,gCAgBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textToSpeech.d.ts","sourceRoot":"","sources":["../../../src/utils/textToSpeech.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"textToSpeech.d.ts","sourceRoot":"","sources":["../../../src/utils/textToSpeech.js"],"names":[],"mappings":"AAKO,4DA2CN"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-srschat",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.79",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A modern, sophisticated chat interface for React Native",
|
|
6
6
|
"main": "lib/commonjs/index",
|
|
@@ -28,36 +28,37 @@
|
|
|
28
28
|
"react-native": "*"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
+
"@babel/core": "^7.25.2",
|
|
31
32
|
"@babel/plugin-transform-runtime": "^7.22.15",
|
|
33
|
+
"@babel/preset-env": "^7.25.3",
|
|
32
34
|
"@babel/preset-react": "^7.20.0",
|
|
33
35
|
"@babel/preset-typescript": "^7.20.0",
|
|
34
|
-
"@react-native/codegen": "^0.73.3",
|
|
35
|
-
"@types/minimatch": "^5.1.2",
|
|
36
|
-
"@types/react": "^19.0.0",
|
|
37
|
-
"@types/react-native-vector-icons": "^6.4.18",
|
|
38
|
-
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
|
39
|
-
"@typescript-eslint/parser": "^5.0.0",
|
|
40
|
-
"eslint-plugin-react": "^7.0.0",
|
|
41
|
-
"eslint-plugin-react-native": "^4.0.0",
|
|
42
|
-
"metro-react-native-babel-preset": "^0.77.0",
|
|
43
|
-
"react": "18.3.1",
|
|
44
|
-
"react-native": "^0.76.7",
|
|
45
|
-
"react-native-builder-bob": "^0.20.0",
|
|
46
|
-
"@babel/core": "^7.25.2",
|
|
47
|
-
"@babel/preset-env": "^7.25.3",
|
|
48
36
|
"@babel/runtime": "^7.25.0",
|
|
49
37
|
"@react-native-community/cli": "18.0.0",
|
|
50
38
|
"@react-native-community/cli-platform-android": "18.0.0",
|
|
51
39
|
"@react-native-community/cli-platform-ios": "18.0.0",
|
|
52
40
|
"@react-native/babel-preset": "0.79.6",
|
|
41
|
+
"@react-native/codegen": "^0.73.3",
|
|
53
42
|
"@react-native/eslint-config": "0.79.6",
|
|
54
43
|
"@react-native/metro-config": "0.79.6",
|
|
55
44
|
"@react-native/typescript-config": "0.79.6",
|
|
56
45
|
"@types/jest": "^29.5.13",
|
|
46
|
+
"@types/minimatch": "^5.1.2",
|
|
47
|
+
"@types/react": "^19.0.0",
|
|
48
|
+
"@types/react-native-vector-icons": "^6.4.18",
|
|
57
49
|
"@types/react-test-renderer": "^19.0.0",
|
|
50
|
+
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
|
51
|
+
"@typescript-eslint/parser": "^5.0.0",
|
|
58
52
|
"eslint": "^8.19.0",
|
|
53
|
+
"eslint-plugin-react": "^7.0.0",
|
|
54
|
+
"eslint-plugin-react-native": "^4.0.0",
|
|
59
55
|
"jest": "^29.6.3",
|
|
56
|
+
"metro-react-native-babel-preset": "^0.77.0",
|
|
57
|
+
"patch-package": "^8.0.1",
|
|
60
58
|
"prettier": "2.8.8",
|
|
59
|
+
"react": "18.3.1",
|
|
60
|
+
"react-native": "^0.76.7",
|
|
61
|
+
"react-native-builder-bob": "^0.20.0",
|
|
61
62
|
"react-test-renderer": "19.0.0",
|
|
62
63
|
"typescript": "5.0.4"
|
|
63
64
|
},
|
|
@@ -74,8 +75,7 @@
|
|
|
74
75
|
"@react-native-community/audio-toolkit": "^2.0.3",
|
|
75
76
|
"@react-native-picker/picker": "^2.11.0",
|
|
76
77
|
"@react-native-voice/voice": "^3.2.4",
|
|
77
|
-
"
|
|
78
|
-
"cloudinary-react-native": "^0.3.1",
|
|
78
|
+
"cloudinary-react-native": "^1.3.0",
|
|
79
79
|
"react-native-audio-recorder-player": "^3.6.12",
|
|
80
80
|
"react-native-eject": "^1.0.2",
|
|
81
81
|
"react-native-keyboard-aware-scroll-view": "^0.9.5",
|
package/src/components/email.js
CHANGED
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
findNodeHandle
|
|
11
11
|
} from "react-native";
|
|
12
12
|
import Ionicons from "react-native-vector-icons/Ionicons";
|
|
13
|
-
import axios from "axios";
|
|
14
13
|
import { AppContext } from "../contexts/AppContext";
|
|
15
14
|
import { Header } from "./header";
|
|
16
15
|
import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view";
|
|
@@ -169,9 +168,21 @@ export const EmailForm = ({ panHandlers }) => {
|
|
|
169
168
|
|
|
170
169
|
console.log("Email composition request payload:", payload);
|
|
171
170
|
|
|
172
|
-
const response = await
|
|
171
|
+
const response = await fetch(`${API_PREFIX}${BASE_URL}/compose-email`, {
|
|
172
|
+
method: 'POST',
|
|
173
|
+
headers: {
|
|
174
|
+
'Content-Type': 'application/json',
|
|
175
|
+
},
|
|
176
|
+
body: JSON.stringify(payload),
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
if (!response.ok) {
|
|
180
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const responseData = await response.json();
|
|
173
184
|
|
|
174
|
-
const textToType =
|
|
185
|
+
const textToType = responseData.message;
|
|
175
186
|
let currentText = "";
|
|
176
187
|
const typingSpeed = 10;
|
|
177
188
|
|
|
@@ -181,16 +192,15 @@ export const EmailForm = ({ panHandlers }) => {
|
|
|
181
192
|
setMessage(currentText);
|
|
182
193
|
}
|
|
183
194
|
|
|
184
|
-
setSubject(
|
|
185
|
-
setUserEmail(
|
|
195
|
+
setSubject(responseData.subject || "");
|
|
196
|
+
setUserEmail(responseData.user_email || userEmail || "");
|
|
186
197
|
// Don't overwrite branch email if response doesn't have it
|
|
187
|
-
if (
|
|
188
|
-
setBranchEmail(
|
|
198
|
+
if (responseData.branch_email) {
|
|
199
|
+
setBranchEmail(responseData.branch_email);
|
|
189
200
|
}
|
|
190
201
|
|
|
191
202
|
} catch (error) {
|
|
192
203
|
setError(
|
|
193
|
-
error.response?.data?.message ||
|
|
194
204
|
error.message ||
|
|
195
205
|
"Failed to compose email"
|
|
196
206
|
);
|
|
@@ -216,15 +226,26 @@ export const EmailForm = ({ panHandlers }) => {
|
|
|
216
226
|
const chatHistory = formatChatHistory().map(({ variant_type, ...rest }) => rest);
|
|
217
227
|
console.log("Sending email with chat history:", chatHistory);
|
|
218
228
|
|
|
219
|
-
await
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
229
|
+
const response = await fetch(`https://${BASE_URL}/send-email`, {
|
|
230
|
+
method: 'POST',
|
|
231
|
+
headers: {
|
|
232
|
+
'Content-Type': 'application/json',
|
|
233
|
+
},
|
|
234
|
+
body: JSON.stringify({
|
|
235
|
+
user_email: userEmail,
|
|
236
|
+
subject,
|
|
237
|
+
message,
|
|
238
|
+
chat_history: chatHistory,
|
|
239
|
+
conversation_start_time: conversationStartTime,
|
|
240
|
+
customer_name: data?.customer_name,
|
|
241
|
+
branch_email: branchEmail || data?.branch_email || ""
|
|
242
|
+
}),
|
|
227
243
|
});
|
|
244
|
+
|
|
245
|
+
if (!response.ok) {
|
|
246
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
247
|
+
}
|
|
248
|
+
|
|
228
249
|
setSuccess(true);
|
|
229
250
|
setTimeout(() => {
|
|
230
251
|
setSuccess(false);
|
|
@@ -232,7 +253,6 @@ export const EmailForm = ({ panHandlers }) => {
|
|
|
232
253
|
}, 2000);
|
|
233
254
|
} catch (error) {
|
|
234
255
|
setError(
|
|
235
|
-
error.response?.data?.message ||
|
|
236
256
|
error.message ||
|
|
237
257
|
"Failed to send email",
|
|
238
258
|
);
|
|
@@ -2,7 +2,6 @@ import React, { useState, useContext, useEffect } from "react";
|
|
|
2
2
|
import { View, Text, Image, TouchableOpacity, TextInput, StyleSheet, Platform, Keyboard, ActionSheetIOS, Alert } from "react-native";
|
|
3
3
|
import { AppContext } from "../contexts/AppContext";
|
|
4
4
|
import Ionicons from 'react-native-vector-icons/Ionicons';
|
|
5
|
-
import axios from 'axios';
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
export const ProductCard = ({ prod, onFocusQuantityInput, messageId }) => {
|
|
@@ -273,9 +272,21 @@ export const ProductCard = ({ prod, onFocusQuantityInput, messageId }) => {
|
|
|
273
272
|
message_id: messageId
|
|
274
273
|
};
|
|
275
274
|
console.log("add to cart payload", payload);
|
|
276
|
-
|
|
275
|
+
fetch(ADD_TO_CART_URL, {
|
|
276
|
+
method: 'POST',
|
|
277
|
+
headers: {
|
|
278
|
+
'Content-Type': 'application/json',
|
|
279
|
+
},
|
|
280
|
+
body: JSON.stringify(payload),
|
|
281
|
+
})
|
|
277
282
|
.then(response => {
|
|
278
|
-
|
|
283
|
+
if (!response.ok) {
|
|
284
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
285
|
+
}
|
|
286
|
+
return response.json();
|
|
287
|
+
})
|
|
288
|
+
.then(data => {
|
|
289
|
+
console.log("log addToCart response", data);
|
|
279
290
|
})
|
|
280
291
|
.catch(error => {
|
|
281
292
|
console.log("log addToCart error", error);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React, {createContext, useContext, useState, useEffect, useMemo } from "react";
|
|
2
2
|
import uuid from 'react-native-uuid';
|
|
3
|
-
import axios from "axios";
|
|
4
3
|
// import useAsyncStorage from '../hooks/useAsyncStorage';
|
|
5
4
|
import { loadChat, updateChat, defaultState } from '../utils/storage';
|
|
6
5
|
|
|
@@ -243,10 +242,19 @@ export const AppProvider = ({ data, onProductCardClick, onAddToCartClick, uiConf
|
|
|
243
242
|
setMessages(maintenanceMessage);
|
|
244
243
|
}
|
|
245
244
|
try {
|
|
246
|
-
const response = await
|
|
245
|
+
const response = await fetch(
|
|
247
246
|
API_PREFIX + LOGGING_URL + "/log-disclaimer",
|
|
248
|
-
{
|
|
247
|
+
{
|
|
248
|
+
method: 'POST',
|
|
249
|
+
headers: {
|
|
250
|
+
'Content-Type': 'application/json',
|
|
251
|
+
},
|
|
252
|
+
body: JSON.stringify({ email: data.user_email }),
|
|
253
|
+
}
|
|
249
254
|
);
|
|
255
|
+
if (!response.ok) {
|
|
256
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
257
|
+
}
|
|
250
258
|
} catch (error) {
|
|
251
259
|
console.error("Error in Log disclaimer:", error);
|
|
252
260
|
}
|
|
@@ -302,13 +310,22 @@ export const AppProvider = ({ data, onProductCardClick, onAddToCartClick, uiConf
|
|
|
302
310
|
return updatedFeedback;
|
|
303
311
|
});
|
|
304
312
|
try {
|
|
305
|
-
const response = await
|
|
313
|
+
const response = await fetch(
|
|
306
314
|
API_PREFIX + LOGGING_URL + "/feedback",
|
|
307
315
|
{
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
316
|
+
method: 'POST',
|
|
317
|
+
headers: {
|
|
318
|
+
'Content-Type': 'application/json',
|
|
319
|
+
},
|
|
320
|
+
body: JSON.stringify({
|
|
321
|
+
message_id: messageId,
|
|
322
|
+
feedback: feedbackValue,
|
|
323
|
+
}),
|
|
324
|
+
}
|
|
311
325
|
);
|
|
326
|
+
if (!response.ok) {
|
|
327
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
328
|
+
}
|
|
312
329
|
//console.log(response)
|
|
313
330
|
} catch (error) {
|
|
314
331
|
console.error("Error in feedback post:", error);
|
|
@@ -348,14 +365,23 @@ export const AppProvider = ({ data, onProductCardClick, onAddToCartClick, uiConf
|
|
|
348
365
|
//console.log(messageId, writeFeedback)
|
|
349
366
|
switchFeedbackOpen(-1, messageId, true);
|
|
350
367
|
try {
|
|
351
|
-
const response = await
|
|
368
|
+
const response = await fetch(
|
|
352
369
|
API_PREFIX + LOGGING_URL + "/feedback-message",
|
|
353
370
|
{
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
371
|
+
method: 'POST',
|
|
372
|
+
headers: {
|
|
373
|
+
'Content-Type': 'application/json',
|
|
374
|
+
},
|
|
375
|
+
body: JSON.stringify({
|
|
376
|
+
message_id: messageId,
|
|
377
|
+
feedback_message: writeFeedback,
|
|
378
|
+
correct_answer: writeAnswer,
|
|
379
|
+
}),
|
|
380
|
+
}
|
|
358
381
|
);
|
|
382
|
+
if (!response.ok) {
|
|
383
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
384
|
+
}
|
|
359
385
|
//console.log(response)
|
|
360
386
|
} catch (error) {
|
|
361
387
|
console.error("Error in feedback_message:", error);
|
|
@@ -9,7 +9,7 @@ let partialResultCallback = null;
|
|
|
9
9
|
let silenceTimer = null;
|
|
10
10
|
let isCurrentlyRecording = false;
|
|
11
11
|
let finalResult = '';
|
|
12
|
-
const SILENCE_DURATION =
|
|
12
|
+
const SILENCE_DURATION = 5000; // 5 seconds of silence before stopping
|
|
13
13
|
|
|
14
14
|
// Add this constant for AsyncStorage key
|
|
15
15
|
const PERMISSION_STORAGE_KEY = '@voice_permission_status';
|
|
@@ -161,8 +161,9 @@ const handleFinalResult = async () => {
|
|
|
161
161
|
|
|
162
162
|
// Call the result callback first to update UI (button state)
|
|
163
163
|
// This ensures the button changes from stop to microphone immediately
|
|
164
|
-
if
|
|
165
|
-
|
|
164
|
+
// Always call callback even if result is empty to prevent UI getting stuck
|
|
165
|
+
if (resultCallback) {
|
|
166
|
+
resultCallback(finalResult || '', null);
|
|
166
167
|
}
|
|
167
168
|
|
|
168
169
|
// Then stop recording
|
|
@@ -283,15 +284,17 @@ export async function stopRecording() {
|
|
|
283
284
|
// Platform-specific stop
|
|
284
285
|
try {
|
|
285
286
|
if (Platform.OS === 'ios') {
|
|
286
|
-
// iOS: Use cancel for immediate termination
|
|
287
|
+
// iOS: Use cancel for immediate termination - wait 1 second first
|
|
288
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
287
289
|
await Voice.cancel();
|
|
288
290
|
console.log('Voice.cancel() completed for iOS');
|
|
289
291
|
} else {
|
|
290
|
-
// Android: Use stop
|
|
292
|
+
// Android: Use stop - wait 1 second first
|
|
293
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
291
294
|
await Voice.stop();
|
|
292
295
|
console.log('Voice.stop() completed for Android');
|
|
293
296
|
}
|
|
294
|
-
|
|
297
|
+
|
|
295
298
|
// Small delay
|
|
296
299
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
297
300
|
} catch (error) {
|
|
@@ -1,37 +1,48 @@
|
|
|
1
1
|
// textToSpeech.js
|
|
2
2
|
import React,{ useState, useContext} from 'react';
|
|
3
|
-
import axios from 'axios';
|
|
4
3
|
import Sound from 'react-native-sound';
|
|
5
4
|
import { AppContext } from '../contexts/AppContext';
|
|
6
5
|
|
|
7
6
|
export const TextToSpeech = async (inputText) => {
|
|
8
7
|
const { data } = useContext(AppContext)
|
|
9
8
|
try {
|
|
10
|
-
const response = await
|
|
9
|
+
const response = await fetch(
|
|
11
10
|
'https://api.openai.com/v1/audio/speech',
|
|
12
11
|
{
|
|
13
|
-
|
|
14
|
-
voice: 'alloy',
|
|
15
|
-
input: inputText,
|
|
16
|
-
},
|
|
17
|
-
{
|
|
12
|
+
method: 'POST',
|
|
18
13
|
headers: {
|
|
19
14
|
Authorization: `Bearer ${data.openai_key}`,
|
|
20
15
|
'Content-Type': 'application/json',
|
|
21
16
|
},
|
|
22
|
-
|
|
17
|
+
body: JSON.stringify({
|
|
18
|
+
model: 'tts-1',
|
|
19
|
+
voice: 'alloy',
|
|
20
|
+
input: inputText,
|
|
21
|
+
}),
|
|
23
22
|
}
|
|
24
23
|
);
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
27
|
+
}
|
|
27
28
|
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
29
|
+
const blob = await response.blob();
|
|
30
|
+
const reader = new FileReader();
|
|
31
|
+
|
|
32
|
+
reader.onloadend = () => {
|
|
33
|
+
const base64data = reader.result.split(',')[1];
|
|
34
|
+
const audioFile = `data:audio/mp3;base64,${base64data}`;
|
|
35
|
+
|
|
36
|
+
const sound = new Sound(audioFile, null, (error) => {
|
|
37
|
+
if (error) {
|
|
38
|
+
console.error('Error playing sound:', error);
|
|
39
|
+
} else {
|
|
40
|
+
sound.play();
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
reader.readAsDataURL(blob);
|
|
35
46
|
} catch (error) {
|
|
36
47
|
console.error('Error generating TTS:', error);
|
|
37
48
|
}
|