Openstatus www.openstatus.dev
at main 42 lines 1.1 kB view raw
1"use client"; 2 3import { format } from "date-fns"; 4import { Calendar as CalendarIcon } from "lucide-react"; 5 6import { Button } from "../components/button"; 7import { Calendar } from "../components/calendar"; 8import { Popover, PopoverContent, PopoverTrigger } from "../components/popover"; 9import { cn } from "../lib/utils"; 10 11export function DatePicker({ 12 date, 13 setDate, 14}: { 15 date?: Date; 16 setDate: (date?: Date) => void; 17}) { 18 return ( 19 <Popover> 20 <PopoverTrigger asChild> 21 <Button 22 variant={"outline"} 23 className={cn( 24 "w-full justify-start text-left font-normal", 25 !date && "text-muted-foreground" 26 )} 27 > 28 <CalendarIcon className="mr-2 h-4 w-4" /> 29 {date ? format(date, "PPP") : <span>Pick a date</span>} 30 </Button> 31 </PopoverTrigger> 32 <PopoverContent className="w-auto p-0"> 33 <Calendar 34 mode="single" 35 selected={date} 36 onSelect={setDate} 37 initialFocus 38 /> 39 </PopoverContent> 40 </Popover> 41 ); 42}