"use client"; import { PopoverShell } from "@/modules/system/components/status-bar/popover-shell"; import type { BatteryPopoverProps } from "@/modules/system/components/status-bar/types"; import { safePercent } from "@/modules/system/components/status-bar/utils"; import { BatteryCharging, BatteryFull } from "@/components/icons/platform-icons"; function formatCapacityRatio(value: number | null | undefined) { if (typeof value !== "number" || Number.isNaN(value)) return "--"; return `${value.toFixed(1)}%`; } export function BatteryPopover({ battery, onClose }: BatteryPopoverProps) { const hasBattery = Boolean(battery?.hasBattery); const batteryPercent = typeof battery?.percent === "number" ? safePercent(battery.percent) : null; const isCharging = Boolean(battery?.isCharging); const acConnected = battery?.acConnected; const manufacturer = battery?.manufacturer ?? null; const cycleCount = battery?.cycleCount; const capacityRatio = formatCapacityRatio( battery?.designToMaxCapacityPercent, ); const statusLabel = !hasBattery ? "No battery detected" : isCharging ? "Charging" : "On battery"; return (
{isCharging ? ( ) : ( )}

Battery Status

{statusLabel}

Charge Level {batteryPercent === null ? "--" : `${batteryPercent}%`}
AC Power {typeof acConnected === "boolean" ? acConnected ? "Connected" : "Disconnected" : "--"}
Cycle Count {typeof cycleCount === "number" ? cycleCount : "--"}
Design / Max {capacityRatio}
Manufacturer {manufacturer ?? "--"}
); }