feat(waybar): implement all dummy widgets

This commit is contained in:
Pihkaal
2024-07-31 15:13:53 +02:00
parent 1dcae0c20a
commit 0046e5dd82
28 changed files with 396 additions and 84 deletions

View File

@@ -0,0 +1,29 @@
import { useEffect, useState } from "react";
import { WaybarWidget } from "../WaybarWidget";
import { clamp, randomMinMax } from "~/utils/math";
export const WaybarTemperatureWidget = (props: {
min: number;
max: number;
variation: number;
frequency: number;
}) => {
const [temperature, setTemperature] = useState(
randomMinMax(props.min, props.max),
);
useEffect(() => {
const interval = setInterval(() => {
const offset = randomMinMax(-props.variation, props.variation + 1);
setTemperature((x) => clamp(x + offset, props.min, props.max));
}, props.frequency);
return () => clearInterval(interval);
});
return (
<WaybarWidget className="pl-3 pr-[0.625rem]">
{temperature}°C
</WaybarWidget>
);
};