useBattery
A hook that provides access to the device’s battery information through the Battery Status API. Perfect for implementing power-aware features and battery status indicators.
Parameters
This hook doesn’t take any parameters.
Returns
supported:boolean- Whether the Battery Status API is supportedloading:boolean- Whether the battery information is being fetchedlevel:number | null- Battery level from 0 to 1charging:boolean | null- Whether the device is currently chargingchargingTime:number | null- Seconds until battery is fully chargeddischargingTime:number | null- Seconds until battery is fully discharged
Usage
import { useBattery } from '@rhinolabs/react-hooks';
function BatteryStatus() { const { supported, loading, level, charging, chargingTime, dischargingTime } = useBattery();
if (!supported) { return <div>Battery status not supported</div>; }
if (loading) { return <div>Loading battery status...</div>; }
return ( <div> <div>Battery Level: {(level! * 100).toFixed(0)}%</div> <div> Status: {charging ? 'Charging' : 'Not charging'} </div> {charging ? ( <div>Full charge in: {Math.round(chargingTime! / 60)} minutes</div> ) : ( <div>Time remaining: {Math.round(dischargingTime! / 60)} minutes</div> )} </div> );}Notes
- Uses Battery Status API with browser support detection
- Real-time updates with automatic state management
- Type-safe nullability for all battery properties
- Handles loading states and error boundaries
- Implements automatic event listener cleanup