Component Library
Browse and explore components
Datepicker
A Datepicker is a UI component that lets users select dates from a calendar interface.
Basic Datepicker
Component Code
Copy Code
import React from 'react'
import { format } from 'date-fns'
import { Calendar as CalendarIcon } from 'lucide-react'
import { cn } from '@/lib/utils'
import { Button } from '@/components/ui/button'
import { Calendar } from '@/components/ui/calendar'
import {
Popover,
PopoverContent,
PopoverTrigger,
} from '@/components/ui/popover'
const BasicDatepickerCode = () => {
const [date, setDate] = React.useState<Date>()
return (
<>
<div className='flex flex-wrap items-center gap-3 mt-4'>
<Popover>
<PopoverTrigger asChild>
<Button
variant={'outline'}
className={cn(
'max-w-sm justify-start text-left font-normal group',
!date && 'text-muted-foreground'
)}>
<CalendarIcon className='mr-2 h-4 w-4 text-primary group-hover:text-white' />
{date ? (
format(date, 'PPP')
) : (
<span className='text-primary group-hover:text-white'>
Pick a date
</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className='w-auto p-0'>
<Calendar mode='single' selected={date} onSelect={setDate} />
</PopoverContent>
</Popover>
</div>
</>
)
}
export default BasicDatepickerCode
Date Range Picker
Component Code
Copy Code
import React from 'react'
import { addDays, format } from 'date-fns'
import { Calendar as CalendarIcon } from 'lucide-react'
import { cn } from '@/lib/utils'
import { Button } from '@/components/ui/button'
import { Calendar } from '@/components/ui/calendar'
import {
Popover,
PopoverContent,
PopoverTrigger,
} from '@/components/ui/popover'
import { DateRange } from 'react-day-picker'
const BasicDatepickerCode = () => {
const [date, setDate] = React.useState<DateRange | undefined>({
from: new Date(2022, 0, 20),
to: addDays(new Date(2022, 0, 20), 20),
})
return (
<>
<div className='flex flex-wrap items-center gap-3 mt-4 max-w-sm'>
<Popover>
<PopoverTrigger asChild>
<Button
id='date'
variant={'outline'}
className={cn(
'w-full justify-start text-left font-normal',
!date && 'text-muted-foreground'
)}>
<CalendarIcon />
{date?.from ? (
date.to ? (
<>
{format(date.from, 'LLL dd, y')} -{' '}
{format(date.to, 'LLL dd, y')}
</>
) : (
format(date.from, 'LLL dd, y')
)
) : (
<span>Pick a date</span>
)}
</Button>
</PopoverTrigger>
<PopoverContent className='w-full p-0' align='start'>
<Calendar
autoFocus
mode='range'
defaultMonth={date?.from}
selected={date}
onSelect={setDate}
numberOfMonths={2}
/>
</PopoverContent>
</Popover>
</div>
</>
)
}
export default BasicDatepickerCode