mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-21 17:13:00 -05:00
refac
This commit is contained in:
@@ -58,6 +58,34 @@
|
||||
return `${minutes}:${formattedSeconds}`;
|
||||
};
|
||||
|
||||
let wakeLock = null;
|
||||
|
||||
const requestWakeLock = async () => {
|
||||
if ('wakeLock' in navigator) {
|
||||
try {
|
||||
wakeLock = await navigator.wakeLock.request('screen');
|
||||
console.log('Wake Lock acquired');
|
||||
|
||||
wakeLock.addEventListener('release', () => {
|
||||
console.log('Wake Lock released');
|
||||
});
|
||||
} catch (err) {
|
||||
console.log('Wake Lock request failed:', err);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const releaseWakeLock = async () => {
|
||||
if (wakeLock) {
|
||||
try {
|
||||
await wakeLock.release();
|
||||
} catch (err) {
|
||||
console.log('Wake Lock release failed:', err);
|
||||
}
|
||||
wakeLock = null;
|
||||
}
|
||||
};
|
||||
|
||||
let stream;
|
||||
let speechRecognition;
|
||||
|
||||
@@ -216,11 +244,13 @@
|
||||
mimeType: mineTypes.find((type) => MediaRecorder.isTypeSupported(type))
|
||||
});
|
||||
|
||||
mediaRecorder.onstart = () => {
|
||||
mediaRecorder.onstart = async () => {
|
||||
console.log('Recording started');
|
||||
loading = false;
|
||||
startDurationCounter();
|
||||
|
||||
await requestWakeLock();
|
||||
|
||||
audioChunks = [];
|
||||
analyseAudio(stream);
|
||||
};
|
||||
@@ -333,6 +363,8 @@
|
||||
speechRecognition.stop();
|
||||
}
|
||||
|
||||
await releaseWakeLock();
|
||||
|
||||
stopDurationCounter();
|
||||
audioChunks = [];
|
||||
visualizerData = Array(VISUALIZER_BUFFER_LENGTH).fill(0);
|
||||
@@ -354,6 +386,8 @@
|
||||
}
|
||||
clearInterval(durationCounter);
|
||||
|
||||
await releaseWakeLock();
|
||||
|
||||
if (stream) {
|
||||
const tracks = stream.getTracks();
|
||||
tracks.forEach((track) => track.stop());
|
||||
@@ -376,8 +410,15 @@
|
||||
}
|
||||
};
|
||||
|
||||
const handleVisibilityChange = async () => {
|
||||
if (recording && document.visibilityState === 'visible') {
|
||||
await requestWakeLock();
|
||||
}
|
||||
};
|
||||
|
||||
onMount(() => {
|
||||
window.addEventListener('keydown', handleKeyDown);
|
||||
document.addEventListener('visibilitychange', handleVisibilityChange);
|
||||
|
||||
// listen to width changes
|
||||
resizeObserver = new ResizeObserver(() => {
|
||||
@@ -396,6 +437,8 @@
|
||||
|
||||
onDestroy(() => {
|
||||
window.removeEventListener('keydown', handleKeyDown);
|
||||
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
||||
releaseWakeLock();
|
||||
// remove resize observer
|
||||
resizeObserver.disconnect();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user