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.
- package/lib/commonjs/components/input.js +28 -1
- package/lib/commonjs/components/input.js.map +1 -1
- package/lib/commonjs/components/voice.js +28 -11
- 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 +186 -157
- 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 +28 -11
- 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 +186 -157
- 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 +36 -18
- package/src/components/welcomeInput.js +26 -1
- package/src/utils/audioRecorder.js +193 -174
|
@@ -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;
|
|
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 =
|
|
60
|
-
console.log('onSpeechStart
|
|
61
|
-
|
|
68
|
+
_voice.default.onSpeechStart = () => {
|
|
69
|
+
console.log('[onSpeechStart] Setting state to LISTENING');
|
|
70
|
+
state = State.LISTENING;
|
|
62
71
|
finalResult = '';
|
|
63
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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 =
|
|
92
|
+
_voice.default.onSpeechError = e => {
|
|
88
93
|
var _e$error, _e$error2;
|
|
89
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
173
|
+
if (state === State.LISTENING) {
|
|
143
174
|
await handleFinalResult();
|
|
144
175
|
}
|
|
145
176
|
}, SILENCE_DURATION);
|
|
146
177
|
};
|
|
147
178
|
const handleFinalResult = async () => {
|
|
148
|
-
|
|
149
|
-
if (
|
|
150
|
-
|
|
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
|
-
//
|
|
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
|
-
//
|
|
157
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
//
|
|
173
|
-
|
|
174
|
-
if (isRecognizing) {
|
|
225
|
+
// On Android, destroy any lingering instance before starting
|
|
226
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
175
227
|
try {
|
|
176
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
276
|
+
cleanupVoiceSession();
|
|
227
277
|
return false;
|
|
228
278
|
}
|
|
229
279
|
}
|
|
230
280
|
async function stopRecording() {
|
|
231
281
|
try {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
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
|
-
//
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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
|
-
|
|
259
|
-
await
|
|
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
|
-
|
|
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
|
-
|
|
307
|
+
cleanupVoiceSession();
|
|
271
308
|
} catch (error) {
|
|
272
309
|
console.error('Error canceling voice recognition:', error);
|
|
273
|
-
|
|
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
|
-
//
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
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
|
-
|
|
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,
|
|
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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACtE,SACEC,IAAI,EACJC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,gBAAgB,EAChBC,QAAQ,EACRC,oBAAoB,EACpBC,QAAQ,QACH,cAAc;AACrB,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,UAAU,QAAQ,wBAAwB;AACnD,OAAOC,QAAQ,MAAM,oCAAoC;AACzD,SAASC,WAAW,QAAQ,SAAS;AAErC,OAAO,MAAMC,SAAS,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC;AAAiB,CAAC,KAAK;EACrE,MAAM;IAAEC,UAAU;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAK,CAAC,GAAGrB,UAAU,CAACW,UAAU,CAAC;
|
|
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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACtE,SACEC,IAAI,EACJC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,gBAAgB,EAChBC,QAAQ,EACRC,oBAAoB,EACpBC,QAAQ,QACH,cAAc;AACrB,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,UAAU,QAAQ,wBAAwB;AACnD,OAAOC,QAAQ,MAAM,oCAAoC;AACzD,SAASC,WAAW,QAAQ,SAAS;AAErC,OAAO,MAAMC,SAAS,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC;AAAiB,CAAC,KAAK;EACrE,MAAM;IAAEC,UAAU;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAK,CAAC,GAAGrB,UAAU,CAACW,UAAU,CAAC;EAC/E,MAAMW,QAAQ,GAAGrB,MAAM,CAAC,IAAI,CAAC;EAE7B,MAAMsB,cAAc,GAAGA,CAAC;IAAEC;EAAY,CAAC,KAAK;IAC1C,IAAIA,WAAW,CAACC,GAAG,KAAK,QAAQ,IAAI,CAACD,WAAW,CAACE,QAAQ,EAAE;MACzDF,WAAW,CAACG,cAAc,IAAIH,WAAW,CAACG,cAAc,CAAC,CAAC;MAC1DV,UAAU,CAACC,KAAK,CAAC;MACjB;IACF;EACF,CAAC;EAED,MAAMU,eAAe,GAAGA,CAAA,KAAM;IAC5B,IAAIV,KAAK,CAACW,IAAI,CAAC,CAAC,EAAE;MAChBZ,UAAU,CAACC,KAAK,CAAC;IACnB;EACF,CAAC;EAED,oBACErB,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAAkC,QAAA,qBACAlC,KAAA,CAAAiC,aAAA,CAAC5B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACC,QAAS;IAACC,gBAAgB,EAAE;EAAM,GAAC,+CAAmD,CAAC,eAC3GtC,KAAA,CAAAiC,aAAA,CAAC1B,IAAI;IAAC4B,KAAK,EAAEC,MAAM,CAACG;EAAa,gBAC7BvC,KAAA,CAAAiC,aAAA,CAAC1B,IAAI;IAAC4B,KAAK,EAAEC,MAAM,CAACI;EAAe,gBACnCxC,KAAA,CAAAiC,aAAA,CAACzB,SAAS;IACNiC,GAAG,EAAEhB,QAAS;IACdU,KAAK,EAAEC,MAAM,CAACf,KAAM;IACpBqB,KAAK,EAAErB,KAAM;IACbsB,YAAY,EAAErB,QAAS;IACvBsB,WAAW,EAAC,mBAAmB;IAC/BC,oBAAoB,EAAC,MAAM;IAC3BC,SAAS,EAAE,KAAM;IACjBC,aAAa,EAAC,MAAM;IACpBC,6BAA6B,EAAE,IAAK;IACpCC,UAAU,EAAEvB,cAAe;IAC3BK,eAAe,EAAEA,eAAgB;IACjCmB,SAAS,EAAEC,SAAU;IACrBC,YAAY,EAAE;EAAM,CACvB,CAAC,eACFpD,KAAA,CAAAiC,aAAA,CAACjB,WAAW;IAACM,QAAQ,EAAG+B,IAAI,IAAK;MAC/B/B,QAAQ,CAAC+B,IAAI,CAAC;MACd;MACA,IAAI5B,QAAQ,CAAC6B,OAAO,EAAE;QACpB;QACA7B,QAAQ,CAAC6B,OAAO,CAACC,IAAI,CAAC,CAAC;QACvBC,UAAU,CAAC,MAAM;UACf,IAAI/B,QAAQ,CAAC6B,OAAO,EAAE;YACpB7B,QAAQ,CAAC6B,OAAO,CAACG,KAAK,CAAC,CAAC;YACxB;YACA,IAAI/C,QAAQ,CAACgD,EAAE,KAAK,SAAS,EAAE;cAC7BF,UAAU,CAAC,MAAM;gBACf,IAAI/B,QAAQ,CAAC6B,OAAO,EAAE;kBACpB7B,QAAQ,CAAC6B,OAAO,CAACK,YAAY,CAACN,IAAI,CAACO,MAAM,EAAEP,IAAI,CAACO,MAAM,CAAC;gBACzD;cACF,CAAC,EAAE,EAAE,CAAC;YACR,CAAC,MAAM;cACLnC,QAAQ,CAAC6B,OAAO,CAACK,YAAY,CAACN,IAAI,CAACO,MAAM,EAAEP,IAAI,CAACO,MAAM,CAAC;YACzD;UACF;QACF,CAAC,EAAE,EAAE,CAAC;MACR;IACF;EAAE,CAAC,CAAC,eACJ5D,KAAA,CAAAiC,aAAA,CAACxB,gBAAgB;IAAC0B,KAAK,EAAEC,MAAM,CAACyB,UAAW;IAACC,OAAO,EAAEA,CAAA,KAAM1C,UAAU,CAACC,KAAK;EAAE,gBACzErB,KAAA,CAAAiC,aAAA,CAAClB,QAAQ;IAACgD,IAAI,EAAC,qBAAqB;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAS,CAAE,CAClD,CACZ,CACJ,CACJ,CAAC;AAEP,CAAC;AAED,MAAM7B,MAAM,GAAG9B,UAAU,CAAC4D,MAAM,CAAC;EAC/B3B,YAAY,EAAE;IACZ4B,eAAe,EAAE,SAAS;IAC1BC,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE,CAAC;IAClBC,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAE;EAClB,CAAC;EACD/B,cAAc,EAAE;IACdgC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBL,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE,CAAC;IAClBF,eAAe,EAAE,SAAS;IAC1BO,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,CAAC;IACTC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MACZC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE;IACV,CAAC;IACDC,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACD7D,KAAK,EAAE;IACL8D,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,EAAE;IACZf,eAAe,EAAE,CAAC;IAClBD,iBAAiB,EAAE,EAAE;IACrBH,KAAK,EAAE;EACT,CAAC;EACDoB,WAAW,EAAE;IACXC,OAAO,EAAE;EACX,CAAC;EACDzB,UAAU,EAAE;IACVyB,OAAO,EAAE,CAAC;IACVC,UAAU,EAAE;EACd,CAAC;EACDC,cAAc,EAAE;IACdC,OAAO,EAAE;EACX,CAAC;EACDpD,QAAQ,EAAE;IACRqD,SAAS,EAAE,QAAQ;IACnBN,QAAQ,EAAE,EAAE;IACZnB,KAAK,EAAE,SAAS;IAChB0B,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE,CAAC;IACZC,YAAY,EAAE,CAAC;IACfC,iBAAiB,EAAE,QAAQ;IAC3BC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|