Files
stats/apps/public/components/battery-icon.tsx
Carl-Gerhard Lindesvärd bbe0192a19 fix(public): ts issue
2025-06-18 14:50:30 +02:00

30 lines
639 B
TypeScript

'use client';
import {
BatteryFullIcon,
BatteryLowIcon,
BatteryMediumIcon,
type LucideProps,
} from 'lucide-react';
import { useEffect, useState } from 'react';
export function BatteryIcon(props: LucideProps) {
const [index, setIndex] = useState(0);
const icons = [BatteryLowIcon, BatteryMediumIcon, BatteryFullIcon];
const Icon = icons[index];
useEffect(() => {
const interval = setInterval(() => {
setIndex((index + 1) % icons.length);
}, 750);
return () => clearInterval(interval);
}, [index]);
if (!Icon) {
return <div className={props.className} />;
}
return <Icon {...props} />;
}