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 { type FieldComponents , FormControl , FormDescription , FormField , FormItem , FormLabel , FormMessage } from "./form" ;
9- import type { Control , FieldPath , FieldValues } from "react-hook-form" ;
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' ;
1018
1119export interface DatePickerProps <
1220 TFieldValues extends FieldValues = FieldValues ,
13- TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues >
21+ TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues > ,
1422> {
1523 control ?: Control < TFieldValues > ;
1624 name : TName ;
@@ -30,41 +38,42 @@ export const DatePicker = forwardRef<HTMLButtonElement, DatePickerProps>(
3038 name = { name }
3139 render = { ( { field, fieldState } ) => (
3240 < FormItem className = { className } >
33- { label && < FormLabel Component = { components ?. FormLabel } className = { labelClassName } > { label } </ FormLabel > }
41+ { label && (
42+ < FormLabel Component = { components ?. FormLabel } className = { labelClassName } >
43+ { label }
44+ </ FormLabel >
45+ ) }
3446 < FormControl Component = { components ?. FormControl } >
3547 < Popover >
3648 < PopoverTrigger asChild >
3749 < Button
3850 ref = { ref }
3951 variant = "outline"
4052 className = { cn (
41- " w-[280px] justify-start text-left font-normal" ,
42- ! field . value && " text-muted-foreground" ,
43- buttonClassName
53+ ' w-[280px] justify-start text-left font-normal' ,
54+ ! field . value && ' text-muted-foreground' ,
55+ buttonClassName ,
4456 ) }
4557 >
4658 < CalendarIcon className = "mr-2 h-4 w-4" />
47- { field . value ? format ( field . value , " PPP" ) : < span > { label || " Pick a date" } </ span > }
59+ { field . value ? format ( field . value , ' PPP' ) : < span > { label || ' Pick a date' } </ span > }
4860 </ Button >
4961 </ PopoverTrigger >
5062 < PopoverContent className = "w-auto p-0" >
51- < Calendar
52- mode = "single"
53- selected = { field . value }
54- onSelect = { field . onChange }
55- initialFocus
56- />
63+ < Calendar mode = "single" selected = { field . value } onSelect = { field . onChange } />
5764 </ PopoverContent >
5865 </ Popover >
5966 </ FormControl >
6067
6168 { description && < FormDescription Component = { components ?. FormDescription } > { description } </ FormDescription > }
62- { fieldState . error && < FormMessage Component = { components ?. FormMessage } > { fieldState . error . message } </ FormMessage > }
69+ { fieldState . error && (
70+ < FormMessage Component = { components ?. FormMessage } > { fieldState . error . message } </ FormMessage >
71+ ) }
6372 </ FormItem >
6473 ) }
6574 />
6675 ) ;
67- }
76+ } ,
6877) ;
6978
70- DatePicker . displayName = " DatePicker" ;
79+ DatePicker . displayName = ' DatePicker' ;
0 commit comments