فهرست منبع

refac: only activate wakelock in call mode

Timothy J. Baek 8 ماه پیش
والد
کامیت
c268a4e217
2فایلهای تغییر یافته به همراه30 افزوده شده و 30 حذف شده
  1. 30 0
      src/lib/components/chat/MessageInput/CallOverlay.svelte
  2. 0 30
      src/routes/+layout.svelte

+ 30 - 0
src/lib/components/chat/MessageInput/CallOverlay.svelte

@@ -28,6 +28,8 @@
 	export let chatId;
 	export let modelId;
 
+	let wakeLock = null;
+
 	let model = null;
 
 	let loading = false;
@@ -509,6 +511,34 @@
 	};
 
 	onMount(async () => {
+		const setWakeLock = async () => {
+			try {
+				wakeLock = await navigator.wakeLock.request('screen');
+			} catch (err) {
+				// The Wake Lock request has failed - usually system related, such as battery.
+				console.log(err);
+			}
+
+			if (wakeLock) {
+				// Add a listener to release the wake lock when the page is unloaded
+				wakeLock.addEventListener('release', () => {
+					// the wake lock has been released
+					console.log('Wake Lock released');
+				});
+			}
+		};
+
+		if ('wakeLock' in navigator) {
+			await setWakeLock();
+
+			document.addEventListener('visibilitychange', async () => {
+				// Re-request the wake lock if the document becomes visible
+				if (wakeLock !== null && document.visibilityState === 'visible') {
+					await setWakeLock();
+				}
+			});
+		}
+
 		model = $models.find((m) => m.id === modelId);
 
 		startRecording();

+ 0 - 30
src/routes/+layout.svelte

@@ -38,8 +38,6 @@
 	let loaded = false;
 	const BREAKPOINT = 768;
 
-	let wakeLock = null;
-
 	onMount(async () => {
 		theme.set(localStorage.theme);
 
@@ -54,34 +52,6 @@
 
 		window.addEventListener('resize', onResize);
 
-		const setWakeLock = async () => {
-			try {
-				wakeLock = await navigator.wakeLock.request('screen');
-			} catch (err) {
-				// The Wake Lock request has failed - usually system related, such as battery.
-				console.log(err);
-			}
-
-			if (wakeLock) {
-				// Add a listener to release the wake lock when the page is unloaded
-				wakeLock.addEventListener('release', () => {
-					// the wake lock has been released
-					console.log('Wake Lock released');
-				});
-			}
-		};
-
-		if ('wakeLock' in navigator) {
-			await setWakeLock();
-
-			document.addEventListener('visibilitychange', async () => {
-				// Re-request the wake lock if the document becomes visible
-				if (wakeLock !== null && document.visibilityState === 'visible') {
-					await setWakeLock();
-				}
-			});
-		}
-
 		let backendConfig = null;
 		try {
 			backendConfig = await getBackendConfig();