react-native-srschat 0.1.59 → 0.1.61

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.
@@ -14,15 +14,21 @@ exports.stopRecording = stopRecording;
14
14
  var _reactNative = require("react-native");
15
15
  var _voice = _interopRequireDefault(require("@react-native-voice/voice"));
16
16
  var _reactNativePermissions = require("react-native-permissions");
17
- var _useAsyncStorage = _interopRequireDefault(require("../hooks/useAsyncStorage"));
18
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
18
  // audioRecorder.js
20
19
 
21
20
  let resultCallback = null;
21
+ let partialResultCallback = null;
22
22
  let silenceTimer = null;
23
- let isCurrentlyRecording = false;
24
23
  let finalResult = '';
25
- const SILENCE_DURATION = 1500; // 1.5 seconds of silence before stopping
24
+ const SILENCE_DURATION = 1500;
25
+ const State = {
26
+ IDLE: 'IDLE',
27
+ LISTENING: 'LISTENING',
28
+ FINALIZING: 'FINALIZING'
29
+ };
30
+ let state = State.IDLE;
31
+ let listenersBound = false;
26
32
 
27
33
  // Add this constant for AsyncStorage key
28
34
  const PERMISSION_STORAGE_KEY = '@voice_permission_status';
@@ -36,11 +42,13 @@ function setPermissionStatusHandlers(getter, setter) {
36
42
  permissionStatusSetter = setter;
37
43
  }
38
44
 
