1- import { format } from ' date-fns' ;
2- import { Calendar as CalendarIcon } from ' lucide-react' ;
3- import { forwardRef } from ' react' ;
4- import { cn } from ' @/lib/utils' ;
5- import { Calendar } from ' ./calendar' ;
6- import { Popover , PopoverContent , PopoverTrigger } from ' ./popover' ;
1+ import { format } from " date-fns" ;
2+ import { Calendar as CalendarIcon } from " lucide-react" ;
3+ import { forwardRef } from " react" ;
4+ import { cn } from " @/lib/utils" ;
5+ import { Calendar } from " ./calendar" ;
6+ import { Popover , PopoverContent , PopoverTrigger } from " ./popover" ;
77import { Button } from './button' ;
8- import {
9- type FieldComponents ,
10- FormControl ,
11- FormDescription ,
12- FormField ,
13- FormItem ,
14- FormLabel ,
15- FormMessage ,
16- } from './form' ;
17- import type { Control , FieldPath , FieldValues } from 'react-hook-form' ;
8+ import { type FieldComponents , FormControl , FormDescription , FormField , FormItem , FormLabel , FormMessage } from "./form" ;
9+ import type { Control , FieldPath , FieldValues } from "react-hook-form" ;
1810
1911export interface DatePickerProps <
2012 TFieldValues extends FieldValues = FieldValues ,
21- TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues > ,
13+ TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues >
2214> {
2315 control ?: Control < TFieldValues > ;
2416 name : TName ;
@@ -38,42 +30,40 @@ export const DatePicker = forwardRef<HTMLButtonElement, DatePickerProps>(
3830 name = { name }
3931 render = { ( { field, fieldState } ) => (
4032 < FormItem className = { className } >
41- { label && (
42- < FormLabel Component = { components ?. FormLabel } className = { labelClassName } >
43- { label }
44- </ FormLabel >
45- ) }
33+ { label && < FormLabel Component = { components ?. FormLabel } className = { labelClassName } > { label } </ FormLabel > }
4634 < FormControl Component = { components ?. FormControl } >
4735 < Popover >
4836 < PopoverTrigger asChild >
4937 < Button
5038 ref = { ref }
5139 variant = "outline"
5240 className = { cn (
53- ' w-[280px] justify-start text-left font-normal' ,
54- ! field . value && ' text-muted-foreground' ,
55- buttonClassName ,
41+ " w-[280px] justify-start text-left font-normal" ,
42+ ! field . value && " text-muted-foreground" ,
43+ buttonClassName
5644 ) }
5745 >
5846 < CalendarIcon className = "mr-2 h-4 w-4" />
59- { field . value ? format ( field . value , ' PPP' ) : < span > { label || ' Pick a date' } </ span > }
47+ { field . value ? format ( field . value , " PPP" ) : < span > { label || " Pick a date" } </ span > }
6048 </ Button >
6149 </ PopoverTrigger >
6250 < PopoverContent className = "w-auto p-0" >
63- < Calendar mode = "single" selected = { field . value } onSelect = { field . onChange } />
51+ < Calendar
52+ mode = "single"
53+ selected = { field . value }
54+ onSelect = { field . onChange }
55+ />
6456 </ PopoverContent >
6557 </ Popover >
6658 </ FormControl >
6759
6860 { description && < FormDescription Component = { components ?. FormDescription } > { description } </ FormDescription > }
69- { fieldState . error && (
70- < FormMessage Component = { components ?. FormMessage } > { fieldState . error . message } </ FormMessage >
71- ) }
61+ { fieldState . error && < FormMessage Component = { components ?. FormMessage } > { fieldState . error . message } </ FormMessage > }
7262 </ FormItem >
7363 ) }
7464 />
7565 ) ;
76- } ,
66+ }
7767) ;
7868
79- DatePicker . displayName = ' DatePicker' ;
69+ DatePicker . displayName = " DatePicker" ;
0 commit comments