UNPKG

reactuals

Version:

A useful package providing a collection of 50+ React hooks and utilities to simplify React development.

30 lines (29 loc) 1.01 kB
import { useState, useEffect } from "react"; export function useBatteryStatus() { const [batteryState, setBatteryState] = useState({ level: null, charging: null, }); useEffect(() => { let isMounted = true; const updateBattery = (battery) => { if (isMounted) { setBatteryState({ level: battery.level !== null ? battery.level : null, charging: battery.charging !== null ? battery.charging : null, }); } }; if ("getBattery" in navigator) { navigator.getBattery().then((battery) => { updateBattery(battery); battery.addEventListener("levelchange", () => updateBattery(battery)); battery.addEventListener("chargingchange", () => updateBattery(battery)); }); return () => { isMounted = false; }; } }, []); return batteryState; }