import { add, differenceInDays } from "date-fns"; import { CalendarClock, CalendarDays, Clock, Hourglass } from "lucide-react"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "~/components/ui/accordion"; import { Card, CardContent } from "~/components/ui/card"; import { Progress } from "~/components/ui/progress"; // Import the Progress component import { useMediaQuery } from "~/hooks/use-media-query"; export const ServizioDuration = ({ decorrenza, }: { decorrenza: Date | null; }) => { const isDesktop = useMediaQuery("(min-width: 768px)"); if (!decorrenza) { return null; // If decorrenza is null, do not render the component } return (
Validità servizio
); }; interface ServiceDurationDisplayProps { decorrenza: Date; scadenza: Date; recessoDays: number; } /** * A sleek, light-themed component for displaying service duration, * including start date, end date, and trial period, with a progress bar. */ function ServiceDurationDisplay({ decorrenza, scadenza, recessoDays, }: ServiceDurationDisplayProps) { // Calculate remaining days const diffDays = differenceInDays(scadenza, new Date()) + 1; const remainingDaysText = diffDays >= 0 ? `${diffDays} giorni` : "Concluso"; const progressPercentage = ((60 - diffDays) / 60) * 100; // Assuming 60 days is the full duration for 100% progress return (
{/* Progress Bar */}
{remainingDaysText}
); }