39
- // Initialize Voice handlers
40
- async function initVoice(onResult) {
45
+ // Initialize Voice handlers - modified to support live transcription
46
+ async function initVoice(onResult, onPartialResult = null) {
41
47
  try {
42
48
  resultCallback = onResult;
49
+ partialResultCallback = onPartialResult; // Store partial callback
43
50
  finalResult = '';
51
+ if (listenersBound) return true;
44
52
 
45
53
  // Check if Voice module is available
46
54
  if (!_voice.default) {
@@ -54,80 +62,103 @@ async function initVoice(onResult) {
54
62
  console.error('Speech recognition is not available on this device');
55
63
  return false;
56
64
  }
65
+ _voice.default.removeAllListeners();
57
66
 
58
67
  // Set up all event listeners
59
- _voice.default.onSpeechStart = e => {
60
- console.log('onSpeechStart: ', e);
61
- isCurrentlyRecording = true;
68
+ _voice.default.onSpeechStart = () => {
69
+ console.log('[onSpeechStart] Setting state to LISTENING');
70
+ state = State.LISTENING;
62
71
  finalResult = '';
63
- if (silenceTimer) {
64
- clearTimeout(silenceTimer);
65
- silenceTimer = null;
66
- }
67
- };
68
- _voice.default.onSpeechRecognized = e => {
69
- console.log('onSpeechRecognized: ', e);
70
- if (e.isFinal) {
71
- console.log('Speech recognition final');
72
- handleFinalResult();
73
- }
72
+ clearSilenceTimer();
74
73
  };
75
- _voice.default.onSpeechEnd = async e => {
76
- console.log('onSpeechEnd: ', e);
77
- if (silenceTimer) {
78
- clearTimeout(silenceTimer);
79
- silenceTimer = null;
80
- }
81
74
 
82
- // Only handle final result if we're still recording
83
- if (isCurrentlyRecording) {
84
- await handleFinalResult();
75
+ // Optional: ignore onSpeechRecognized or just log
76
+ _voice.default.onSpeechRecognized = () => {};
77
+ _voice.default.onSpeechEnd = () => {
78
+ console.log('[onSpeechEnd] Speech ended, current state:', state);
79
+ clearSilenceTimer();
80
+ // Always reset to IDLE when speech ends (sessions should be considered over)
81
+ console.log('[onSpeechEnd] Scheduling IDLE reset');
82
+ if (_reactNative.Platform.OS === 'android') {
83
+ setTimeout(() => {
84
+ console.log('[onSpeechEnd] Android timeout - setting state to IDLE');
85
+ state = State.IDLE;
86
+ }, 800); // Increased delay
87
+ } else {
88
+ console.log('[onSpeechEnd] iOS - setting state to IDLE immediately');
89
+ state = State.IDLE;
85
90
  }
86
91
  };
87
- _voice.default.onSpeechError = async e => {
92
+ _voice.default.onSpeechError = e => {
88
93
  var _e$error, _e$error2;
89
- // console.error('onSpeechError: ', e);
94
+ console.log('[onSpeechError] Error occurred, current state:', state, 'error:', e);
95
+ clearSilenceTimer();
96
+ const code = (_e$error = e.error) === null || _e$error === void 0 || (_e$error = _e$error.code) === null || _e$error === void 0 ? void 0 : _e$error.toString();
97
+ const msg = ((_e$error2 = e.error) === null || _e$error2 === void 0 ? void 0 : _e$error2.message) || '';
90
98
 
91
- if (silenceTimer) {
92
- clearTimeout(silenceTimer);
93
- silenceTimer = null;
99
+ // Handle callback first
100
+ if (_reactNative.Platform.OS === 'android' && (code === '7' || code === '5')) {
101
+ if (finalResult && resultCallback) resultCallback(finalResult, null);else if (resultCallback) resultCallback(null, null);
102
+ } else if (!msg.includes('No speech detected') && resultCallback) {
103
+ resultCallback(null, msg);
104
+ } else if (resultCallback) {
105
+ resultCallback(null, null);
94
106
  }
95
107
 
96
- // Check for "No speech detected" error
97
- 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"));
98
- await cleanupVoiceSession();
99
-
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
- // }
108
+ // Errors end the session immediately, reset to IDLE with delay
109
+ console.log('[onSpeechError] Scheduling IDLE reset');
110
+ if (_reactNative.Platform.OS === 'android') {
111
+ setTimeout(() => {
112
+ console.log('[onSpeechError] Android timeout - setting state to IDLE');
113
+ state = State.IDLE;
114
+ }, 800); // Increased delay to match onSpeechEnd
115
+ } else {
116
+ console.log('[onSpeechError] iOS - setting state to IDLE immediately');
117
+ state = State.IDLE;
118
+ }
108
119
  };
109
120
  _voice.default.onSpeechResults = e => {
110
- console.log('onSpeechResults: ', e);
121
+ console.log('[onSpeechResults] Results received, current state:', state, 'results:', e);
122
+ clearSilenceTimer();
111
123
  if (e.value && e.value.length > 0) {
112
124
  finalResult = e.value[0];
113
- handleSilenceDetection();
125
+ }
126
+
127
+ // Only call callback if we haven't already (avoid double-calling)
128
+ if (state === State.LISTENING && resultCallback) {
129
+ console.log('[onSpeechResults] Calling callback with results');
130
+ resultCallback(finalResult, null);
131
+ } else {
132
+ console.log('[onSpeechResults] Not calling callback - state:', state);
133
+ }
134
+
135
+ // On Android, we must explicitly stop to avoid session corruption
136
+ if (_reactNative.Platform.OS === 'android') {
137
+ console.log('[onSpeechResults] Android: Explicitly calling stopRecording()');
138
+ stopRecording();
139
+ }
140
+
141
+ // Results end the session, reset to IDLE with delay
142
+ console.log('[onSpeechResults] Scheduling IDLE reset');
143
+ if (_reactNative.Platform.OS === 'android') {
144
+ setTimeout(() => {
145
+ console.log('[onSpeechResults] Android timeout - setting state to IDLE');
146
+ state = State.IDLE;
147
+ }, 800); // Increased delay
148
+ } else {
149
+ console.log('[onSpeechResults] iOS - setting state to IDLE immediately');
150
+ state = State.IDLE;
114
151
  }
115
152
  };
116
153
  _voice.default.onSpeechPartialResults = e => {
117
- console.log('onSpeechPartialResults: ', e);
118
- if (silenceTimer) {
119
- clearTimeout(silenceTimer);
120
- }
121
154
  if (e.value && e.value.length > 0) {
122
155
  finalResult = e.value[0];
156
+ if (partialResultCallback) partialResultCallback(finalResult);
123
157
  handleSilenceDetection();
124
158
  }
125
159
  };
126
- if (_reactNative.Platform.OS === 'android') {
127
- _voice.default.onSpeechVolumeChanged = e => {
128
- console.log('onSpeechVolumeChanged: ', e);
129
- };
130
- }
160
+ if (_reactNative.Platform.OS === 'android') _voice.default.onSpeechVolumeChanged = () => {};
161
+ listenersBound = true;
131
162
  return true;
132
163
  } catch (error) {
133
164
  console.error('Error initializing Voice:', error);
@@ -139,138 +170,144 @@ const handleSilenceDetection = () => {
139
170
  clearTimeout(silenceTimer);
140
171
  }
141
172
  silenceTimer = setTimeout(async () => {
142
- if (isCurrentlyRecording) {
173
+ if (state === State.LISTENING) {
143
174
  await handleFinalResult();
144
175
  }
145
176
  }, SILENCE_DURATION);
146
177
  };
147
178
  const handleFinalResult = async () => {
148
- if (!isCurrentlyRecording) return;
149
- if (finalResult) {
150
- resultCallback(finalResult);
179
+ console.log('[handleFinalResult] Called, current state:', state);
180
+ if (state !== State.LISTENING) {
181
+ console.log('[handleFinalResult] State not LISTENING, returning');
182
+ return;
151
183
  }
152
184
 
153
- // Stop recording first
185
+ // Set to FINALIZING first to prevent double callbacks
186
+ console.log('[handleFinalResult] Setting state to FINALIZING');
187
+ state = State.FINALIZING;
188
+
189
+ // Call the callback with results
190
+ if (finalResult && resultCallback) {
191
+ console.log('[handleFinalResult] Calling callback with result:', finalResult);
192
+ resultCallback(finalResult, null);
193
+ }
194
+
195
+ // Now stop recording (this will call Voice.stop())
196
+ console.log('[handleFinalResult] Calling stopRecording');
154
197
  await stopRecording();
198
+ };
199
+ const cleanupVoiceSession = () => {
200
+ console.log('[cleanupVoiceSession] Called, current state:', state);
201
+ finalResult = '';
202
+ clearSilenceTimer();
155
203
 
156
- // Then clean up the session
157
- await cleanupVoiceSession();
204
+ // Add delay before allowing next session on Android
205
+ if (_reactNative.Platform.OS === 'android') {
206
+ setTimeout(() => {
207
+ console.log('[cleanupVoiceSession] Android timeout - setting state to IDLE');
208
+ state = State.IDLE;
209
+ }, 800);
210
+ } else {
211
+ console.log('[cleanupVoiceSession] iOS - setting state to IDLE immediately');
212
+ state = State.IDLE;
213
+ }
158
214
  };
159
- const cleanupVoiceSession = async () => {
160
- isCurrentlyRecording = false;
215
+ const clearSilenceTimer = () => {
161
216
  if (silenceTimer) {
162
217
  clearTimeout(silenceTimer);
163
218
  silenceTimer = null;
164
219
  }
220
+ };
221
+ async function startRecording() {
165
222
  try {
166
- // Check if Voice module is available
167
- if (!_voice.default) {
168
- console.log('Voice module not available during cleanup');
169
- return;
170
- }
223
+ console.log('[startRecording] Called, current state:', state);
171
224
 
172
- // First try to stop if still recognizing
173
- const isRecognizing = await _voice.default.isRecognizing();
174
- if (isRecognizing) {
225
+ // On Android, destroy any lingering instance before starting
226
+ if (_reactNative.Platform.OS === 'android') {
175
227
  try {
176
- await _voice.default.stop();
177
- await new Promise(resolve => setTimeout(resolve, 100));
178
- } catch (e) {
179
- console.error('Error stopping in cleanup:', e);
180
- }
181
- }
182
-
183
- // Then force destroy
184
- await _voice.default.destroy();
185
- await new Promise(resolve => setTimeout(resolve, 300));
186
-
187
- // Double check and force destroy again if needed
188
- const stillRecognizing = await _voice.default.isRecognizing();
189
- if (stillRecognizing) {
190
- await _voice.default.destroy();
191
- await new Promise(resolve => setTimeout(resolve, 300));
192
- }
193
- } catch (error) {
194
- console.error('Error in cleanupVoiceSession:', error);
195
- // Final attempt to destroy on error
196
- try {
197
- if (_voice.default) {
228
+ console.log('[startRecording] Android: Proactively destroying Voice instance');
198
229
  await _voice.default.destroy();
230
+ await new Promise(r => setTimeout(r, 100)); // Short delay for destroy to complete
231
+ } catch (e) {
232
+ console.log('[startRecording] Proactive destroy failed, may be okay:', e);
199
233
  }
200
- } catch (e) {
201
- console.error('Final destroy attempt failed:', e);
202
234
  }
203
- }
204
- finalResult = '';
205
- };
206
- async function startRecording() {
207
- try {
208
- // Check if Voice module is available
209
235
  if (!_voice.default) {
210
- console.error('Voice module is not available');
236
+ console.log('[startRecording] Voice not available');
237
+ return false;
238
+ }
239
+ if (state !== State.IDLE) {
240
+ console.log('[startRecording] State not IDLE, returning false');
211
241
  return false;
212
242
  }
213
-
214
- // Ensure cleanup of any existing session
215
- await cleanupVoiceSession();
216
243
  const hasPermission = await requestAudioPermission();
217
244
  if (!hasPermission) {
218
245
  console.error('No permission to record audio');
219
246
  return false;
220
247
  }
248
+ const recognizing = await _voice.default.isRecognizing();
249
+ console.log('[startRecording] Voice.isRecognizing():', recognizing);
250
+ if (recognizing) {
251
+ console.log('[startRecording] Already recognizing, canceling first');
252
+ await _voice.default.cancel();
253
+ // Wait longer for cancel to take effect
254
+ await new Promise(r => setTimeout(r, 500));
255
+
256
+ // Double-check if still recognizing after cancel
257
+ const stillRecognizing = await _voice.default.isRecognizing();
258
+ console.log('[startRecording] After cancel, still recognizing:', stillRecognizing);
259
+ if (stillRecognizing) {
260
+ console.log('[startRecording] Still recognizing after cancel, stopping');
261
+ try {
262
+ await _voice.default.stop();
263
+ await new Promise(r => setTimeout(r, 300));
264
+ } catch (e) {
265
+ console.log('[startRecording] Error stopping:', e);
266
+ }
267
+ }
268
+ }
269
+ console.log('[startRecording] Calling Voice.start()');
221
270
  await _voice.default.start('en-US');
222
- isCurrentlyRecording = true;
271
+ console.log('[startRecording] Voice.start() completed, setting state to LISTENING');
272
+ state = State.LISTENING;
223
273
  return true;
224
274
  } catch (error) {
225
275
  console.error('Error starting voice recognition:', error);
226
- await cleanupVoiceSession();
276
+ cleanupVoiceSession();
227
277
  return false;
228
278
  }
229
279
  }
230
280
  async function stopRecording() {
231
281
  try {
232
- if (!isCurrentlyRecording || !_voice.default) return;
233
-
234
- // Set this first to prevent race conditions
235
- isCurrentlyRecording = false;
236
- if (silenceTimer) {
237
- clearTimeout(silenceTimer);
238
- silenceTimer = null;
239
- }
240
-
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);
282
+ console.log('[stopRecording] Called, current state:', state);
283
+ // Can be called from LISTENING or FINALIZING state
284
+ if (state !== State.LISTENING && state !== State.FINALIZING || !_voice.default) {
285
+ console.log('[stopRecording] Invalid state or no Voice, returning');
286
+ return;
248
287
  }
249
288
 
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);
289
+ // Only set to FINALIZING if not already there
290
+ if (state === State.LISTENING) {
291
+ console.log('[stopRecording] Setting state to FINALIZING');
292
+ state = State.FINALIZING;
256
293
  }
257
-
258
- // Final cleanup
259
- await cleanupVoiceSession();
294
+ clearSilenceTimer();
295
+ console.log('[stopRecording] Calling Voice.stop()');
296
+ await _voice.default.stop();
297
+ console.log('[stopRecording] Voice.stop() completed');
260
298
  } catch (error) {
261
299
  console.error('Error in stopRecording:', error);
262
- // Force cleanup on error
263
- await cleanupVoiceSession();
300
+ cleanupVoiceSession();
264
301
  }
265
302
  }
266
303
  async function cancelRecording() {
267
304
  try {
268
305
  if (!_voice.default) return;
269
306
  await _voice.default.cancel();
270
- await cleanupVoiceSession();
307
+ cleanupVoiceSession();
271
308
  } catch (error) {
272
309
  console.error('Error canceling voice recognition:', error);
273
- await cleanupVoiceSession();
310
+ cleanupVoiceSession();
274
311
  }
275
312
  }
276
313
  async function requestAudioPermission() {
@@ -307,11 +344,16 @@ async function requestAndroidPermission() {
307
344
  return false;
308
345
  }
309
346
 
310
- // Skip checking speech recognition services which is causing errors
311
- const services = await _voice.default.getSpeechRecognitionServices();
312
- if (!services || services.length === 0) {
313
- console.error('No speech recognition services available');
314
- return false;
347
+ // Check speech recognition services
348
+ try {
349
+ const services = await _voice.default.getSpeechRecognitionServices();
350
+ if (!services || services.length === 0) {
351
+ console.error('No speech recognition services available');
352
+ return false;
353
+ }
354
+ } catch (e) {
355
+ console.log('Error checking speech services:', e);
356
+ // Continue anyway - some devices report error but work fine
315
357
  }
316
358
  return true;
317
359
  } catch (error) {
@@ -348,19 +390,6 @@ function resetStoredPermission() {
348
390
  return false;
349
391
  }
350
392
  function cleanup() {
351
- if (!_voice.default) {
352
- console.log('Voice module not available during cleanup');
353
- return;
354
- }
355
- _voice.default.destroy().then(() => {
356
- _voice.default.removeAllListeners();
357
- cleanupVoiceSession();
358
- }).catch(error => {
359
- console.error('Error in cleanup:', error);
360
- // Try one more time
361
- if (_voice.default) {
362
- _voice.default.destroy().catch(e => console.error('Final cleanup attempt failed:', e));
363
- }
364
- });
393
+ cleanupVoiceSession();
365
394
  }
366
395
  //# sourceMappingURL=audioRecorder.js.map
@@ -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","e","__esModule","default","resultCallback","partialResultCallback","silenceTimer","finalResult","SILENCE_DURATION","State","IDLE","LISTENING","FINALIZING","state","listenersBound","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","onPartialResult","Voice","console","error","isAvailable","removeAllListeners","onSpeechStart","log","clearSilenceTimer","onSpeechRecognized","onSpeechEnd","Platform","OS","setTimeout","onSpeechError","_e$error","_e$error2","code","toString","msg","message","includes","onSpeechResults","value","length","stopRecording","onSpeechPartialResults","handleSilenceDetection","onSpeechVolumeChanged","clearTimeout","handleFinalResult","cleanupVoiceSession","startRecording","destroy","Promise","r","hasPermission","requestAudioPermission","recognizing","isRecognizing","cancel","stillRecognizing","stop","start","cancelRecording","storedPermission","permissionResult","requestAndroidPermission","requestIOSPermission","micPermission","request","PERMISSIONS","ANDROID","RECORD_AUDIO","RESULTS","GRANTED","services","getSpeechRecognitionServices","IOS","MICROPHONE","speechPermission","SPEECH_RECOGNITION","resetStoredPermission","cleanup"],"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, {
@@ -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":[]}