chore: lint/format all files (#604)

* chore: lint/format all files

* Fix config sidebar button state (#602)

* chore: Update deno.lock version and add Radix UI slider component (#601)

* fix: improve how table addresses even/odd rows

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
This commit is contained in:
Dan Ditomaso
2025-05-04 15:55:04 -04:00
committed by GitHub
co-authored by philon- Kamil Dzieniszewski
parent b7bdb1a502
commit 480ca46a95
104 changed files with 3104 additions and 2527 deletions
+24 -22
View File
@@ -1,10 +1,10 @@
import React from 'react';
import React from "react";
import {
PlugZapIcon,
BatteryFullIcon,
BatteryMediumIcon,
BatteryLowIcon,
} from 'lucide-react';
BatteryMediumIcon,
PlugZapIcon,
} from "lucide-react";
import { Subtle } from "@components/UI/Typography/Subtle.tsx";
interface DeviceMetrics {
@@ -25,50 +25,52 @@ interface BatteryStateConfig {
const batteryStates: BatteryStateConfig[] = [
{
condition: level => level > 100,
condition: (level) => level > 100,
Icon: PlugZapIcon,
className: 'text-gray-500',
text: () => 'Plugged in',
className: "text-gray-500",
text: () => "Plugged in",
},
{
condition: level => level > 80,
condition: (level) => level > 80,
Icon: BatteryFullIcon,
className: 'text-green-500',
text: level => `${level}% charging`,
className: "text-green-500",
text: (level) => `${level}% charging`,
},
{
condition: level => level > 20,
condition: (level) => level > 20,
Icon: BatteryMediumIcon,
className: 'text-yellow-500',
text: level => `${level}% charging`,
className: "text-yellow-500",
text: (level) => `${level}% charging`,
},
{
condition: () => true,
Icon: BatteryLowIcon,
className: 'text-red-500',
text: level => `${level}% charging`,
className: "text-red-500",
text: (level) => `${level}% charging`,
},
];
const getBatteryState = (level: number) => {
return batteryStates.find(state => state.condition(level));
return batteryStates.find((state) => state.condition(level));
};
const BatteryStatus: React.FC<BatteryStatusProps> = ({ deviceMetrics }) => {
if (deviceMetrics?.batteryLevel === undefined || deviceMetrics?.batteryLevel === null) {
if (
deviceMetrics?.batteryLevel === undefined ||
deviceMetrics?.batteryLevel === null
) {
return null;
}
const { batteryLevel, voltage } = deviceMetrics;
const currentState = getBatteryState(batteryLevel) ?? batteryStates[batteryStates.length - 1];
const currentState = getBatteryState(batteryLevel) ??
batteryStates[batteryStates.length - 1];
const BatteryIcon = currentState.Icon;
const iconClassName = currentState.className;
const statusText = currentState.text(batteryLevel);
const voltageTitle = `${voltage?.toPrecision(3) ?? 'Unknown'} volts`;
const voltageTitle = `${voltage?.toPrecision(3) ?? "Unknown"} volts`;
return (
<div
@@ -83,4 +85,4 @@ const BatteryStatus: React.FC<BatteryStatusProps> = ({ deviceMetrics }) => {
);
};
export default BatteryStatus;
export default BatteryStatus;