Skip to main content
Glama
date-range-picker.tsx2.17 kB
import { Button } from '@/components/ui/button' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { cn } from '@/lib/utils' import { Calendar } from '@/components/ui/calendar' import { addDays } from 'date-fns' import { CalendarRange } from 'lucide-react' import * as React from 'react' import { type DateRange } from 'react-day-picker' import { useLanguage } from '@/contexts/language-context' import { formatDate } from '@/lib/utils' export default function DateRangePicker({ className, value, onChange, }: { className?: React.HTMLAttributes<HTMLDivElement>['className'] value?: DateRange onChange?: (date: DateRange | undefined) => void }) { const [date, setDate] = React.useState<DateRange | undefined>( value || { from: addDays(new Date(), -1), to: new Date(), } ) React.useEffect(() => { if (!onChange) return onChange(date) }, [date, onChange]) const { t, language } = useLanguage() return ( <div className={cn('grid gap-2', className)}> <Popover> <PopoverTrigger asChild> <Button id='date' variant='outline' className={cn( 'w-[222px] justify-start text-left font-normal', !date && 'text-muted-foreground' )}> <CalendarRange className='mr-2 h-4 w-4' /> {date?.from ? ( date.to ? ( <> {formatDate(date.from, language)} - {formatDate(date.to, language)} </> ) : ( formatDate(date.from, language) ) ) : ( <span>{t('common.pickDateRange')}</span> )} </Button> </PopoverTrigger> <PopoverContent className='w-auto p-0' align='start'> <Calendar autoFocus mode='range' defaultMonth={date?.from} selected={date} onSelect={setDate} numberOfMonths={2} disabled={{ after: new Date(), }} /> </PopoverContent> </Popover> </div> ) }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itcook/graphiti-mcp-pro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server