react-native-srschat 0.1.61 → 0.1.63
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 +3 -2
- package/lib/commonjs/components/input.js.map +1 -1
- package/lib/commonjs/components/productCard.js +1 -1
- package/lib/commonjs/components/productCard.js.map +1 -1
- package/lib/commonjs/components/voice.js +3 -2
- package/lib/commonjs/components/voice.js.map +1 -1
- package/lib/commonjs/components/welcomeInput.js +3 -2
- package/lib/commonjs/components/welcomeInput.js.map +1 -1
- package/lib/commonjs/contexts/AppContext.js +4 -1
- package/lib/commonjs/contexts/AppContext.js.map +1 -1
- package/lib/commonjs/utils/audioRecorder.js +168 -164
- package/lib/commonjs/utils/audioRecorder.js.map +1 -1
- package/lib/module/components/input.js +3 -2
- package/lib/module/components/input.js.map +1 -1
- package/lib/module/components/productCard.js +1 -1
- package/lib/module/components/productCard.js.map +1 -1
- package/lib/module/components/voice.js +3 -2
- package/lib/module/components/voice.js.map +1 -1
- package/lib/module/components/welcomeInput.js +3 -2
- package/lib/module/components/welcomeInput.js.map +1 -1
- package/lib/module/contexts/AppContext.js +4 -1
- package/lib/module/contexts/AppContext.js.map +1 -1
- package/lib/module/utils/audioRecorder.js +168 -164
- package/lib/module/utils/audioRecorder.js.map +1 -1
- package/lib/typescript/components/voice.d.ts.map +1 -1
- package/lib/typescript/contexts/AppContext.d.ts.map +1 -1
- package/lib/typescript/utils/audioRecorder.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/input.js +2 -2
- package/src/components/productCard.js +1 -1
- package/src/components/voice.js +1 -2
- package/src/components/welcomeInput.js +2 -2
- package/src/contexts/AppContext.js +2 -1
- package/src/utils/audioRecorder.js +184 -167
|
@@ -6,15 +6,9 @@ import { check, PERMISSIONS, request, RESULTS } from 'react-native-permissions';
|
|
|
6
6
|
let resultCallback = null;
|
|
7
7
|
let partialResultCallback = null;
|
|
8
8
|
let silenceTimer = null;
|
|
9
|
+
let isCurrentlyRecording = false;
|
|
9
10
|
let finalResult = '';
|
|
10
|
-
const SILENCE_DURATION = 1500;
|
|
11
|
-
const State = {
|
|
12
|
-
IDLE: 'IDLE',
|
|
13
|
-
LISTENING: 'LISTENING',
|
|
14
|
-
FINALIZING: 'FINALIZING'
|
|
15
|
-
};
|
|
16
|
-
let state = State.IDLE;
|
|
17
|
-
let listenersBound = false;
|
|
11
|
+
const SILENCE_DURATION = 1500; // 1.5 seconds of silence before stopping
|
|
18
12
|
|
|
19
13
|
// Add this constant for AsyncStorage key
|
|
20
14
|
const PERMISSION_STORAGE_KEY = '@voice_permission_status';
|
|
@@ -34,7 +28,6 @@ export async function initVoice(onResult, onPartialResult = null) {
|
|
|
34
28
|
resultCallback = onResult;
|
|
35
29
|
partialResultCallback = onPartialResult; // Store partial callback
|
|
36
30
|
finalResult = '';
|
|
37
|
-
if (listenersBound) return true;
|
|
38
31
|
|
|
39
32
|
// Check if Voice module is available
|
|
40
33
|
if (!Voice) {
|
|
@@ -48,103 +41,86 @@ export async function initVoice(onResult, onPartialResult = null) {
|
|
|
48
41
|
console.error('Speech recognition is not available on this device');
|
|
49
42
|
return false;
|
|
50
43
|
}
|
|
44
|
+
|
|
45
|
+
// Remove any existing listeners
|
|
51
46
|
Voice.removeAllListeners();
|
|
52
47
|
|
|
53
48
|
// Set up all event listeners
|
|
54
|
-
Voice.onSpeechStart =
|
|
55
|
-
console.log('
|
|
56
|
-
|
|
49
|
+
Voice.onSpeechStart = e => {
|
|
50
|
+
console.log('onSpeechStart: ', e);
|
|
51
|
+
isCurrentlyRecording = true;
|
|
57
52
|
finalResult = '';
|
|
58
|
-
|
|
53
|
+
if (silenceTimer) {
|
|
54
|
+
clearTimeout(silenceTimer);
|
|
55
|
+
silenceTimer = null;
|
|
56
|
+
}
|
|
59
57
|
};
|
|
58
|
+
Voice.onSpeechRecognized = e => {
|
|
59
|
+
console.log('onSpeechRecognized: ', e);
|
|
60
|
+
if (e.isFinal) {
|
|
61
|
+
console.log('Speech recognition final');
|
|
62
|
+
handleFinalResult();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
Voice.onSpeechEnd = async e => {
|
|
66
|
+
console.log('onSpeechEnd: ', e);
|
|
67
|
+
if (silenceTimer) {
|
|
68
|
+
clearTimeout(silenceTimer);
|
|
69
|
+
silenceTimer = null;
|
|
70
|
+
}
|
|
60
71
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
console.log('[onSpeechEnd] Speech ended, current state:', state);
|
|
65
|
-
clearSilenceTimer();
|
|
66
|
-
// Always reset to IDLE when speech ends (sessions should be considered over)
|
|
67
|
-
console.log('[onSpeechEnd] Scheduling IDLE reset');
|
|
68
|
-
if (Platform.OS === 'android') {
|
|
69
|
-
setTimeout(() => {
|
|
70
|
-
console.log('[onSpeechEnd] Android timeout - setting state to IDLE');
|
|
71
|
-
state = State.IDLE;
|
|
72
|
-
}, 800); // Increased delay
|
|
73
|
-
} else {
|
|
74
|
-
console.log('[onSpeechEnd] iOS - setting state to IDLE immediately');
|
|
75
|
-
state = State.IDLE;
|
|
72
|
+
// Only handle final result if we're still recording
|
|
73
|
+
if (isCurrentlyRecording) {
|
|
74
|
+
await handleFinalResult();
|
|
76
75
|
}
|
|
77
76
|
};
|
|
78
|
-
Voice.onSpeechError = e => {
|
|
77
|
+
Voice.onSpeechError = async e => {
|
|
79
78
|
var _e$error, _e$error2;
|
|
80
|
-
console.log('
|
|
81
|
-
|
|
79
|
+
console.log('onSpeechError: ', e);
|
|
80
|
+
if (silenceTimer) {
|
|
81
|
+
clearTimeout(silenceTimer);
|
|
82
|
+
silenceTimer = null;
|
|
83
|
+
}
|
|
82
84
|
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();
|
|
83
85
|
const msg = ((_e$error2 = e.error) === null || _e$error2 === void 0 ? void 0 : _e$error2.message) || '';
|
|
84
86
|
|
|
85
|
-
// Handle
|
|
87
|
+
// Handle Android-specific errors
|
|
86
88
|
if (Platform.OS === 'android' && (code === '7' || code === '5')) {
|
|
87
|
-
if (finalResult && resultCallback)
|
|
89
|
+
if (finalResult && resultCallback) {
|
|
90
|
+
resultCallback(finalResult, null);
|
|
91
|
+
}
|
|
88
92
|
} else if (!msg.includes('No speech detected') && resultCallback) {
|
|
89
93
|
resultCallback(null, msg);
|
|
90
|
-
} else if (resultCallback) {
|
|
91
|
-
resultCallback(null, null);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Errors end the session immediately, reset to IDLE with delay
|
|
95
|
-
console.log('[onSpeechError] Scheduling IDLE reset');
|
|
96
|
-
if (Platform.OS === 'android') {
|
|
97
|
-
setTimeout(() => {
|
|
98
|
-
console.log('[onSpeechError] Android timeout - setting state to IDLE');
|
|
99
|
-
state = State.IDLE;
|
|
100
|
-
}, 800); // Increased delay to match onSpeechEnd
|
|
101
|
-
} else {
|
|
102
|
-
console.log('[onSpeechError] iOS - setting state to IDLE immediately');
|
|
103
|
-
state = State.IDLE;
|
|
104
94
|
}
|
|
95
|
+
await cleanupVoiceSession();
|
|
105
96
|
};
|
|
106
97
|
Voice.onSpeechResults = e => {
|
|
107
|
-
console.log('
|
|
108
|
-
clearSilenceTimer();
|
|
98
|
+
console.log('onSpeechResults: ', e);
|
|
109
99
|
if (e.value && e.value.length > 0) {
|
|
110
100
|
finalResult = e.value[0];
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
// Only call callback if we haven't already (avoid double-calling)
|
|
114
|
-
if (state === State.LISTENING && resultCallback) {
|
|
115
|
-
console.log('[onSpeechResults] Calling callback with results');
|
|
116
|
-
resultCallback(finalResult, null);
|
|
117
|
-
} else {
|
|
118
|
-
console.log('[onSpeechResults] Not calling callback - state:', state);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// On Android, we must explicitly stop to avoid session corruption
|
|
122
|
-
if (Platform.OS === 'android') {
|
|
123
|
-
console.log('[onSpeechResults] Android: Explicitly calling stopRecording()');
|
|
124
|
-
stopRecording();
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Results end the session, reset to IDLE with delay
|
|
128
|
-
console.log('[onSpeechResults] Scheduling IDLE reset');
|
|
129
|
-
if (Platform.OS === 'android') {
|
|
130
|
-
setTimeout(() => {
|
|
131
|
-
console.log('[onSpeechResults] Android timeout - setting state to IDLE');
|
|
132
|
-
state = State.IDLE;
|
|
133
|
-
}, 800); // Increased delay
|
|
134
|
-
} else {
|
|
135
|
-
console.log('[onSpeechResults] iOS - setting state to IDLE immediately');
|
|
136
|
-
state = State.IDLE;
|
|
101
|
+
handleSilenceDetection();
|
|
137
102
|
}
|
|
138
103
|
};
|
|
139
104
|
Voice.onSpeechPartialResults = e => {
|
|
105
|
+
console.log('onSpeechPartialResults: ', e);
|
|
106
|
+
if (silenceTimer) {
|
|
107
|
+
clearTimeout(silenceTimer);
|
|
108
|
+
}
|
|
140
109
|
if (e.value && e.value.length > 0) {
|
|
141
110
|
finalResult = e.value[0];
|
|
142
|
-
|
|
111
|
+
|
|
112
|
+
// Call partial callback for live transcription
|
|
113
|
+
if (partialResultCallback) {
|
|
114
|
+
partialResultCallback(finalResult);
|
|
115
|
+
}
|
|
143
116
|
handleSilenceDetection();
|
|
144
117
|
}
|
|
145
118
|
};
|
|
146
|
-
if (Platform.OS === 'android')
|
|
147
|
-
|
|
119
|
+
if (Platform.OS === 'android') {
|
|
120
|
+
Voice.onSpeechVolumeChanged = e => {
|
|
121
|
+
console.log('onSpeechVolumeChanged: ', e);
|
|
122
|
+
};
|
|
123
|
+
}
|
|
148
124
|
return true;
|
|
149
125
|
} catch (error) {
|
|
150
126
|
console.error('Error initializing Voice:', error);
|
|
@@ -156,144 +132,159 @@ const handleSilenceDetection = () => {
|
|
|
156
132
|
clearTimeout(silenceTimer);
|
|
157
133
|
}
|
|
158
134
|
silenceTimer = setTimeout(async () => {
|
|
159
|
-
if (
|
|
135
|
+
if (isCurrentlyRecording) {
|
|
160
136
|
await handleFinalResult();
|
|
161
137
|
}
|
|
162
138
|
}, SILENCE_DURATION);
|
|
163
139
|
};
|
|
164
140
|
const handleFinalResult = async () => {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
console.log('[handleFinalResult] State not LISTENING, returning');
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// Set to FINALIZING first to prevent double callbacks
|
|
172
|
-
console.log('[handleFinalResult] Setting state to FINALIZING');
|
|
173
|
-
state = State.FINALIZING;
|
|
174
|
-
|
|
175
|
-
// Call the callback with results
|
|
141
|
+
if (!isCurrentlyRecording) return;
|
|
142
|
+
console.log('handleFinalResult called with:', finalResult);
|
|
176
143
|
if (finalResult && resultCallback) {
|
|
177
|
-
console.log('[handleFinalResult] Calling callback with result:', finalResult);
|
|
178
144
|
resultCallback(finalResult, null);
|
|
179
145
|
}
|
|
180
146
|
|
|
181
|
-
//
|
|
182
|
-
console.log('[handleFinalResult] Calling stopRecording');
|
|
147
|
+
// Stop recording first
|
|
183
148
|
await stopRecording();
|
|
184
149
|
};
|
|
185
|
-
const cleanupVoiceSession = () => {
|
|
186
|
-
console.log('
|
|
187
|
-
|
|
188
|
-
clearSilenceTimer();
|
|
189
|
-
|
|
190
|
-
// Add delay before allowing next session on Android
|
|
191
|
-
if (Platform.OS === 'android') {
|
|
192
|
-
setTimeout(() => {
|
|
193
|
-
console.log('[cleanupVoiceSession] Android timeout - setting state to IDLE');
|
|
194
|
-
state = State.IDLE;
|
|
195
|
-
}, 800);
|
|
196
|
-
} else {
|
|
197
|
-
console.log('[cleanupVoiceSession] iOS - setting state to IDLE immediately');
|
|
198
|
-
state = State.IDLE;
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
const clearSilenceTimer = () => {
|
|
150
|
+
const cleanupVoiceSession = async () => {
|
|
151
|
+
console.log('cleanupVoiceSession called');
|
|
152
|
+
isCurrentlyRecording = false;
|
|
202
153
|
if (silenceTimer) {
|
|
203
154
|
clearTimeout(silenceTimer);
|
|
204
155
|
silenceTimer = null;
|
|
205
156
|
}
|
|
206
|
-
};
|
|
207
|
-
export async function startRecording() {
|
|
208
157
|
try {
|
|
209
|
-
|
|
158
|
+
// Check if Voice module is available
|
|
159
|
+
if (!Voice) {
|
|
160
|
+
console.log('Voice module not available during cleanup');
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
210
163
|
|
|
211
|
-
//
|
|
212
|
-
|
|
164
|
+
// Check if still recognizing
|
|
165
|
+
const isRecognizing = await Voice.isRecognizing();
|
|
166
|
+
console.log('Voice.isRecognizing() in cleanup:', isRecognizing);
|
|
167
|
+
if (isRecognizing) {
|
|
213
168
|
try {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
169
|
+
// For iOS, use cancel for immediate termination
|
|
170
|
+
if (Platform.OS === 'ios') {
|
|
171
|
+
await Voice.cancel();
|
|
172
|
+
console.log('Voice.cancel() completed for iOS');
|
|
173
|
+
} else {
|
|
174
|
+
await Voice.stop();
|
|
175
|
+
console.log('Voice.stop() completed for Android');
|
|
176
|
+
}
|
|
177
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
217
178
|
} catch (e) {
|
|
218
|
-
console.log('
|
|
179
|
+
console.log('Error stopping/canceling in cleanup:', e);
|
|
219
180
|
}
|
|
220
181
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
182
|
+
|
|
183
|
+
// Destroy the instance
|
|
184
|
+
try {
|
|
185
|
+
await Voice.destroy();
|
|
186
|
+
console.log('Voice.destroy() completed');
|
|
187
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
188
|
+
} catch (e) {
|
|
189
|
+
console.log('Error destroying in cleanup:', e);
|
|
224
190
|
}
|
|
225
|
-
|
|
226
|
-
|
|
191
|
+
} catch (error) {
|
|
192
|
+
console.error('Error in cleanupVoiceSession:', error);
|
|
193
|
+
}
|
|
194
|
+
finalResult = '';
|
|
195
|
+
};
|
|
196
|
+
export async function startRecording() {
|
|
197
|
+
try {
|
|
198
|
+
console.log('startRecording called');
|
|
199
|
+
|
|
200
|
+
// Check if Voice module is available
|
|
201
|
+
if (!Voice) {
|
|
202
|
+
console.error('Voice module is not available');
|
|
227
203
|
return false;
|
|
228
204
|
}
|
|
205
|
+
|
|
206
|
+
// Ensure cleanup of any existing session
|
|
207
|
+
await cleanupVoiceSession();
|
|
208
|
+
|
|
209
|
+
// Small delay to ensure cleanup is complete
|
|
210
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
229
211
|
const hasPermission = await requestAudioPermission();
|
|
230
212
|
if (!hasPermission) {
|
|
231
213
|
console.error('No permission to record audio');
|
|
232
214
|
return false;
|
|
233
215
|
}
|
|
234
|
-
const recognizing = await Voice.isRecognizing();
|
|
235
|
-
console.log('[startRecording] Voice.isRecognizing():', recognizing);
|
|
236
|
-
if (recognizing) {
|
|
237
|
-
console.log('[startRecording] Already recognizing, canceling first');
|
|
238
|
-
await Voice.cancel();
|
|
239
|
-
// Wait longer for cancel to take effect
|
|
240
|
-
await new Promise(r => setTimeout(r, 500));
|
|
241
216
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
console.log('[startRecording] Still recognizing after cancel, stopping');
|
|
247
|
-
try {
|
|
248
|
-
await Voice.stop();
|
|
249
|
-
await new Promise(r => setTimeout(r, 300));
|
|
250
|
-
} catch (e) {
|
|
251
|
-
console.log('[startRecording] Error stopping:', e);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
console.log('[startRecording] Calling Voice.start()');
|
|
217
|
+
// Re-initialize listeners each time for iOS stability
|
|
218
|
+
await initVoice(resultCallback, partialResultCallback);
|
|
219
|
+
|
|
220
|
+
// Start recognition
|
|
256
221
|
await Voice.start('en-US');
|
|
257
|
-
console.log('
|
|
258
|
-
|
|
222
|
+
console.log('Voice.start() completed');
|
|
223
|
+
isCurrentlyRecording = true;
|
|
259
224
|
return true;
|
|
260
225
|
} catch (error) {
|
|
261
226
|
console.error('Error starting voice recognition:', error);
|
|
262
|
-
cleanupVoiceSession();
|
|
227
|
+
await cleanupVoiceSession();
|
|
263
228
|
return false;
|
|
264
229
|
}
|
|
265
230
|
}
|
|
266
231
|
export async function stopRecording() {
|
|
267
232
|
try {
|
|
268
|
-
console.log('
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
console.log('[stopRecording] Invalid state or no Voice, returning');
|
|
233
|
+
console.log('stopRecording called');
|
|
234
|
+
if (!isCurrentlyRecording || !Voice) {
|
|
235
|
+
console.log('Not recording or Voice not available');
|
|
272
236
|
return;
|
|
273
237
|
}
|
|
274
238
|
|
|
275
|
-
//
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
239
|
+
// Set this first to prevent race conditions
|
|
240
|
+
isCurrentlyRecording = false;
|
|
241
|
+
if (silenceTimer) {
|
|
242
|
+
clearTimeout(silenceTimer);
|
|
243
|
+
silenceTimer = null;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// Platform-specific stop
|
|
247
|
+
try {
|
|
248
|
+
if (Platform.OS === 'ios') {
|
|
249
|
+
// iOS: Use cancel for immediate termination
|
|
250
|
+
await Voice.cancel();
|
|
251
|
+
console.log('Voice.cancel() completed for iOS');
|
|
252
|
+
} else {
|
|
253
|
+
// Android: Use stop
|
|
254
|
+
await Voice.stop();
|
|
255
|
+
console.log('Voice.stop() completed for Android');
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Small delay
|
|
259
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
260
|
+
} catch (error) {
|
|
261
|
+
console.log('Error stopping/canceling Voice:', error);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// Then destroy
|
|
265
|
+
try {
|
|
266
|
+
await Voice.destroy();
|
|
267
|
+
console.log('Voice.destroy() completed');
|
|
268
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
269
|
+
} catch (error) {
|
|
270
|
+
console.log('Error destroying Voice:', error);
|
|
279
271
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
console.log('[stopRecording] Voice.stop() completed');
|
|
272
|
+
|
|
273
|
+
// Final cleanup
|
|
274
|
+
finalResult = '';
|
|
284
275
|
} catch (error) {
|
|
285
276
|
console.error('Error in stopRecording:', error);
|
|
286
|
-
cleanupVoiceSession();
|
|
277
|
+
await cleanupVoiceSession();
|
|
287
278
|
}
|
|
288
279
|
}
|
|
289
280
|
export async function cancelRecording() {
|
|
290
281
|
try {
|
|
291
282
|
if (!Voice) return;
|
|
292
283
|
await Voice.cancel();
|
|
293
|
-
cleanupVoiceSession();
|
|
284
|
+
await cleanupVoiceSession();
|
|
294
285
|
} catch (error) {
|
|
295
286
|
console.error('Error canceling voice recognition:', error);
|
|
296
|
-
cleanupVoiceSession();
|
|
287
|
+
await cleanupVoiceSession();
|
|
297
288
|
}
|
|
298
289
|
}
|
|
299
290
|
export async function requestAudioPermission() {
|
|
@@ -376,6 +367,19 @@ export function resetStoredPermission() {
|
|
|
376
367
|
return false;
|
|
377
368
|
}
|
|
378
369
|
export function cleanup() {
|
|
379
|
-
|
|
370
|
+
if (!Voice) {
|
|
371
|
+
console.log('Voice module not available during cleanup');
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
Voice.destroy().then(() => {
|
|
375
|
+
Voice.removeAllListeners();
|
|
376
|
+
cleanupVoiceSession();
|
|
377
|
+
}).catch(error => {
|
|
378
|
+
console.error('Error in cleanup:', error);
|
|
379
|
+
// Try one more time
|
|
380
|
+
if (Voice) {
|
|
381
|
+
Voice.destroy().catch(e => console.error('Final cleanup attempt failed:', e));
|
|
382
|
+
}
|
|
383
|
+
});
|
|
380
384
|
}
|
|
381
385
|
//# sourceMappingURL=audioRecorder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Voice","check","PERMISSIONS","request","RESULTS","resultCallback","partialResultCallback","silenceTimer","finalResult","SILENCE_DURATION","State","IDLE","LISTENING","FINALIZING","state","listenersBound","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","onPartialResult","console","error","isAvailable","removeAllListeners","onSpeechStart","log","clearSilenceTimer","onSpeechRecognized","onSpeechEnd","OS","setTimeout","onSpeechError","e","_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","ANDROID","RECORD_AUDIO","GRANTED","services","getSpeechRecognitionServices","IOS","MICROPHONE","speechPermission","SPEECH_RECOGNITION","resetStoredPermission","cleanup"],"sourceRoot":"../../../src","sources":["utils/audioRecorder.js"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Platform","Voice","check","PERMISSIONS","request","RESULTS","resultCallback","partialResultCallback","silenceTimer","isCurrentlyRecording","finalResult","SILENCE_DURATION","PERMISSION_STORAGE_KEY","permissionStatusGetter","permissionStatusSetter","setPermissionStatusHandlers","getter","setter","initVoice","onResult","onPartialResult","console","error","isAvailable","removeAllListeners","onSpeechStart","e","log","clearTimeout","onSpeechRecognized","isFinal","handleFinalResult","onSpeechEnd","onSpeechError","_e$error","_e$error2","code","toString","msg","message","OS","includes","cleanupVoiceSession","onSpeechResults","value","length","handleSilenceDetection","onSpeechPartialResults","onSpeechVolumeChanged","setTimeout","stopRecording","isRecognizing","cancel","stop","Promise","resolve","destroy","startRecording","hasPermission","requestAudioPermission","start","cancelRecording","storedPermission","permissionResult","requestAndroidPermission","requestIOSPermission","micPermission","ANDROID","RECORD_AUDIO","GRANTED","services","getSpeechRecognitionServices","IOS","MICROPHONE","speechPermission","SPEECH_RECOGNITION","resetStoredPermission","cleanup","then","catch"],"sourceRoot":"../../../src","sources":["utils/audioRecorder.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/components/voice.js"],"names":[],"mappings":"AAqBO;;
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/components/voice.js"],"names":[],"mappings":"AAqBO;;sBAsLN;kBAzMsD,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"AAMA,4CAA0C;AAEnC;;;;;;
|
|
1
|
+
{"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"AAMA,4CAA0C;AAEnC;;;;;;sBAuXN;kBA/X6E,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAqBA,4EAGC;AAGD,mFAqHC;AA+ED,mDAmCC;AAED,+CAkDC;AAED,iDASC;AAED,2DA2BC;AAqDD,iDAMC;AAED,gCAgBC"}
|
package/package.json
CHANGED
package/src/components/input.js
CHANGED
|
@@ -15,7 +15,7 @@ import Ionicons from 'react-native-vector-icons/Ionicons';
|
|
|
15
15
|
import { VoiceButton } from './voice';
|
|
16
16
|
|
|
17
17
|
export const ChatInput = ({ onProductCardClick, onAddToCartClick }) => {
|
|
18
|
-
const { handleSend, input, setInput, showModal, data } = useContext(AppContext);
|
|
18
|
+
const { handleSend, input, setInput, showModal, data, isListening } = useContext(AppContext);
|
|
19
19
|
const inputRef = useRef(null);
|
|
20
20
|
|
|
21
21
|
const handleKeyPress = ({ nativeEvent }) => {
|
|
@@ -42,7 +42,7 @@ export const ChatInput = ({ onProductCardClick, onAddToCartClick }) => {
|
|
|
42
42
|
style={styles.input}
|
|
43
43
|
value={input}
|
|
44
44
|
onChangeText={setInput}
|
|
45
|
-
placeholder="Ask a question..."
|
|
45
|
+
placeholder={isListening && !input ? "Listening..." : "Ask a question..."}
|
|
46
46
|
placeholderTextColor="#999"
|
|
47
47
|
multiline={false}
|
|
48
48
|
returnKeyType="send"
|
|
@@ -409,7 +409,7 @@ export const ProductCard = ({ prod, onFocusQuantityInput, messageId }) => {
|
|
|
409
409
|
|
|
410
410
|
<View style={styles.quantityContainer}>
|
|
411
411
|
<Text style={styles.inputLabel}>
|
|
412
|
-
Qty {currentMinPackQtyForSelectedUom > 1 ? `(
|
|
412
|
+
Qty {currentMinPackQtyForSelectedUom > 1 ? `(Sold in multiples of ${currentMinPackQtyForSelectedUom})` : ''}
|
|
413
413
|
</Text>
|
|
414
414
|
<View style={styles.quantityInputContainer}>
|
|
415
415
|
<TouchableOpacity
|
package/src/components/voice.js
CHANGED
|
@@ -20,8 +20,7 @@ import { AppContext } from '../contexts/AppContext';
|
|
|
20
20
|
const PERMISSION_STORAGE_KEY = '@voice_permission_status';
|
|
21
21
|
|
|
22
22
|
export const VoiceButton = ({ setInput }) => {
|
|
23
|
-
const { handleVoiceSend } = useContext(AppContext);
|
|
24
|
-
const [isListening, setIsListening] = useState(false);
|
|
23
|
+
const { handleVoiceSend, isListening, setIsListening } = useContext(AppContext);
|
|
25
24
|
const [loading, setLoading] = useState(false);
|
|
26
25
|
const [permissionChecked, setPermissionChecked] = useState(false);
|
|
27
26
|
const [hasPermission, setHasPermission] = useState(null);
|
|
@@ -16,7 +16,7 @@ import { VoiceButton } from './voice';
|
|
|
16
16
|
|
|
17
17
|
export const WelcomeInput = ({ onProductCardClick, onAddToCartClick }) => {
|
|
18
18
|
|
|
19
|
-
const { data, handleSend, input, setInput, showModal, theme } = useContext(AppContext);
|
|
19
|
+
const { data, handleSend, input, setInput, showModal, theme, isListening } = useContext(AppContext);
|
|
20
20
|
const inputRef = useRef(null);
|
|
21
21
|
|
|
22
22
|
const handleKeyPress = ({ nativeEvent }) => {
|
|
@@ -40,7 +40,7 @@ export const WelcomeInput = ({ onProductCardClick, onAddToCartClick }) => {
|
|
|
40
40
|
style={styles.input}
|
|
41
41
|
value={input}
|
|
42
42
|
onChangeText={setInput}
|
|
43
|
-
placeholder="Ask a question..."
|
|
43
|
+
placeholder={isListening && !input ? "Listening..." : "Ask a question..."}
|
|
44
44
|
placeholderTextColor="#999"
|
|
45
45
|
multiline={false}
|
|
46
46
|
returnKeyType="send"
|
|
@@ -48,6 +48,7 @@ export const AppProvider = ({ data, onProductCardClick, onAddToCartClick, uiConf
|
|
|
48
48
|
const [lastUserMessage, setLastUserMessage] = useState("");
|
|
49
49
|
const [lastMessageId, setLastMessageId] = useState("");
|
|
50
50
|
const [sessionId, setSessionId] = useState(null);
|
|
51
|
+
const [isListening, setIsListening] = useState(false);
|
|
51
52
|
|
|
52
53
|
// Message UI
|
|
53
54
|
const [typingIndicator, setTypingIndicator] = useState(false);
|
|
@@ -374,7 +375,7 @@ export const AppProvider = ({ data, onProductCardClick, onAddToCartClick, uiConf
|
|
|
374
375
|
startStreaming, setStartStreaming, maintenance, setMaintenance, feedback, setFeedback, handleFeedback, feedbackOpen, setFeedbackOpen,
|
|
375
376
|
writeFeedback, setWriteFeedback, writeAnswer, setWriteAnswer, BASE_URL, lastMessageId, setLastMessageId,
|
|
376
377
|
onProductCardClick, onAddToCartClick: handleAddToCartWithMessage, data, sessionId, setSessionId, handleWrittenFeedback, switchFeedbackOpen, confirmDisclaimer,
|
|
377
|
-
formatChatHistory, uiConfig, handleVoiceSend, TRACK_CLICK_URL, ADD_TO_CART_URL
|
|
378
|
+
formatChatHistory, uiConfig, handleVoiceSend, TRACK_CLICK_URL, ADD_TO_CART_URL, isListening, setIsListening
|
|
378
379
|
}}
|
|
379
380
|
>
|
|
380
381
|
{children}
|