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.
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Header","AppContext","Ionicons","VoiceButton","ChatInput","onProductCardClick","onAddToCartClick","handleSend","input","setInput","showModal","data","handleKeyPress","nativeEvent","key","shiftKey","preventDefault","onSubmitEditing","trim","createElement","Fragment","style","styles","textBeta","allowFontScaling","inputWrapper","inputContainer","value","onChangeText","placeholder","placeholderTextColor","multiline","returnKeyType","enablesReturnKeyAutomatically","onKeyPress","blurOnSubmit","sendButton","onPress","name","size","color","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","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Header","AppContext","Ionicons","VoiceButton","ChatInput","onProductCardClick","onAddToCartClick","handleSend","input","setInput","showModal","data","inputRef","handleKeyPress","nativeEvent","key","shiftKey","preventDefault","onSubmitEditing","trim","createElement","Fragment","style","styles","textBeta","allowFontScaling","inputWrapper","inputContainer","ref","value","onChangeText","placeholder","placeholderTextColor","multiline","returnKeyType","enablesReturnKeyAutomatically","onKeyPress","selection","undefined","blurOnSubmit","text","current","blur","setTimeout","focus","OS","setSelection","length","sendButton","onPress","name","size","color","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":[]}
@@ -7,7 +7,9 @@ import useAsyncStorage from '../hooks/useAsyncStorage';
7
7
  import { startRecording, stopRecording, cancelRecording, requestAudioPermission, cleanup, initVoice, resetStoredPermission, setPermissionStatusHandlers } from '../utils/audioRecorder';
8
8
  import { AppContext } from '../contexts/AppContext';
9
9
  const PERMISSION_STORAGE_KEY = '@voice_permission_status';
