react-native-srschat 0.1.59 → 0.1.60
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/input.js +28 -1
- package/lib/commonjs/components/input.js.map +1 -1
- package/lib/commonjs/components/voice.js +23 -3
- package/lib/commonjs/components/voice.js.map +1 -1
- package/lib/commonjs/components/welcomeInput.js +29 -2
- package/lib/commonjs/components/welcomeInput.js.map +1 -1
- package/lib/commonjs/utils/audioRecorder.js +129 -38
- package/lib/commonjs/utils/audioRecorder.js.map +1 -1
- package/lib/module/components/input.js +28 -1
- package/lib/module/components/input.js.map +1 -1
- package/lib/module/components/voice.js +23 -3
- package/lib/module/components/voice.js.map +1 -1
- package/lib/module/components/welcomeInput.js +29 -2
- package/lib/module/components/welcomeInput.js.map +1 -1
- package/lib/module/utils/audioRecorder.js +129 -38
- package/lib/module/utils/audioRecorder.js.map +1 -1
- package/lib/typescript/components/input.d.ts.map +1 -1
- package/lib/typescript/components/voice.d.ts +3 -1
- package/lib/typescript/components/voice.d.ts.map +1 -1
- package/lib/typescript/components/welcomeInput.d.ts.map +1 -1
- package/lib/typescript/utils/audioRecorder.d.ts +1 -1
- package/lib/typescript/utils/audioRecorder.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/input.js +26 -1
- package/src/components/voice.js +33 -14
- package/src/components/welcomeInput.js +26 -1
- package/src/utils/audioRecorder.js +131 -35
|
@@ -24,6 +24,7 @@ const ChatInput = ({
|
|
|
24
24
|
showModal,
|
|
25
25
|
data
|
|
26
26
|
} = (0, _react.useContext)(_AppContext.AppContext);
|
|
27
|
+
const inputRef = (0, _react.useRef)(null);
|
|
27
28
|
const handleKeyPress = ({
|
|
28
29
|
nativeEvent
|
|
29
30
|
}) => {
|
|
@@ -46,6 +47,7 @@ const ChatInput = ({
|
|
|
46
47
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
47
48
|
style: styles.inputContainer
|
|
48
49
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
|
|
50
|
+
ref: inputRef,
|
|
49
51
|
style: styles.input,
|
|
50
52
|
value: input,
|
|
51
53
|
onChangeText: setInput,
|
|
@@ -56,8 +58,33 @@ const ChatInput = ({
|
|
|
56
58
|
enablesReturnKeyAutomatically: true,
|
|
57
59
|
onKeyPress: handleKeyPress,
|
|
58
60
|
onSubmitEditing: onSubmitEditing,
|
|
61
|
+
selection: undefined,
|
|
59
62
|
blurOnSubmit: false
|
|
60
|
-
}), /*#__PURE__*/_react.default.createElement(_voice.VoiceButton,
|
|
63
|
+
}), /*#__PURE__*/_react.default.createElement(_voice.VoiceButton, {
|
|
64
|
+
setInput: text => {
|
|
65
|
+
setInput(text);
|
|
66
|
+
// Auto-scroll to end
|
|
67
|
+
if (inputRef.current) {
|
|
68
|
+
// For iOS and Android, blur and refocus to ensure scroll
|
|
69
|
+
inputRef.current.blur();
|
|
70
|
+
setTimeout(() => {
|
|
71
|
+
if (inputRef.current) {
|
|
72
|
+
inputRef.current.focus();
|
|
73
|
+
// Set selection to end - Android sometimes needs a slight delay
|
|
74
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
75
|
+
setTimeout(() => {
|
|
76
|
+
if (inputRef.current) {
|
|
77
|
+
inputRef.current.setSelection(text.length, text.length);
|
|
78
|
+
}
|
|
79
|
+
}, 10);
|
|
80
|
+
} else {
|
|
81
|
+
inputRef.current.setSelection(text.length, text.length);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}, 50);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
61
88
|
style: styles.sendButton,
|
|
62
89
|
onPress: () => handleSend(input)
|
|
63
90
|
}, /*#__PURE__*/_react.default.createElement(_Ionicons.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_header","_AppContext","_Ionicons","_interopRequireDefault","_voice","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ChatInput","onProductCardClick","onAddToCartClick","handleSend","input","setInput","showModal","data","useContext","AppContext","handleKeyPress","nativeEvent","key","shiftKey","preventDefault","onSubmitEditing","trim","createElement","Fragment","Text","style","styles","textBeta","allowFontScaling","View","inputWrapper","inputContainer","TextInput","value","onChangeText","placeholder","placeholderTextColor","multiline","returnKeyType","enablesReturnKeyAutomatically","onKeyPress","blurOnSubmit","VoiceButton","TouchableOpacity","sendButton","onPress","name","size","color","exports","StyleSheet","create","backgroundColor","paddingHorizontal","paddingVertical","borderTopWidth","borderTopColor","flexDirection","alignItems","borderRadius","margin","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","flex","fontSize","inputButton","padding","marginLeft","disabledButton","opacity","textAlign","fontWeight","marginTop","marginBottom","textBreakStrategy","lineHeight"],"sourceRoot":"../../../src","sources":["components/input.js"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAsC,SAAAK,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAE/B,MAAMW,SAAS,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC;AAAiB,CAAC,KAAK;EACrE,MAAM;IAAEC,UAAU;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAK,CAAC,GAAG,IAAAC,iBAAU,EAACC,sBAAU,CAAC;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_header","_AppContext","_Ionicons","_interopRequireDefault","_voice","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ChatInput","onProductCardClick","onAddToCartClick","handleSend","input","setInput","showModal","data","useContext","AppContext","inputRef","useRef","handleKeyPress","nativeEvent","key","shiftKey","preventDefault","onSubmitEditing","trim","createElement","Fragment","Text","style","styles","textBeta","allowFontScaling","View","inputWrapper","inputContainer","TextInput","ref","value","onChangeText","placeholder","placeholderTextColor","multiline","returnKeyType","enablesReturnKeyAutomatically","onKeyPress","selection","undefined","blurOnSubmit","VoiceButton","text","current","blur","setTimeout","focus","Platform","OS","setSelection","length","TouchableOpacity","sendButton","onPress","name","size","color","exports","StyleSheet","create","backgroundColor","paddingHorizontal","paddingVertical","borderTopWidth","borderTopColor","flexDirection","alignItems","borderRadius","margin","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","flex","fontSize","inputButton","padding","marginLeft","disabledButton","opacity","textAlign","fontWeight","marginTop","marginBottom","textBreakStrategy","lineHeight"],"sourceRoot":"../../../src","sources":["components/input.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
16
16
|
// VoiceButton.js
|
|
17
17
|
|
|
18
18
|
const PERMISSION_STORAGE_KEY = '@voice_permission_status';
|
|
19
|
-
const VoiceButton = (
|
|
19
|
+
const VoiceButton = ({
|
|
20
|
+
setInput
|
|
21
|
+
}) => {
|
|
20
22
|
const {
|
|
21
23
|
handleVoiceSend
|
|
22
24
|
} = (0, _react.useContext)(_AppContext.AppContext);
|
|
@@ -44,7 +46,10 @@ const VoiceButton = () => {
|
|
|
44
46
|
const permissionResult = await (0, _audioRecorder.requestAudioPermission)();
|
|
45
47
|
setHasPermission(permissionResult);
|
|
46
48
|
if (permissionResult) {
|
|
47
|
-
const initialized = await (0, _audioRecorder.initVoice)(
|
|
49
|
+
const initialized = await (0, _audioRecorder.initVoice)(
|
|
50
|
+
// Final result callback - just update input, don't send
|
|
51
|
+
(result, error) => {
|
|
52
|
+
console.log('Voice final result:', result, 'Error:', error);
|
|
48
53
|
if (error) {
|
|
49
54
|
// Don't show alert for permission errors since we handle that elsewhere
|
|
50
55
|
if (!error.includes('permission')) {
|
|
@@ -55,11 +60,26 @@ const VoiceButton = () => {
|
|
|
55
60
|
return;
|
|
56
61
|
}
|
|
57
62
|
if (result) {
|
|
58
|
-
|
|
63
|
+
if (setInput) {
|
|
64
|
+
// Just update the input field, don't send
|
|
65
|
+
setInput(result);
|
|
66
|
+
} else {
|
|
67
|
+
console.warn('VoiceButton: setInput prop is not provided');
|
|
68
|
+
}
|
|
59
69
|
}
|
|
60
70
|
// Always reset states when the recognition ends
|
|
61
71
|
setIsListening(false);
|
|
62
72
|
setLoading(false);
|
|
73
|
+
},
|
|
74
|
+
// Partial result callback for live transcription
|
|
75
|
+
partialResult => {
|
|
76
|
+
if (partialResult) {
|
|
77
|
+
if (setInput) {
|
|
78
|
+
setInput(partialResult);
|
|
79
|
+
} else {
|
|
80
|
+
console.warn('VoiceButton: setInput prop is not provided for partial results');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
63
83
|
});
|
|
64
84
|
if (!initialized) {
|
|
65
85
|
// Only show this alert once per session
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Ionicons","_interopRequireDefault","_useAsyncStorage","_audioRecorder","_AppContext","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PERMISSION_STORAGE_KEY","VoiceButton","handleVoiceSend","useContext","AppContext","isListening","setIsListening","useState","loading","setLoading","permissionChecked","setPermissionChecked","hasPermission","setHasPermission","permissionStatus","setPermissionStatus","useAsyncStorage","useEffect","setPermissionStatusHandlers","setupVoice","permissionResult","requestAudioPermission","initialized","initVoice","result","error","includes","Alert","alert","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Ionicons","_interopRequireDefault","_useAsyncStorage","_audioRecorder","_AppContext","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PERMISSION_STORAGE_KEY","VoiceButton","setInput","handleVoiceSend","useContext","AppContext","isListening","setIsListening","useState","loading","setLoading","permissionChecked","setPermissionChecked","hasPermission","setHasPermission","permissionStatus","setPermissionStatus","useAsyncStorage","useEffect","setPermissionStatusHandlers","setupVoice","permissionResult","requestAudioPermission","initialized","initVoice","result","error","console","log","includes","Alert","alert","warn","partialResult","cleanup","toggleRecording","text","style","onPress","openAppSettings","checkPermission","started","startRecording","stopRecording","Platform","OS","Linking","openURL","openSettings","createElement","TouchableOpacity","styles","button","disabled","ActivityIndicator","size","color","name","exports","StyleSheet","create","justifyContent","alignItems"],"sourceRoot":"../../../src","sources":["components/voice.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,6 +25,7 @@ const WelcomeInput = ({
|
|
|
25
25
|
showModal,
|
|
26
26
|
theme
|
|
27
27
|
} = (0, _react.useContext)(_AppContext.AppContext);
|
|
28
|
+
const inputRef = (0, _react.useRef)(null);
|
|
28
29
|
const handleKeyPress = ({
|
|
29
30
|
nativeEvent
|
|
30
31
|
}) => {
|
|
@@ -42,6 +43,7 @@ const WelcomeInput = ({
|
|
|
42
43
|
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
43
44
|
style: styles.inputContainer
|
|
44
45
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
|
|
46
|
+
ref: inputRef,
|
|
45
47
|
style: styles.input,
|
|
46
48
|
value: input,
|
|
47
49
|
onChangeText: setInput,
|
|
@@ -51,9 +53,34 @@ const WelcomeInput = ({
|
|
|
51
53
|
returnKeyType: "send",
|
|
52
54
|
enablesReturnKeyAutomatically: true,
|
|
53
55
|
onKeyPress: handleKeyPress,
|
|
54
|
-
onSubmitEditing: onSubmitEditing
|
|
56
|
+
onSubmitEditing: onSubmitEditing,
|
|
57
|
+
selection: undefined
|
|
55
58
|
// blurOnSubmit={false}
|
|
56
|
-
}), /*#__PURE__*/_react.default.createElement(_voice.VoiceButton,
|
|
59
|
+
}), /*#__PURE__*/_react.default.createElement(_voice.VoiceButton, {
|
|
60
|
+
setInput: text => {
|
|
61
|
+
setInput(text);
|
|
62
|
+
// Auto-scroll to end
|
|
63
|
+
if (inputRef.current) {
|
|
64
|
+
// For iOS and Android, blur and refocus to ensure scroll
|
|
65
|
+
inputRef.current.blur();
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
if (inputRef.current) {
|
|
68
|
+
inputRef.current.focus();
|
|
69
|
+
// Set selection to end - Android sometimes needs a slight delay
|
|
70
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
if (inputRef.current) {
|
|
73
|
+
inputRef.current.setSelection(text.length, text.length);
|
|
74
|
+
}
|
|
75
|
+
}, 10);
|
|
76
|
+
} else {
|
|
77
|
+
inputRef.current.setSelection(text.length, text.length);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}, 50);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
57
84
|
style: styles.sendButton,
|
|
58
85
|
onPress: () => handleSend(input),
|
|
59
86
|
disabled: !input.trim()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_header","_AppContext","_Ionicons","_interopRequireDefault","_voice","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","WelcomeInput","onProductCardClick","onAddToCartClick","data","handleSend","input","setInput","showModal","theme","useContext","AppContext","handleKeyPress","nativeEvent","key","shiftKey","preventDefault","onSubmitEditing","trim","createElement","View","style","styles","inputContainer","TextInput","value","onChangeText","placeholder","placeholderTextColor","multiline","returnKeyType","enablesReturnKeyAutomatically","onKeyPress","VoiceButton","TouchableOpacity","sendButton","onPress","disabled","name","size","color","primaryColor","exports","StyleSheet","create","flexDirection","alignItems","paddingHorizontal","paddingVertical","backgroundColor","borderRadius","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","flex","fontSize","inputButton","padding","marginLeft","disabledButton","opacity"],"sourceRoot":"../../../src","sources":["components/welcomeInput.js"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAsC,SAAAK,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAE/B,MAAMW,YAAY,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC;AAAiB,CAAC,KAAK;EAExE,MAAM;IAAEC,IAAI;IAAEC,UAAU;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAG,IAAAC,iBAAU,EAACC,sBAAU,CAAC;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_header","_AppContext","_Ionicons","_interopRequireDefault","_voice","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","WelcomeInput","onProductCardClick","onAddToCartClick","data","handleSend","input","setInput","showModal","theme","useContext","AppContext","inputRef","useRef","handleKeyPress","nativeEvent","key","shiftKey","preventDefault","onSubmitEditing","trim","createElement","View","style","styles","inputContainer","TextInput","ref","value","onChangeText","placeholder","placeholderTextColor","multiline","returnKeyType","enablesReturnKeyAutomatically","onKeyPress","selection","undefined","VoiceButton","text","current","blur","setTimeout","focus","Platform","OS","setSelection","length","TouchableOpacity","sendButton","onPress","disabled","name","size","color","primaryColor","exports","StyleSheet","create","flexDirection","alignItems","paddingHorizontal","paddingVertical","backgroundColor","borderRadius","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","flex","fontSize","inputButton","padding","marginLeft","disabledButton","opacity"],"sourceRoot":"../../../src","sources":["components/welcomeInput.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,10 +19,13 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
19
19
|
// audioRecorder.js
|
|
20
20
|
|
|
21
21
|
let resultCallback = null;
|
|
22
|
+
let partialResultCallback = null;
|
|
22
23
|
let silenceTimer = null;
|
|
23
24
|
let isCurrentlyRecording = false;
|
|
24
25
|
let finalResult = '';
|
|
26
|
+
let lastPartialResultTime = 0;
|
|
25
27
|
const SILENCE_DURATION = 1500; // 1.5 seconds of silence before stopping
|
|
28
|
+
const PARTIAL_RESULT_THROTTLE = 100; // Throttle partial results to every 100ms
|
|
26
29
|
|
|
27
30
|
// Add this constant for AsyncStorage key
|
|
28
31
|
const PERMISSION_STORAGE_KEY = '@voice_permission_status';
|
|
@@ -37,9 +40,10 @@ function setPermissionStatusHandlers(getter, setter) {
|
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
// Initialize Voice handlers
|
|
40
|
-
async function initVoice(onResult) {
|
|
43
|
+
async function initVoice(onResult, onPartialResult = null) {
|
|
41
44
|
try {
|
|
42
45
|
resultCallback = onResult;
|
|
46
|
+
partialResultCallback = onPartialResult;
|
|
43
47
|
finalResult = '';
|
|
44
48
|
|
|
45
49
|
// Check if Voice module is available
|
|
@@ -55,6 +59,18 @@ async function initVoice(onResult) {
|
|
|
55
59
|
return false;
|
|
56
60
|
}
|
|
57
61
|
|
|
62
|
+
// Check if another recognition session is active
|
|
63
|
+
try {
|
|
64
|
+
const isRecognizing = await _voice.default.isRecognizing();
|
|
65
|
+
if (isRecognizing) {
|
|
66
|
+
console.log('Another recognition session is active, cleaning up...');
|
|
67
|
+
await _voice.default.destroy();
|
|
68
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
69
|
+
}
|
|
70
|
+
} catch (e) {
|
|
71
|
+
// Ignore errors checking recognition state
|
|
72
|
+
}
|
|
73
|
+
|
|
58
74
|
// Set up all event listeners
|
|
59
75
|
_voice.default.onSpeechStart = e => {
|
|
60
76
|
console.log('onSpeechStart: ', e);
|
|
@@ -64,6 +80,9 @@ async function initVoice(onResult) {
|
|
|
64
80
|
clearTimeout(silenceTimer);
|
|
65
81
|
silenceTimer = null;
|
|
66
82
|
}
|
|
83
|
+
|
|
84
|
+
// Start initial silence detection
|
|
85
|
+
handleSilenceDetection();
|
|
67
86
|
};
|
|
68
87
|
_voice.default.onSpeechRecognized = e => {
|
|
69
88
|
console.log('onSpeechRecognized: ', e);
|
|
@@ -79,37 +98,49 @@ async function initVoice(onResult) {
|
|
|
79
98
|
silenceTimer = null;
|
|
80
99
|
}
|
|
81
100
|
|
|
82
|
-
//
|
|
83
|
-
if (isCurrentlyRecording) {
|
|
84
|
-
|
|
101
|
+
// On iOS, onSpeechEnd can fire multiple times, so check if we're still recording
|
|
102
|
+
if (isCurrentlyRecording && finalResult) {
|
|
103
|
+
// Don't call handleFinalResult here on iOS as it causes the error
|
|
104
|
+
// Instead, just mark that speech ended and let silence detection handle it
|
|
105
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
106
|
+
console.log('iOS: Speech ended, waiting for silence detection to handle cleanup');
|
|
107
|
+
} else {
|
|
108
|
+
await handleFinalResult();
|
|
109
|
+
}
|
|
85
110
|
}
|
|
86
111
|
};
|
|
87
112
|
_voice.default.onSpeechError = async e => {
|
|
88
|
-
var _e$error, _e$error2;
|
|
89
|
-
|
|
90
|
-
|
|
113
|
+
var _e$error, _e$error2, _e$error3, _e$error4;
|
|
114
|
+
console.error('onSpeechError: ', e);
|
|
91
115
|
if (silenceTimer) {
|
|
92
116
|
clearTimeout(silenceTimer);
|
|
93
117
|
silenceTimer = null;
|
|
94
118
|
}
|
|
95
119
|
|
|
96
|
-
// Check for
|
|
120
|
+
// Check for specific error types
|
|
97
121
|
const isNoSpeechError = ((_e$error = e.error) === null || _e$error === void 0 ? void 0 : _e$error.code) === "recognition_fail" && ((_e$error2 = e.error) === null || _e$error2 === void 0 || (_e$error2 = _e$error2.message) === null || _e$error2 === void 0 ? void 0 : _e$error2.includes("No speech detected"));
|
|
122
|
+
|
|
123
|
+
// iOS error 1101 is often transient and related to service availability
|
|
124
|
+
const isTransientIOSError = _reactNative.Platform.OS === 'ios' && (((_e$error3 = e.error) === null || _e$error3 === void 0 ? void 0 : _e$error3.code) === "1101" || ((_e$error4 = e.error) === null || _e$error4 === void 0 || (_e$error4 = _e$error4.message) === null || _e$error4 === void 0 ? void 0 : _e$error4.includes("kAFAssistantErrorDomain")));
|
|
98
125
|
await cleanupVoiceSession();
|
|
99
126
|
|
|
100
|
-
// Only send error to callback
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
127
|
+
// Only send error to callback for non-transient errors
|
|
128
|
+
if (!isNoSpeechError && !isTransientIOSError && resultCallback) {
|
|
129
|
+
var _e$error5;
|
|
130
|
+
resultCallback(null, ((_e$error5 = e.error) === null || _e$error5 === void 0 ? void 0 : _e$error5.message) || 'Speech recognition error');
|
|
131
|
+
} else if (isTransientIOSError) {
|
|
132
|
+
console.log('Transient iOS speech recognition error, attempting to recover');
|
|
133
|
+
// Send the final result if we have one
|
|
134
|
+
if (finalResult && resultCallback) {
|
|
135
|
+
resultCallback(finalResult);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
108
138
|
};
|
|
109
139
|
_voice.default.onSpeechResults = e => {
|
|
110
140
|
console.log('onSpeechResults: ', e);
|
|
111
141
|
if (e.value && e.value.length > 0) {
|
|
112
142
|
finalResult = e.value[0];
|
|
143
|
+
// Also trigger silence detection for final results
|
|
113
144
|
handleSilenceDetection();
|
|
114
145
|
}
|
|
115
146
|
};
|
|
@@ -120,6 +151,13 @@ async function initVoice(onResult) {
|
|
|
120
151
|
}
|
|
121
152
|
if (e.value && e.value.length > 0) {
|
|
122
153
|
finalResult = e.value[0];
|
|
154
|
+
|
|
155
|
+
// Throttle partial results to prevent overwhelming the UI and speech service
|
|
156
|
+
const now = Date.now();
|
|
157
|
+
if (partialResultCallback && now - lastPartialResultTime > PARTIAL_RESULT_THROTTLE) {
|
|
158
|
+
partialResultCallback(e.value[0]);
|
|
159
|
+
lastPartialResultTime = now;
|
|
160
|
+
}
|
|
123
161
|
handleSilenceDetection();
|
|
124
162
|
}
|
|
125
163
|
};
|
|
@@ -139,22 +177,36 @@ const handleSilenceDetection = () => {
|
|
|
139
177
|
clearTimeout(silenceTimer);
|
|
140
178
|
}
|
|
141
179
|
silenceTimer = setTimeout(async () => {
|
|
142
|
-
|
|
180
|
+
console.log('Silence detected, stopping recording...');
|
|
181
|
+
if (isCurrentlyRecording && finalResult) {
|
|
143
182
|
await handleFinalResult();
|
|
144
183
|
}
|
|
145
184
|
}, SILENCE_DURATION);
|
|
146
185
|
};
|
|
147
186
|
const handleFinalResult = async () => {
|
|
148
187
|
if (!isCurrentlyRecording) return;
|
|
149
|
-
|
|
188
|
+
|
|
189
|
+
// Set flag immediately to prevent race conditions
|
|
190
|
+
isCurrentlyRecording = false;
|
|
191
|
+
|
|
192
|
+
// Clear silence timer first
|
|
193
|
+
if (silenceTimer) {
|
|
194
|
+
clearTimeout(silenceTimer);
|
|
195
|
+
silenceTimer = null;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// Send result if we have one
|
|
199
|
+
if (finalResult && resultCallback) {
|
|
150
200
|
resultCallback(finalResult);
|
|
151
201
|
}
|
|
152
202
|
|
|
153
|
-
//
|
|
154
|
-
|
|
203
|
+
// Give iOS time to finish processing before cleanup
|
|
204
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
205
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
206
|
+
}
|
|
155
207
|
|
|
156
|
-
//
|
|
157
|
-
await
|
|
208
|
+
// Stop recording with proper sequence
|
|
209
|
+
await stopRecording();
|
|
158
210
|
};
|
|
159
211
|
const cleanupVoiceSession = async () => {
|
|
160
212
|
isCurrentlyRecording = false;
|
|
@@ -218,6 +270,9 @@ async function startRecording() {
|
|
|
218
270
|
console.error('No permission to record audio');
|
|
219
271
|
return false;
|
|
220
272
|
}
|
|
273
|
+
|
|
274
|
+
// Reset throttle timer
|
|
275
|
+
lastPartialResultTime = 0;
|
|
221
276
|
await _voice.default.start('en-US');
|
|
222
277
|
isCurrentlyRecording = true;
|
|
223
278
|
return true;
|
|
@@ -229,7 +284,21 @@ async function startRecording() {
|
|
|
229
284
|
}
|
|
230
285
|
async function stopRecording() {
|
|
231
286
|
try {
|
|
232
|
-
if (!
|
|
287
|
+
if (!_voice.default) return;
|
|
288
|
+
|
|
289
|
+
// Already stopped
|
|
290
|
+
if (!isCurrentlyRecording) {
|
|
291
|
+
// Still try to clean up any lingering session
|
|
292
|
+
try {
|
|
293
|
+
const isRecognizing = await _voice.default.isRecognizing();
|
|
294
|
+
if (isRecognizing) {
|
|
295
|
+
await _voice.default.stop();
|
|
296
|
+
}
|
|
297
|
+
} catch (e) {
|
|
298
|
+
// Ignore errors checking recognition state
|
|
299
|
+
}
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
233
302
|
|
|
234
303
|
// Set this first to prevent race conditions
|
|
235
304
|
isCurrentlyRecording = false;
|
|
@@ -238,21 +307,43 @@ async function stopRecording() {
|
|
|
238
307
|
silenceTimer = null;
|
|
239
308
|
}
|
|
240
309
|
|
|
241
|
-
//
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
310
|
+
// For iOS, use a more careful approach
|
|
311
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
312
|
+
try {
|
|
313
|
+
// First cancel any ongoing recognition
|
|
314
|
+
await _voice.default.cancel();
|
|
315
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
316
|
+
} catch (error) {
|
|
317
|
+
// Ignore cancel errors
|
|
318
|
+
}
|
|
319
|
+
try {
|
|
320
|
+
// Then stop
|
|
321
|
+
await _voice.default.stop();
|
|
322
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
323
|
+
} catch (error) {
|
|
324
|
+
console.log('Error stopping Voice (expected on iOS):', error);
|
|
325
|
+
}
|
|
326
|
+
try {
|
|
327
|
+
// Finally destroy
|
|
328
|
+
await _voice.default.destroy();
|
|
329
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
330
|
+
} catch (error) {
|
|
331
|
+
console.log('Error destroying Voice (expected on iOS):', error);
|
|
332
|
+
}
|
|
333
|
+
} else {
|
|
334
|
+
// Android can handle the normal sequence
|
|
335
|
+
try {
|
|
336
|
+
await _voice.default.stop();
|
|
337
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
338
|
+
} catch (error) {
|
|
339
|
+
console.error('Error stopping Voice:', error);
|
|
340
|
+
}
|
|
341
|
+
try {
|
|
342
|
+
await _voice.default.destroy();
|
|
343
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
344
|
+
} catch (error) {
|
|
345
|
+
console.error('Error destroying Voice:', error);
|
|
346
|
+
}
|
|
256
347
|
}
|
|
257
348
|
|
|
258
349
|
// Final cleanup
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_voice","_interopRequireDefault","_reactNativePermissions","_useAsyncStorage","e","__esModule","default","resultCallback","silenceTimer","isCurrentlyRecording","finalResult","SILENCE_DURATION","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","Voice","console","error","isAvailable","onSpeechStart","log","clearTimeout","onSpeechRecognized","isFinal","handleFinalResult","onSpeechEnd","onSpeechError","_e$error","_e$error2","isNoSpeechError","code","message","includes","cleanupVoiceSession","onSpeechResults","value","length","handleSilenceDetection","onSpeechPartialResults","Platform","OS","onSpeechVolumeChanged","setTimeout","stopRecording","isRecognizing","stop","Promise","resolve","destroy","stillRecognizing","startRecording","hasPermission","requestAudioPermission","start","cancelRecording","cancel","storedPermission","permissionResult","requestAndroidPermission","requestIOSPermission","micPermission","request","PERMISSIONS","ANDROID","RECORD_AUDIO","RESULTS","GRANTED","services","getSpeechRecognitionServices","IOS","MICROPHONE","speechPermission","SPEECH_RECOGNITION","resetStoredPermission","cleanup","then","removeAllListeners","catch"],"sourceRoot":"../../../src","sources":["utils/audioRecorder.js"],"mappings":";;;;;;;;;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAAuD,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AALvD;;AAOA,IAAIG,cAAc,GAAG,IAAI;AACzB,IAAIC,YAAY,GAAG,IAAI;AACvB,IAAIC,oBAAoB,GAAG,KAAK;AAChC,IAAIC,WAAW,GAAG,EAAE;AACpB,MAAMC,gBAAgB,GAAG,IAAI,CAAC,CAAC;;AAE/B;AACA,MAAMC,sBAAsB,GAAG,0BAA0B;;AAEzD;AACA;AACA,IAAIC,sBAAsB,GAAG,IAAI;AACjC,IAAIC,sBAAsB,GAAG,IAAI;AAE1B,SAASC,2BAA2BA,CAACC,MAAM,EAAEC,MAAM,EAAE;EAC1DJ,sBAAsB,GAAGG,MAAM;EAC/BF,sBAAsB,GAAGG,MAAM;AACjC;;AAEA;AACO,eAAeC,SAASA,CAACC,QAAQ,EAAE;EACxC,IAAI;IACFZ,cAAc,GAAGY,QAAQ;IACzBT,WAAW,GAAG,EAAE;;IAEhB;IACA,IAAI,CAACU,cAAK,EAAE;MACVC,OAAO,CAACC,KAAK,CAAC,+BAA+B,CAAC;MAC9C,OAAO,KAAK;IACd;;IAEA;IACA,MAAMC,WAAW,GAAG,MAAMH,cAAK,CAACG,WAAW,CAAC,CAAC;IAC7C,IAAI,CAACA,WAAW,EAAE;MAChBF,OAAO,CAACC,KAAK,CAAC,oDAAoD,CAAC;MACnE,OAAO,KAAK;IACd;;IAEA;IACAF,cAAK,CAACI,aAAa,GAAIpB,CAAC,IAAK;MAC3BiB,OAAO,CAACI,GAAG,CAAC,iBAAiB,EAAErB,CAAC,CAAC;MACjCK,oBAAoB,GAAG,IAAI;MAC3BC,WAAW,GAAG,EAAE;MAEhB,IAAIF,YAAY,EAAE;QAChBkB,YAAY,CAAClB,YAAY,CAAC;QAC1BA,YAAY,GAAG,IAAI;MACrB;IACF,CAAC;IAEDY,cAAK,CAACO,kBAAkB,GAAIvB,CAAC,IAAK;MAChCiB,OAAO,CAACI,GAAG,CAAC,sBAAsB,EAAErB,CAAC,CAAC;MACtC,IAAIA,CAAC,CAACwB,OAAO,EAAE;QACbP,OAAO,CAACI,GAAG,CAAC,0BAA0B,CAAC;QACvCI,iBAAiB,CAAC,CAAC;MACrB;IACF,CAAC;IAEDT,cAAK,CAACU,WAAW,GAAG,MAAO1B,CAAC,IAAK;MAC/BiB,OAAO,CAACI,GAAG,CAAC,eAAe,EAAErB,CAAC,CAAC;MAE/B,IAAII,YAAY,EAAE;QAChBkB,YAAY,CAAClB,YAAY,CAAC;QAC1BA,YAAY,GAAG,IAAI;MACrB;;MAEA;MACA,IAAIC,oBAAoB,EAAE;QACxB,MAAMoB,iBAAiB,CAAC,CAAC;MAC3B;IACF,CAAC;IAEDT,cAAK,CAACW,aAAa,GAAG,MAAO3B,CAAC,IAAK;MAAA,IAAA4B,QAAA,EAAAC,SAAA;MACjC;;MAEA,IAAIzB,YAAY,EAAE;QAChBkB,YAAY,CAAClB,YAAY,CAAC;QAC1BA,YAAY,GAAG,IAAI;MACrB;;MAEA;MACA,MAAM0B,eAAe,GAAG,EAAAF,QAAA,GAAA5B,CAAC,CAACkB,KAAK,cAAAU,QAAA,uBAAPA,QAAA,CAASG,IAAI,MAAK,kBAAkB,MAAAF,SAAA,GACpC7B,CAAC,CAACkB,KAAK,cAAAW,SAAA,gBAAAA,SAAA,GAAPA,SAAA,CAASG,OAAO,cAAAH,SAAA,uBAAhBA,SAAA,CAAkBI,QAAQ,CAAC,oBAAoB,CAAC;MAExE,MAAMC,mBAAmB,CAAC,CAAC;;MAE3B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACF,CAAC;IAEDlB,cAAK,CAACmB,eAAe,GAAInC,CAAC,IAAK;MAC7BiB,OAAO,CAACI,GAAG,CAAC,mBAAmB,EAAErB,CAAC,CAAC;MACnC,IAAIA,CAAC,CAACoC,KAAK,IAAIpC,CAAC,CAACoC,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;QACjC/B,WAAW,GAAGN,CAAC,CAACoC,KAAK,CAAC,CAAC,CAAC;QACxBE,sBAAsB,CAAC,CAAC;MAC1B;IACF,CAAC;IAEDtB,cAAK,CAACuB,sBAAsB,GAAIvC,CAAC,IAAK;MACpCiB,OAAO,CAACI,GAAG,CAAC,0BAA0B,EAAErB,CAAC,CAAC;MAE1C,IAAII,YAAY,EAAE;QAChBkB,YAAY,CAAClB,YAAY,CAAC;MAC5B;MAEA,IAAIJ,CAAC,CAACoC,KAAK,IAAIpC,CAAC,CAACoC,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;QACjC/B,WAAW,GAAGN,CAAC,CAACoC,KAAK,CAAC,CAAC,CAAC;QACxBE,sBAAsB,CAAC,CAAC;MAC1B;IACF,CAAC;IAED,IAAIE,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7BzB,cAAK,CAAC0B,qBAAqB,GAAI1C,CAAC,IAAK;QACnCiB,OAAO,CAACI,GAAG,CAAC,yBAAyB,EAAErB,CAAC,CAAC;MAC3C,CAAC;IACH;IAEA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOkB,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;IACjD,OAAO,KAAK;EACd;AACF;AAEA,MAAMoB,sBAAsB,GAAGA,CAAA,KAAM;EACnC,IAAIlC,YAAY,EAAE;IAChBkB,YAAY,CAAClB,YAAY,CAAC;EAC5B;EAEAA,YAAY,GAAGuC,UAAU,CAAC,YAAY;IACpC,IAAItC,oBAAoB,EAAE;MACxB,MAAMoB,iBAAiB,CAAC,CAAC;IAC3B;EACF,CAAC,EAAElB,gBAAgB,CAAC;AACtB,CAAC;AAED,MAAMkB,iBAAiB,GAAG,MAAAA,CAAA,KAAY;EACpC,IAAI,CAACpB,oBAAoB,EAAE;EAE3B,IAAIC,WAAW,EAAE;IACfH,cAAc,CAACG,WAAW,CAAC;EAC7B;;EAEA;EACA,MAAMsC,aAAa,CAAC,CAAC;;EAErB;EACA,MAAMV,mBAAmB,CAAC,CAAC;AAC7B,CAAC;AAED,MAAMA,mBAAmB,GAAG,MAAAA,CAAA,KAAY;EACtC7B,oBAAoB,GAAG,KAAK;EAE5B,IAAID,YAAY,EAAE;IAChBkB,YAAY,CAAClB,YAAY,CAAC;IAC1BA,YAAY,GAAG,IAAI;EACrB;EAEA,IAAI;IACF;IACA,IAAI,CAACY,cAAK,EAAE;MACVC,OAAO,CAACI,GAAG,CAAC,2CAA2C,CAAC;MACxD;IACF;;IAEA;IACA,MAAMwB,aAAa,GAAG,MAAM7B,cAAK,CAAC6B,aAAa,CAAC,CAAC;IACjD,IAAIA,aAAa,EAAE;MACjB,IAAI;QACF,MAAM7B,cAAK,CAAC8B,IAAI,CAAC,CAAC;QAClB,MAAM,IAAIC,OAAO,CAACC,OAAO,IAAIL,UAAU,CAACK,OAAO,EAAE,GAAG,CAAC,CAAC;MACxD,CAAC,CAAC,OAAOhD,CAAC,EAAE;QACViB,OAAO,CAACC,KAAK,CAAC,4BAA4B,EAAElB,CAAC,CAAC;MAChD;IACF;;IAEA;IACA,MAAMgB,cAAK,CAACiC,OAAO,CAAC,CAAC;IACrB,MAAM,IAAIF,OAAO,CAACC,OAAO,IAAIL,UAAU,CAACK,OAAO,EAAE,GAAG,CAAC,CAAC;;IAEtD;IACA,MAAME,gBAAgB,GAAG,MAAMlC,cAAK,CAAC6B,aAAa,CAAC,CAAC;IACpD,IAAIK,gBAAgB,EAAE;MACpB,MAAMlC,cAAK,CAACiC,OAAO,CAAC,CAAC;MACrB,MAAM,IAAIF,OAAO,CAACC,OAAO,IAAIL,UAAU,CAACK,OAAO,EAAE,GAAG,CAAC,CAAC;IACxD;EACF,CAAC,CAAC,OAAO9B,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;IACrD;IACA,IAAI;MACF,IAAIF,cAAK,EAAE;QACT,MAAMA,cAAK,CAACiC,OAAO,CAAC,CAAC;MACvB;IACF,CAAC,CAAC,OAAOjD,CAAC,EAAE;MACViB,OAAO,CAACC,KAAK,CAAC,+BAA+B,EAAElB,CAAC,CAAC;IACnD;EACF;EAEAM,WAAW,GAAG,EAAE;AAClB,CAAC;AAEM,eAAe6C,cAAcA,CAAA,EAAG;EACrC,IAAI;IACF;IACA,IAAI,CAACnC,cAAK,EAAE;MACVC,OAAO,CAACC,KAAK,CAAC,+BAA+B,CAAC;MAC9C,OAAO,KAAK;IACd;;IAEA;IACA,MAAMgB,mBAAmB,CAAC,CAAC;IAE3B,MAAMkB,aAAa,GAAG,MAAMC,sBAAsB,CAAC,CAAC;IACpD,IAAI,CAACD,aAAa,EAAE;MAClBnC,OAAO,CAACC,KAAK,CAAC,+BAA+B,CAAC;MAC9C,OAAO,KAAK;IACd;IAEA,MAAMF,cAAK,CAACsC,KAAK,CAAC,OAAO,CAAC;IAC1BjD,oBAAoB,GAAG,IAAI;IAC3B,OAAO,IAAI;EACb,CAAC,CAAC,OAAOa,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC;IACzD,MAAMgB,mBAAmB,CAAC,CAAC;IAC3B,OAAO,KAAK;EACd;AACF;AAEO,eAAeU,aAAaA,CAAA,EAAG;EACpC,IAAI;IACF,IAAI,CAACvC,oBAAoB,IAAI,CAACW,cAAK,EAAE;;IAErC;IACAX,oBAAoB,GAAG,KAAK;IAE5B,IAAID,YAAY,EAAE;MAChBkB,YAAY,CAAClB,YAAY,CAAC;MAC1BA,YAAY,GAAG,IAAI;IACrB;;IAEA;IACA,IAAI;MACF,MAAMY,cAAK,CAAC8B,IAAI,CAAC,CAAC;MAClB;MACA,MAAM,IAAIC,OAAO,CAACC,OAAO,IAAIL,UAAU,CAACK,OAAO,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC,OAAO9B,KAAK,EAAE;MACdD,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;IAC/C;;IAEA;IACA,IAAI;MACF,MAAMF,cAAK,CAACiC,OAAO,CAAC,CAAC;MACrB,MAAM,IAAIF,OAAO,CAACC,OAAO,IAAIL,UAAU,CAACK,OAAO,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC,OAAO9B,KAAK,EAAE;MACdD,OAAO,CAACC,KAAK,CAAC,yBAAyB,EAAEA,KAAK,CAAC;IACjD;;IAEA;IACA,MAAMgB,mBAAmB,CAAC,CAAC;EAC7B,CAAC,CAAC,OAAOhB,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,yBAAyB,EAAEA,KAAK,CAAC;IAC/C;IACA,MAAMgB,mBAAmB,CAAC,CAAC;EAC7B;AACF;AAEO,eAAeqB,eAAeA,CAAA,EAAG;EACtC,IAAI;IACF,IAAI,CAACvC,cAAK,EAAE;IACZ,MAAMA,cAAK,CAACwC,MAAM,CAAC,CAAC;IACpB,MAAMtB,mBAAmB,CAAC,CAAC;EAC7B,CAAC,CAAC,OAAOhB,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,oCAAoC,EAAEA,KAAK,CAAC;IAC1D,MAAMgB,mBAAmB,CAAC,CAAC;EAC7B;AACF;AAEO,eAAemB,sBAAsBA,CAAA,EAAG;EAC7C,IAAI;IACF;IACA,MAAMI,gBAAgB,GAAGhD,sBAAsB,GAAGA,sBAAsB,CAAC,CAAC,GAAG,IAAI;IAEjF,IAAIgD,gBAAgB,KAAK,QAAQ,EAAE;MACjCxC,OAAO,CAACI,GAAG,CAAC,sCAAsC,CAAC;MACnD,OAAO,KAAK;IACd;IAEA,IAAIqC,gBAAgB,GAAG,KAAK;IAC5B,IAAIlB,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7BiB,gBAAgB,GAAG,MAAMC,wBAAwB,CAAC,CAAC;IACrD,CAAC,MAAM,IAAInB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MAChCiB,gBAAgB,GAAG,MAAME,oBAAoB,CAAC,CAAC;IACjD;;IAEA;IACA,IAAIlD,sBAAsB,EAAE;MAC1BA,sBAAsB,CAACgD,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjE;IAEA,OAAOA,gBAAgB;EACzB,CAAC,CAAC,OAAOxC,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC;IACzD,OAAO,KAAK;EACd;AACF;AAEA,eAAeyC,wBAAwBA,CAAA,EAAG;EACxC,IAAI;IAGF;IACA,MAAME,aAAa,GAAG,MAAM,IAAAC,+BAAO,EAACC,mCAAW,CAACC,OAAO,CAACC,YAAY,CAAC;IACrE,IAAIJ,aAAa,KAAKK,+BAAO,CAACC,OAAO,EAAE;MACrClD,OAAO,CAACI,GAAG,CAAC,8BAA8B,CAAC;MAC3C,OAAO,KAAK;IACd;;IAEI;IACJ,MAAM+C,QAAQ,GAAG,MAAMpD,cAAK,CAACqD,4BAA4B,CAAC,CAAC;IAC3D,IAAI,CAACD,QAAQ,IAAIA,QAAQ,CAAC/B,MAAM,KAAK,CAAC,EAAE;MACtCpB,OAAO,CAACC,KAAK,CAAC,0CAA0C,CAAC;MACzD,OAAO,KAAK;IACd;IACA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOA,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,sCAAsC,EAAEA,KAAK,CAAC;IAC5D,OAAO,KAAK;EACd;AACF;AAEA,eAAe0C,oBAAoBA,CAAA,EAAG;EACpC,IAAI;IACF;IACA,MAAMC,aAAa,GAAG,MAAM,IAAAC,+BAAO,EAACC,mCAAW,CAACO,GAAG,CAACC,UAAU,CAAC;IAC/D,IAAIV,aAAa,KAAKK,+BAAO,CAACC,OAAO,EAAE;MACrClD,OAAO,CAACI,GAAG,CAAC,8BAA8B,CAAC;MAC3C,OAAO,KAAK;IACd;;IAEA;IACA,MAAMmD,gBAAgB,GAAG,MAAM,IAAAV,+BAAO,EAACC,mCAAW,CAACO,GAAG,CAACG,kBAAkB,CAAC;IAC1E,IAAID,gBAAgB,KAAKN,+BAAO,CAACC,OAAO,EAAE;MACxClD,OAAO,CAACI,GAAG,CAAC,sCAAsC,CAAC;MACnD,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOH,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC;IACzD,OAAO,KAAK;EACd;AACF;AAEO,SAASwD,qBAAqBA,CAAA,EAAG;EACtC,IAAIhE,sBAAsB,EAAE;IAC1BA,sBAAsB,CAAC,IAAI,CAAC;IAC5B,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd;AAEO,SAASiE,OAAOA,CAAA,EAAG;EACxB,IAAI,CAAC3D,cAAK,EAAE;IACVC,OAAO,CAACI,GAAG,CAAC,2CAA2C,CAAC;IACxD;EACF;EAEAL,cAAK,CAACiC,OAAO,CAAC,CAAC,CAAC2B,IAAI,CAAC,MAAM;IACzB5D,cAAK,CAAC6D,kBAAkB,CAAC,CAAC;IAC1B3C,mBAAmB,CAAC,CAAC;EACvB,CAAC,CAAC,CAAC4C,KAAK,CAAC5D,KAAK,IAAI;IAChBD,OAAO,CAACC,KAAK,CAAC,mBAAmB,EAAEA,KAAK,CAAC;IACzC;IACA,IAAIF,cAAK,EAAE;MACTA,cAAK,CAACiC,OAAO,CAAC,CAAC,CAAC6B,KAAK,CAAC9E,CAAC,IAAIiB,OAAO,CAACC,KAAK,CAAC,+BAA+B,EAAElB,CAAC,CAAC,CAAC;IAC/E;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_voice","_interopRequireDefault","_reactNativePermissions","_useAsyncStorage","e","__esModule","default","resultCallback","partialResultCallback","silenceTimer","isCurrentlyRecording","finalResult","lastPartialResultTime","SILENCE_DURATION","PARTIAL_RESULT_THROTTLE","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","onPartialResult","Voice","console","error","isAvailable","isRecognizing","log","destroy","Promise","resolve","setTimeout","onSpeechStart","clearTimeout","handleSilenceDetection","onSpeechRecognized","isFinal","handleFinalResult","onSpeechEnd","Platform","OS","onSpeechError","_e$error","_e$error2","_e$error3","_e$error4","isNoSpeechError","code","message","includes","isTransientIOSError","cleanupVoiceSession","_e$error5","onSpeechResults","value","length","onSpeechPartialResults","now","Date","onSpeechVolumeChanged","stopRecording","stop","stillRecognizing","startRecording","hasPermission","requestAudioPermission","start","cancel","cancelRecording","storedPermission","permissionResult","requestAndroidPermission","requestIOSPermission","micPermission","request","PERMISSIONS","ANDROID","RECORD_AUDIO","RESULTS","GRANTED","services","getSpeechRecognitionServices","IOS","MICROPHONE","speechPermission","SPEECH_RECOGNITION","resetStoredPermission","cleanup","then","removeAllListeners","catch"],"sourceRoot":"../../../src","sources":["utils/audioRecorder.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@ export const ChatInput = ({
|
|
|
15
15
|
showModal,
|
|
16
16
|
data
|
|
17
17
|
} = useContext(AppContext);
|
|
18
|
+
const inputRef = useRef(null);
|
|
18
19
|
const handleKeyPress = ({
|
|
19
20
|
nativeEvent
|
|
20
21
|
}) => {
|
|
@@ -37,6 +38,7 @@ export const ChatInput = ({
|
|
|
37
38
|
}, /*#__PURE__*/React.createElement(View, {
|
|
38
39
|
style: styles.inputContainer
|
|
39
40
|
}, /*#__PURE__*/React.createElement(TextInput, {
|
|
41
|
+
ref: inputRef,
|
|
40
42
|
style: styles.input,
|
|
41
43
|
value: input,
|
|
42
44
|
onChangeText: setInput,
|
|
@@ -47,8 +49,33 @@ export const ChatInput = ({
|
|
|
47
49
|
enablesReturnKeyAutomatically: true,
|
|
48
50
|
onKeyPress: handleKeyPress,
|
|
49
51
|
onSubmitEditing: onSubmitEditing,
|
|
52
|
+
selection: undefined,
|
|
50
53
|
blurOnSubmit: false
|
|
51
|
-
}), /*#__PURE__*/React.createElement(VoiceButton,
|
|
54
|
+
}), /*#__PURE__*/React.createElement(VoiceButton, {
|
|
55
|
+
setInput: text => {
|
|
56
|
+
setInput(text);
|
|
57
|
+
// Auto-scroll to end
|
|
58
|
+
if (inputRef.current) {
|
|
59
|
+
// For iOS and Android, blur and refocus to ensure scroll
|
|
60
|
+
inputRef.current.blur();
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
if (inputRef.current) {
|
|
63
|
+
inputRef.current.focus();
|
|
64
|
+
// Set selection to end - Android sometimes needs a slight delay
|
|
65
|
+
if (Platform.OS === 'android') {
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
if (inputRef.current) {
|
|
68
|
+
inputRef.current.setSelection(text.length, text.length);
|
|
69
|
+
}
|
|
70
|
+
}, 10);
|
|
71
|
+
} else {
|
|
72
|
+
inputRef.current.setSelection(text.length, text.length);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}, 50);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
52
79
|
style: styles.sendButton,
|
|
53
80
|
onPress: () => handleSend(input)
|
|
54
81
|
}, /*#__PURE__*/React.createElement(Ionicons, {
|