fix idle timeout

This commit is contained in:
Jorrin
2024-02-12 16:19:59 +01:00
parent 66ac4730bd
commit 9dbe9e663f

View File

@@ -5,6 +5,7 @@ import type { MakeSlice } from "./types";
export interface InterfaceSlice { export interface InterfaceSlice {
interface: { interface: {
isIdle: boolean; isIdle: boolean;
idleTimeout: NodeJS.Timeout | null;
}; };
setIsIdle(state: boolean): void; setIsIdle(state: boolean): void;
lockOrientation: () => Promise<void>; lockOrientation: () => Promise<void>;
@@ -16,16 +17,20 @@ export interface InterfaceSlice {
export const createInterfaceSlice: MakeSlice<InterfaceSlice> = (set, get) => ({ export const createInterfaceSlice: MakeSlice<InterfaceSlice> = (set, get) => ({
interface: { interface: {
isIdle: true, isIdle: true,
idleTimeout: null,
}, },
setIsIdle: (state) => { setIsIdle: (state) => {
set((s) => { set((s) => {
setTimeout(() => { if (s.interface.idleTimeout) clearTimeout(s.interface.idleTimeout);
s.interface.idleTimeout = setTimeout(() => {
if (get().interface.isIdle === false) { if (get().interface.isIdle === false) {
set((s) => { set((s) => {
s.interface.isIdle = true; s.interface.isIdle = true;
}); });
} }
}, 6000); }, 6000);
s.interface.isIdle = state; s.interface.isIdle = state;
}); });
}, },