From 280b2932766d00d925bfecd87c7c775f14697198 Mon Sep 17 00:00:00 2001 From: Claas Date: Sun, 12 Apr 2026 18:35:54 +0200 Subject: [PATCH] Skip permissions if not required --- client/src/App.tsx | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/client/src/App.tsx b/client/src/App.tsx index 5161460..e820d25 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -6,19 +6,15 @@ type Orientation = { isAbsolute: boolean, alpha: number | null, beta: number | null, gamma: number | null } +const isPermissionRequired = "requestPermission" in DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === "function"; + export default function App() { const dismountAbortController = new AbortController(); onCleanup(() => dismountAbortController.abort()); - const [orientation, setOrientation] = createSignal(); - async function requestOrientation() { - if ("requestPermission" in DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === "function") { - const result = await DeviceOrientationEvent.requestPermission(); - if (result !== "granted") return; - } - + function setUpListener() { window.addEventListener("deviceorientation", (event) => { console.debug("DeviceOrientationEvent", event); @@ -34,6 +30,18 @@ export default function App() { }) } + async function requestOrientation() { + if ("requestPermission" in DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === "function") { + const result = await DeviceOrientationEvent.requestPermission(); + if (result !== "granted") return; + } + + + setUpListener(); + } + + if (!isPermissionRequired) setUpListener(); + return (
@@ -47,10 +55,12 @@ export default function App() {
gamma
{orientation().gamma?.toString() ?? "null"}
)} -
- + +

Access to orientation data is required for this app to work

+ +
) } -- 2.51.2