diff --git a/package-lock.json b/package-lock.json index f529086..c70befc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ }, "devDependencies": { "@types/uuid": "^9.0.5", + "@types/web": "^0.0.117", "ts-standard": "^12.0.2", "typescript": "^5.2.2", "vite": "^4.4.11", @@ -755,6 +756,12 @@ "integrity": "sha512-xfHdwa1FMJ082prjSJpoEI57GZITiQz10r3vEJCHa2khEFQjKy91aWKz6+zybzssCvXUwE1LQWgWVwZ4nYUvHQ==", "dev": true }, + "node_modules/@types/web": { + "version": "0.0.117", + "resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.117.tgz", + "integrity": "sha512-RuiWqL7X8vZjg9gB6vWHfqz6/u7RAghWlAsIYm8pImmtRsrupiWPH3yTUu+iutLx8om9U0W/CpP8Lx1rDYBjYw==", + "dev": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", diff --git a/package.json b/package.json index d62f652..afab852 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "license": "MIT", "devDependencies": { "@types/uuid": "^9.0.5", + "@types/web": "^0.0.117", "ts-standard": "^12.0.2", "typescript": "^5.2.2", "vite": "^4.4.11", diff --git a/src/modules/battery.ts b/src/modules/battery.ts index 3909381..7818ec0 100644 --- a/src/modules/battery.ts +++ b/src/modules/battery.ts @@ -9,5 +9,17 @@ export const run = (element: HTMLDivElement): void => { element.style.alignItems = 'center' element.style.paddingLeft = '15px' element.style.paddingRight = '15px' - element.innerHTML = '🔋 100%' + + if ('getBattery' in navigator) { + // types don't exist for battery api + // @ts-expect-error + navigator.getBattery().then((battery) => { + element.innerHTML = `🔋 ${(battery.level * 100).toFixed(0)}%` + battery.addEventListener('', () => { + element.innerHTML = `🔋 ${(battery.level * 100).toFixed(0)}%` + }) + }) + } else { + console.log('Battery API is not supported on this device') + } }