10
- export const VoiceButton = () => {
10
+ export const VoiceButton = ({
11
+ setInput
12
+ }) => {
11
13
  const {
12
14
  handleVoiceSend
13
15
  } = useContext(AppContext);
@@ -35,7 +37,10 @@ export const VoiceButton = () => {
35
37
  const permissionResult = await requestAudioPermission();
36
38
  setHasPermission(permissionResult);
37
39
  if (permissionResult) {
38
- const initialized = await initVoice((result, error) => {
40
+ const initialized = await initVoice(
41
+ // Final result callback - just update input, don't send
42
+ (result, error) => {
43
+ console.log('Voice final result:', result, 'Error:', error);
39
44
  if (error) {
40
45
  // Don't show alert for permission errors since we handle that elsewhere
41
46
  if (!error.includes('permission')) {
@@ -46,11 +51,26 @@ export const VoiceButton = () => {
46
51
  return;
47
52
  }
48
53
  if (result) {
49
- handleVoiceSend(null, result);
54
+ if (setInput) {
55
+ // Just update the input field, don't send
56
+ setInput(result);
57
+ } else {
58
+ console.warn('VoiceButton: setInput prop is not provided');
59
+ }
50
60
  }
51
61
  // Always reset states when the recognition ends
52
62
  setIsListening(false);
53
63
  setLoading(false);
64
+ },
65
+ // Partial result callback for live transcription
66
+ partialResult => {
67
+ if (partialResult) {
68
+ if (setInput) {
69
+ setInput(partialResult);
70
+ } else {
71
+ console.warn('VoiceButton: setInput prop is not provided for partial results');
72
+ }
73
+ }
54
74
  });
55
75
  if (!initialized) {
56
76
  // Only show this alert once per session
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useContext","useEffect","TouchableOpacity","ActivityIndicator","StyleSheet","Alert","Linking","Platform","Ionicons","useAsyncStorage","startRecording","stopRecording","cancelRecording","requestAudioPermission","cleanup","initVoice","resetStoredPermission","setPermissionStatusHandlers","AppContext","PERMISSION_STORAGE_KEY","VoiceButton","handleVoiceSend","isListening","setIsListening","loading","setLoading","permissionChecked","setPermissionChecked","hasPermission","setHasPermission","permissionStatus","setPermissionStatus","setupVoice","permissionResult","initialized","result","error","includes","alert","console","toggleRecording","text","style","onPress","openAppSettings","checkPermission","started","OS","openURL","openSettings","createElement","styles","button","disabled","size","color","name","create","justifyContent","alignItems"],"sourceRoot":"../../../src","sources":["components/voice.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useContext","useEffect","TouchableOpacity","ActivityIndicator","StyleSheet","Alert","Linking","Platform","Ionicons","useAsyncStorage","startRecording","stopRecording","cancelRecording","requestAudioPermission","cleanup","initVoice","resetStoredPermission","setPermissionStatusHandlers","AppContext","PERMISSION_STORAGE_KEY","VoiceButton","setInput","handleVoiceSend","isListening","setIsListening","loading","setLoading","permissionChecked","setPermissionChecked","hasPermission","setHasPermission","permissionStatus","setPermissionStatus","setupVoice","permissionResult","initialized","result","error","console","log","includes","alert","warn","partialResult","toggleRecording","text","style","onPress","openAppSettings","checkPermission","started","OS","openURL","openSettings","createElement","styles","button","disabled","size","color","name","create","justifyContent","alignItems"],"sourceRoot":"../../../src","sources":["components/voice.js"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,7 @@ export const WelcomeInput = ({
16
16
  showModal,
17
17
  theme
18
18
  } = useContext(AppContext);
19
+ const inputRef = useRef(null);
19
20
  const handleKeyPress = ({
20
21
  nativeEvent
21
22
  }) => {
@@ -33,6 +34,7 @@ export const WelcomeInput = ({
33
34
  return /*#__PURE__*/React.createElement(View, {
34
35
  style: styles.inputContainer
35
36
  }, /*#__PURE__*/React.createElement(TextInput, {
37
+ ref: inputRef,
36
38
  style: styles.input,
37
39
  value: input,
38
40
  onChangeText: setInput,
@@ -42,9 +44,34 @@ export const WelcomeInput = ({
42
44
  returnKeyType: "send",
43
45
  enablesReturnKeyAutomatically: true,
44
46
  onKeyPress: handleKeyPress,
45
- onSubmitEditing: onSubmitEditing
47
+ onSubmitEditing: onSubmitEditing,
48
+ selection: undefined
46
49
  // blurOnSubmit={false}
47
- }), /*#__PURE__*/React.createElement(VoiceButton, null), /*#__PURE__*/React.createElement(TouchableOpacity, {
50
+ }), /*#__PURE__*/React.createElement(VoiceButton, {
51
+ setInput: text => {
52
+ setInput(text);
53
+ // Auto-scroll to end
54
+ if (inputRef.current) {
55
+ // For iOS and Android, blur and refocus to ensure scroll
56
+ inputRef.current.blur();
57
+ setTimeout(() => {
58
+ if (inputRef.current) {
59
+ inputRef.current.focus();
60
+ // Set selection to end - Android sometimes needs a slight delay
61
+ if (Platform.OS === 'android') {
62
+ setTimeout(() => {
63
+ if (inputRef.current) {
64
+ inputRef.current.setSelection(text.length, text.length);
65
+ }
66
+ }, 10);
67
+ } else {
68
+ inputRef.current.setSelection(text.length, text.length);
69
+ }
70
+ }
71
+ }, 50);
72
+ }
73
+ }
74
+ }), /*#__PURE__*/React.createElement(TouchableOpacity, {
48
75
  style: styles.sendButton,
49
76
  onPress: () => handleSend(input),
50
77
  disabled: !input.trim()
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Header","AppContext","Ionicons","VoiceButton","WelcomeInput","onProductCardClick","onAddToCartClick","data","handleSend","input","setInput","showModal","theme","handleKeyPress","nativeEvent","key","shiftKey","preventDefault","onSubmitEditing","trim","createElement","style","styles","inputContainer","value","onChangeText","placeholder","placeholderTextColor","multiline","returnKeyType","enablesReturnKeyAutomatically","onKeyPress","sendButton","onPress","disabled","name","size","color","primaryColor","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","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Header","AppContext","Ionicons","VoiceButton","WelcomeInput","onProductCardClick","onAddToCartClick","data","handleSend","input","setInput","showModal","theme","inputRef","handleKeyPress","nativeEvent","key","shiftKey","preventDefault","onSubmitEditing","trim","createElement","style","styles","inputContainer","ref","value","onChangeText","placeholder","placeholderTextColor","multiline","returnKeyType","enablesReturnKeyAutomatically","onKeyPress","selection","undefined","text","current","blur","setTimeout","focus","OS","setSelection","length","sendButton","onPress","disabled","name","size","color","primaryColor","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":[]}
@@ -5,10 +5,13 @@ import Voice from '@react-native-voice/voice';
5
5
  import { check, PERMISSIONS, request, RESULTS } from 'react-native-permissions';
6
6
  import useAsyncStorage from '../hooks/useAsyncStorage';
7
7
  let resultCallback = null;
8
+ let partialResultCallback = null;
8
9
  let silenceTimer = null;
9
10
  let isCurrentlyRecording = false;
10
11
  let finalResult = '';
12
+ let lastPartialResultTime = 0;
11
13
  const SILENCE_DURATION = 1500; // 1.5 seconds of silence before stopping
14
+ const PARTIAL_RESULT_THROTTLE = 100; // Throttle partial results to every 100ms
12
15
 
13
16
  // Add this constant for AsyncStorage key
14
17
  const PERMISSION_STORAGE_KEY = '@voice_permission_status';
@@ -23,9 +26,10 @@ export function setPermissionStatusHandlers(getter, setter) {
23
26
  }
24
27
 
25
28
  // Initialize Voice handlers
26
- export async function initVoice(onResult) {
29
+ export async function initVoice(onResult, onPartialResult = null) {
27
30
  try {
28
31
  resultCallback = onResult;
32
+ partialResultCallback = onPartialResult;
29
33
  finalResult = '';
30
34
 
31
35
  // Check if Voice module is available
@@ -41,6 +45,18 @@ export async function initVoice(onResult) {
41
45
  return false;
42
46
  }
43
47
 
48
+ // Check if another recognition session is active
49
+ try {
50
+ const isRecognizing = await Voice.isRecognizing();
51
+ if (isRecognizing) {
52
+ console.log('Another recognition session is active, cleaning up...');
53
+ await Voice.destroy();
54
+ await new Promise(resolve => setTimeout(resolve, 300));
55
+ }
56
+ } catch (e) {
57
+ // Ignore errors checking recognition state
58
+ }
59
+
44
60
  // Set up all event listeners
45
61
  Voice.onSpeechStart = e => {
46
62
  console.log('onSpeechStart: ', e);
@@ -50,6 +66,9 @@ export async function initVoice(onResult) {
50
66
  clearTimeout(silenceTimer);
51
67
  silenceTimer = null;
52
68
  }
69
+
70
+ // Start initial silence detection
71
+ handleSilenceDetection();
53
72
  };
54
73
  Voice.onSpeechRecognized = e => {
55
74
  console.log('onSpeechRecognized: ', e);
@@ -65,37 +84,49 @@ export async function initVoice(onResult) {
65
84
  silenceTimer = null;
66
85
  }
67
86
 
68
- // Only handle final result if we're still recording
69
- if (isCurrentlyRecording) {
70
- await handleFinalResult();
87
+ // On iOS, onSpeechEnd can fire multiple times, so check if we're still recording
88
+ if (isCurrentlyRecording && finalResult) {
89
+ // Don't call handleFinalResult here on iOS as it causes the error
90
+ // Instead, just mark that speech ended and let silence detection handle it
91
+ if (Platform.OS === 'ios') {
92
+ console.log('iOS: Speech ended, waiting for silence detection to handle cleanup');
93
+ } else {
94
+ await handleFinalResult();
95
+ }
71
96
  }
72
97
  };
73
98
  Voice.onSpeechError = async e => {
74
- var _e$error, _e$error2;
75
- // console.error('onSpeechError: ', e);
76
-
99
+ var _e$error, _e$error2, _e$error3, _e$error4;
100
+ console.error('onSpeechError: ', e);
77
101
  if (silenceTimer) {
78
102
  clearTimeout(silenceTimer);
79
103
  silenceTimer = null;
80
104
  }
81
105
 
82
- // Check for "No speech detected" error
106
+ // Check for specific error types
83
107
  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"));
108
+
109
+ // iOS error 1101 is often transient and related to service availability
110
+ const isTransientIOSError = 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")));
84
111
  await cleanupVoiceSession();
85
112
 
86
- // Only send error to callback if it's not a "No speech detected" error
87
- // if (!isNoSpeechError) {
88
- // resultCallback(null, e.error?.message || 'Speech recognition error');
89
- // } else {
90
- // console.log('No speech detected, ignoring error');
91
- // // Optionally, call the callback with null parameters or a special indicator
92
- // resultCallback(null, null); // This won't trigger an error alert in the component
93
- // }
113
+ // Only send error to callback for non-transient errors
114
+ if (!isNoSpeechError && !isTransientIOSError && resultCallback) {
115
+ var _e$error5;
116
+ resultCallback(null, ((_e$error5 = e.error) === null || _e$error5 === void 0 ? void 0 : _e$error5.message) || 'Speech recognition error');
117
+ } else if (isTransientIOSError) {
118
+ console.log('Transient iOS speech recognition error, attempting to recover');
119
+ // Send the final result if we have one
120
+ if (finalResult && resultCallback) {
121
+ resultCallback(finalResult);
122
+ }
123
+ }
94
124
  };
95
125
  Voice.onSpeechResults = e => {
96
126
  console.log('onSpeechResults: ', e);
97
127
  if (e.value && e.value.length > 0) {
98
128
  finalResult = e.value[0];
129
+ // Also trigger silence detection for final results
99
130
  handleSilenceDetection();
100
131
  }
101
132
  };
@@ -106,6 +137,13 @@ export async function initVoice(onResult) {
106
137
  }
107
138
  if (e.value && e.value.length > 0) {
108
139
  finalResult = e.value[0];
140
+
141
+ // Throttle partial results to prevent overwhelming the UI and speech service
142
+ const now = Date.now();
143
+ if (partialResultCallback && now - lastPartialResultTime > PARTIAL_RESULT_THROTTLE) {
144
+ partialResultCallback(e.value[0]);
145
+ lastPartialResultTime = now;
146
+ }
109
147
  handleSilenceDetection();
110
148
  }
111
149
  };
@@ -125,22 +163,36 @@ const handleSilenceDetection = () => {
125
163
  clearTimeout(silenceTimer);
126
164
  }
127
165
  silenceTimer = setTimeout(async () => {
128
- if (isCurrentlyRecording) {
166
+ console.log('Silence detected, stopping recording...');
167
+ if (isCurrentlyRecording && finalResult) {
129
168
  await handleFinalResult();
130
169
  }
131
170
  }, SILENCE_DURATION);
132
171
  };
133
172
  const handleFinalResult = async () => {
134
173
  if (!isCurrentlyRecording) return;
135
- if (finalResult) {
174
+
175
+ // Set flag immediately to prevent race conditions
176
+ isCurrentlyRecording = false;
177
+
178
+ // Clear silence timer first
179
+ if (silenceTimer) {
180
+ clearTimeout(silenceTimer);
181
+ silenceTimer = null;
182
+ }
183
+
184
+ // Send result if we have one
185
+ if (finalResult && resultCallback) {
136
186
  resultCallback(finalResult);
137
187
  }
138
188
 
139
- // Stop recording first
140
- await stopRecording();
189
+ // Give iOS time to finish processing before cleanup
190
+ if (Platform.OS === 'ios') {
191
+ await new Promise(resolve => setTimeout(resolve, 100));
192
+ }
141
193
 
142
- // Then clean up the session
143
- await cleanupVoiceSession();
194
+ // Stop recording with proper sequence
195
+ await stopRecording();
144
196
  };
145
197
  const cleanupVoiceSession = async () => {
146
198
  isCurrentlyRecording = false;
@@ -204,6 +256,9 @@ export async function startRecording() {
204
256
  console.error('No permission to record audio');
205
257
  return false;
206
258
  }
259
+
260
+ // Reset throttle timer
261
+ lastPartialResultTime = 0;
207
262
  await Voice.start('en-US');
208
263
  isCurrentlyRecording = true;
209
264
  return true;
@@ -215,7 +270,21 @@ export async function startRecording() {
215
270
  }
216
271
  export async function stopRecording() {
217
272
  try {
218
- if (!isCurrentlyRecording || !Voice) return;
273
+ if (!Voice) return;
274
+
275
+ // Already stopped
276
+ if (!isCurrentlyRecording) {
277
+ // Still try to clean up any lingering session
278
+ try {
279
+ const isRecognizing = await Voice.isRecognizing();
280
+ if (isRecognizing) {
281
+ await Voice.stop();
282
+ }
283
+ } catch (e) {
284
+ // Ignore errors checking recognition state
285
+ }
286
+ return;
287
+ }
219
288
 
220
289
  // Set this first to prevent race conditions
221
290
  isCurrentlyRecording = false;
@@ -224,21 +293,43 @@ export async function stopRecording() {
224
293
  silenceTimer = null;
225
294
  }
226
295
 
227
- // First try to stop
228
- try {
229
- await Voice.stop();
230
- // Wait a bit for stop to complete
231
- await new Promise(resolve => setTimeout(resolve, 100));
232
- } catch (error) {
233
- console.error('Error stopping Voice:', error);
234
- }
235
-
236
- // Then force destroy
237
- try {
238
- await Voice.destroy();
239
- await new Promise(resolve => setTimeout(resolve, 300));
240
- } catch (error) {
241
- console.error('Error destroying Voice:', error);
296
+ // For iOS, use a more careful approach
297
+ if (Platform.OS === 'ios') {
298
+ try {
299
+ // First cancel any ongoing recognition
300
+ await Voice.cancel();
301
+ await new Promise(resolve => setTimeout(resolve, 50));
302
+ } catch (error) {
303
+ // Ignore cancel errors
304
+ }
305
+ try {
306
+ // Then stop
307
+ await Voice.stop();
308
+ await new Promise(resolve => setTimeout(resolve, 100));
309
+ } catch (error) {
310
+ console.log('Error stopping Voice (expected on iOS):', error);
311
+ }
312
+ try {
313
+ // Finally destroy
314
+ await Voice.destroy();
315
+ await new Promise(resolve => setTimeout(resolve, 200));
316
+ } catch (error) {
317
+ console.log('Error destroying Voice (expected on iOS):', error);
318
+ }
319
+ } else {
320
+ // Android can handle the normal sequence
321
+ try {
322
+ await Voice.stop();
323
+ await new Promise(resolve => setTimeout(resolve, 100));
324
+ } catch (error) {
325
+ console.error('Error stopping Voice:', error);
326
+ }
327
+ try {
328
+ await Voice.destroy();
329
+ await new Promise(resolve => setTimeout(resolve, 300));
330
+ } catch (error) {
331
+ console.error('Error destroying Voice:', error);
332
+ }
242
333
  }
243
334
 
244
335
  // Final cleanup
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Voice","check","PERMISSIONS","request","RESULTS","useAsyncStorage","resultCallback","silenceTimer","isCurrentlyRecording","finalResult","SILENCE_DURATION","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","console","error","isAvailable","onSpeechStart","e","log","clearTimeout","onSpeechRecognized","isFinal","handleFinalResult","onSpeechEnd","onSpeechError","_e$error","_e$error2","isNoSpeechError","code","message","includes","cleanupVoiceSession","onSpeechResults","value","length","handleSilenceDetection","onSpeechPartialResults","OS","onSpeechVolumeChanged","setTimeout","stopRecording","isRecognizing","stop","Promise","resolve","destroy","stillRecognizing","startRecording","hasPermission","requestAudioPermission","start","cancelRecording","cancel","storedPermission","permissionResult","requestAndroidPermission","requestIOSPermission","micPermission","ANDROID","RECORD_AUDIO","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":["Platform","Voice","check","PERMISSIONS","request","RESULTS","useAsyncStorage","resultCallback","partialResultCallback","silenceTimer","isCurrentlyRecording","finalResult","lastPartialResultTime","SILENCE_DURATION","PARTIAL_RESULT_THROTTLE","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","onPartialResult","console","error","isAvailable","isRecognizing","log","destroy","Promise","resolve","setTimeout","e","onSpeechStart","clearTimeout","handleSilenceDetection","onSpeechRecognized","isFinal","handleFinalResult","onSpeechEnd","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","ANDROID","RECORD_AUDIO","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 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/input.js"],"names":[],"mappings":"AAgBO;;;sBA2CN;kBA3D8D,OAAO"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/input.js"],"names":[],"mappings":"AAgBO;;;sBAoEN;kBApF8D,OAAO"}
@@ -1,3 +1,5 @@
1
- export function VoiceButton(): React.JSX.Element;
1
+ export function VoiceButton({ setInput }: {
2
+ setInput: any;
3
+ }): React.JSX.Element;
2
4
  import React from 'react';
3
5
  //# sourceMappingURL=voice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/components/voice.js"],"names":[],"mappings":"AAqBO,iDAqKN;kBAxLsD,OAAO"}
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/components/voice.js"],"names":[],"mappings":"AAqBO;;sBAwLN;kBA3MsD,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"welcomeInput.d.ts","sourceRoot":"","sources":["../../../src/components/welcomeInput.js"],"names":[],"mappings":"AAgBO;;;sBA+CN;kBA/D8D,OAAO"}
1
+ {"version":3,"file":"welcomeInput.d.ts","sourceRoot":"","sources":["../../../src/components/welcomeInput.js"],"names":[],"mappings":"AAgBO;;;sBAwEN;kBAxF8D,OAAO"}
@@ -1,5 +1,5 @@
1
1
  export function setPermissionStatusHandlers(getter: any, setter: any): void;
2
- export function initVoice(onResult: any): Promise<boolean>;
2
+ export function initVoice(onResult: any, onPartialResult?: null): Promise<boolean>;
3
3
  export function startRecording(): Promise<boolean>;
4
4
  export function stopRecording(): Promise<void>;
5
5
  export function cancelRecording(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAqBA,4EAGC;AAGD,2DA4GC;AA+ED,mDAyBC;AAED,+CAoCC;AAED,iDASC;AAED,2DA2BC;AAiDD,iDAMC;AAED,gCAgBC"}
1
+ {"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAwBA,4EAGC;AAGD,mFAkJC;AA4FD,mDA4BC;AAED,+CA2EC;AAED,iDASC;AAED,2DA2BC;AAiDD,iDAMC;AAED,gCAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-srschat",
3
- "version": "0.1.59",
3
+ "version": "0.1.60",
4
4
  "private": false,
5
5
  "description": "A modern, sophisticated chat interface for React Native",
6
6
  "main": "lib/commonjs/index",
@@ -16,6 +16,7 @@ import { VoiceButton } from './voice';
16
16
 
17
17
  export const ChatInput = ({ onProductCardClick, onAddToCartClick }) => {
18
18
  const { handleSend, input, setInput, showModal, data } = useContext(AppContext);
19
+ const inputRef = useRef(null);
19
20
 
20
21
  const handleKeyPress = ({ nativeEvent }) => {
21
22
  if (nativeEvent.key === 'return' && !nativeEvent.shiftKey) {
@@ -37,6 +38,7 @@ export const ChatInput = ({ onProductCardClick, onAddToCartClick }) => {
37
38
  <View style={styles.inputWrapper}>
38
39
  <View style={styles.inputContainer}>
39
40
  <TextInput
41
+ ref={inputRef}
40
42
  style={styles.input}
41
43
  value={input}
42
44
  onChangeText={setInput}
@@ -47,9 +49,32 @@ export const ChatInput = ({ onProductCardClick, onAddToCartClick }) => {
47
49
  enablesReturnKeyAutomatically={true}
48
50
  onKeyPress={handleKeyPress}
49
51
  onSubmitEditing={onSubmitEditing}
52
+ selection={undefined}
50
53
  blurOnSubmit={false}
51
54
  />
52
- <VoiceButton/>
55
+ <VoiceButton 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
+ }}/>
53
78
  <TouchableOpacity style={styles.sendButton} onPress={() => handleSend(input)} >
54
79
  <Ionicons name="paper-plane-outline" size={24} color='#8E8E93' />
55
80
  </TouchableOpacity>