2import React, { useEffect, useState } from "react";
4interface SalesPulseProps {
8export default function SalesPulse({ value }: SalesPulseProps) {
9 const [pulseValue, setPulseValue] = useState<number>(value || 0);
10 const [loading, setLoading] = useState(!value);
13 if (value !== undefined) {
20 // If no value provided, refresh with random data every 30 seconds
21 if (value === undefined) {
22 const interval = setInterval(() => {
23 setPulseValue(Math.floor(Math.random() * 5000) + 1000);
26 return () => clearInterval(interval);
31 <div className="card" role="status" aria-live="polite">
32 <div className="flex items-center justify-between mb-2">
33 <div className="text-sm font-semibold">Sales pulse</div>
34 <div className="text-xs text-muted">Live widget</div>
36 <div className="h-48 rounded-md bg-surface border border-border flex items-center justify-center">
38 <div className="text-muted">Loading...</div>
40 <div className="text-3xl font-extrabold" aria-atomic="true">
41 ${pulseValue?.toLocaleString()}