This library provides a readable Svelte store to use a PWA's access to the Battery Status API
, available on the navigator. It allows you to read charging levels as well as certain charging thresholds.
This package is part of a collection of PWA-related svelte-packages:
npm i -D svelte-battery-status
This library provides a simple readable store that automatically subscribes to events of BatteryManager
, an API of the navigator
to access battery charge information.
<script lang="ts">
import { batteryStore } from 'svelte-battery-status';
</script>
<ul>
<li>State: {$batteryStore.state}</li>
<li>isCharging: {$batteryStore.isCharging}</li>
<li>chargeCompleteInSec: {$batteryStore.chargeCompleteInSec}</li>
<li>dischargeCompleteInSec: {$batteryStore.dischargeCompleteInSec}</li>
<li>level: {$batteryStore.level}</li>
</ul>
To subscribe to changes for only a specific selection of values, simply create a derived
store.
<script lang="ts">
import { batteryStore } from 'svelte-battery-status';
import { derived } from 'svelte/store';
const level = derived(batteryStore, ($store) => $store.level);
</script>
level: {$level}
The following values are returned from the store.
Key | Value | Description |
---|---|---|
state | init , not-supported , subscribed , unsubscribed , error |
init if not yet loaded, not-supported if browser doesn't support the BatteryManager , subscribed if the store is listening to changes, unsubscribed if the API is supported, but not listening, error in case of an unknown error throw |
isCharging | boolean / undefined |
Flag if the device is charging (please note that a stationary device like a desktop is always charging) |
chargeCompleteInSec | number / undefined |
Amount of seconds until device is fully charged |
dischargeCompleteInSec | number / undefined |
Amount of seconds until device is empty |
level | number / undefined |
Value between 0 and 1, indicating the percent of current charge |