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.
@@ -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, null), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
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":"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","ignoreList":[]}
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)((result, error) => {
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
- handleVoiceSend(null, result);
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","console","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":[]}
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, null), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
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":"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","ignoreList":[]}
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
- // Only handle final result if we're still recording
83
- if (isCurrentlyRecording) {
84
- await handleFinalResult();
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
- // console.error('onSpeechError: ', e);
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 "No speech detected" error
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 if it's not a "No speech detected" error
101
- // if (!isNoSpeechError) {
102
- // resultCallback(null, e.error?.message || 'Speech recognition error');
103
- // } else {
104
- // console.log('No speech detected, ignoring error');
105
- // // Optionally, call the callback with null parameters or a special indicator
106
- // resultCallback(null, null); // This won't trigger an error alert in the component
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
- if (isCurrentlyRecording) {
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
- if (finalResult) {
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
- // Stop recording first
154
- await stopRecording();
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
- // Then clean up the session
157
- await cleanupVoiceSession();
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 (!isCurrentlyRecording || !_voice.default) return;
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
- // First try to stop
242
- try {
243
- await _voice.default.stop();
244
- // Wait a bit for stop to complete
245
- await new Promise(resolve => setTimeout(resolve, 100));
246
- } catch (error) {
247
- console.error('Error stopping Voice:', error);
248
- }
249
-
250
- // Then force destroy
251
- try {
252
- await _voice.default.destroy();
253
- await new Promise(resolve => setTimeout(resolve, 300));
254
- } catch (error) {
255
- console.error('Error destroying Voice:', error);
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":"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","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, null), /*#__PURE__*/React.createElement(TouchableOpacity, {
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, {