From 9dbe9e663f20178c18e15fee57c89af9e0ed0187 Mon Sep 17 00:00:00 2001 From: Jorrin Date: Mon, 12 Feb 2024 16:19:59 +0100 Subject: [PATCH] fix idle timeout --- apps/expo/src/stores/player/slices/interface.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/expo/src/stores/player/slices/interface.ts b/apps/expo/src/stores/player/slices/interface.ts index 287e145..ee12f85 100644 --- a/apps/expo/src/stores/player/slices/interface.ts +++ b/apps/expo/src/stores/player/slices/interface.ts @@ -5,6 +5,7 @@ import type { MakeSlice } from "./types"; export interface InterfaceSlice { interface: { isIdle: boolean; + idleTimeout: NodeJS.Timeout | null; }; setIsIdle(state: boolean): void; lockOrientation: () => Promise; @@ -16,16 +17,20 @@ export interface InterfaceSlice { export const createInterfaceSlice: MakeSlice = (set, get) => ({ interface: { isIdle: true, + idleTimeout: null, }, setIsIdle: (state) => { set((s) => { - setTimeout(() => { + if (s.interface.idleTimeout) clearTimeout(s.interface.idleTimeout); + + s.interface.idleTimeout = setTimeout(() => { if (get().interface.isIdle === false) { set((s) => { s.interface.isIdle = true; }); } }, 6000); + s.interface.isIdle = state; }); },