import { requireNativeModule } from "expo-modules-core"; import { Platform } from "react-native"; type ExpoWakeLockModuleType = { acquire(): void; release(): void; isHeld(): boolean; }; let ExpoWakeLockModule: ExpoWakeLockModuleType | null = null; if (Platform.OS === "android") { ExpoWakeLockModule = requireNativeModule("ExpoWakeLock"); } else { console.warn( "[expo-wake-lock] WakeLock is only supported on Android. " + `Current platform: ${Platform.OS}`, ); } export function acquireWakeLock() { ExpoWakeLockModule?.acquire(); } export function releaseWakeLock() { ExpoWakeLockModule?.release(); } export function isWakeLockHeld(): boolean { return ExpoWakeLockModule?.isHeld() ?? false; }