Components
Animated number counter with smooth transitions, compact formatting, and optional increment/decrement controls for displaying Redis counters.
Loading preview...
"use client";
import { UpstashCounter } from "@/components/ui/upstash-counter";
import { useState } from "react";
export default function UpstashCounterDemo() {
const [views, setViews] = useState(1234);
return (
<div className="flex min-h-[320px] w-full items-center justify-center bg-background p-8">
<div className="flex flex-col items-center gap-10">
<UpstashCounter
value={views}
label="Page Views"
format="compact"
size="lg"
showControls
onIncrement={() => setViews((c) => c + 1)}
onDecrement={() => setViews((c) => Math.max(0, c - 1))}
/>
<div className="flex items-center gap-12 border-t border-border pt-8">
<UpstashCounter
value={15800}
label="Users"
format="compact"
size="sm"
/>
<UpstashCounter
value={2500000}
label="Requests"
format="compact"
size="sm"
/>
</div>
</div>
</div>
);
}