11'use client' ;
2- import {
3- DatePickerRootValueChangeEvent ,
4- DatePickerTableBodyInstance ,
5- DatePickerTableHeadRowInstance ,
6- useDatePickerMonthData ,
7- useDatePickerMonthOptions ,
8- useDatePickerProps ,
9- useDatePickerYearOptions
10- } from '@primereact/types/shared/datepicker' ;
2+ import { ChevronLeft } from '@primeicons/react/chevron-left' ;
3+ import { ChevronRight } from '@primeicons/react/chevron-right' ;
4+ import { DatePickerRootValueChangeEvent , useDatePickerProps } from '@primereact/types/shared/datepicker' ;
5+ import { Button } from '@primereact/ui/button' ;
116import { DatePicker } from '@primereact/ui/datepicker' ;
127import * as React from 'react' ;
138
@@ -19,109 +14,27 @@ export default function BasicDemo() {
1914 < DatePicker . Root value = { date } onValueChange = { ( event : DatePickerRootValueChangeEvent ) => setDate ( event . value ) } >
2015 < DatePicker . Input />
2116 < DatePicker . Portal >
22- < DatePicker . Container >
23- < DatePicker . Calendar >
24- < DatePicker . Header >
25- < DatePicker . Prev />
26- < DatePicker . Title >
27- < DatePicker . SelectMonth />
28- < DatePicker . SelectYear />
29- < DatePicker . Decade />
30- </ DatePicker . Title >
31- < DatePicker . Next />
32- </ DatePicker . Header >
33- < DatePicker . Table >
34- < DatePicker . TableHead >
35- < DatePicker . TableHeadRow >
36- { ( instance : DatePickerTableHeadRowInstance ) => {
37- const { datepicker } = instance ;
38- const weekDays = datepicker ?. weekDays as string [ ] ;
39-
40- return (
41- < >
42- { weekDays . map ( ( day , index ) => (
43- < DatePicker . TableHeadCell key = { index } abbr = { day } >
44- { day }
45- </ DatePicker . TableHeadCell >
46- ) ) }
47- </ >
48- ) ;
49- } }
50- </ DatePicker . TableHeadRow >
51- </ DatePicker . TableHead >
52- < DatePicker . TableBody >
53- { ( instance : DatePickerTableBodyInstance ) => {
54- const { datepicker } = instance ;
55- const month = datepicker ?. getIndexedMonth ?.( ) as useDatePickerMonthData ;
56-
57- return (
58- < >
59- { month . dates ?. map ( ( week ) => (
60- < DatePicker . TableBodyRow key = { week [ 0 ] . day + '' + week [ 0 ] . month } >
61- < >
62- { week . map ( ( date ) => (
63- < DatePicker . TableBodyCell key = { date . day + '' + date . month } date = { date } >
64- { date . day }
65- </ DatePicker . TableBodyCell >
66- ) ) }
67- </ >
68- </ DatePicker . TableBodyRow >
69- ) ) }
70- </ >
71- ) ;
72- } }
73- </ DatePicker . TableBody >
74- < DatePicker . TableBody view = "month" >
75- { ( instance : DatePickerTableBodyInstance ) => {
76- const { datepicker } = instance ;
77- const months = datepicker ?. monthPickerValues as useDatePickerMonthOptions [ ] ;
78-
79- return (
80- < >
81- { Array . from ( { length : 4 } ) . map ( ( _ , rowIndex ) => (
82- < DatePicker . TableBodyRow key = { `month-row-${ rowIndex } ` } >
83- { months . slice ( rowIndex * 3 , ( rowIndex + 1 ) * 3 ) . map ( ( month , colIndex ) => {
84- const monthIndex = rowIndex * 3 + colIndex ;
85-
86- return (
87- < DatePicker . TableBodyCell key = { monthIndex } month = { month } index = { monthIndex } >
88- { month . value }
89- </ DatePicker . TableBodyCell >
90- ) ;
91- } ) }
92- </ DatePicker . TableBodyRow >
93- ) ) }
94- </ >
95- ) ;
96- } }
97- </ DatePicker . TableBody >
98- < DatePicker . TableBody view = "year" >
99- { ( instance : DatePickerTableBodyInstance ) => {
100- const { datepicker } = instance ;
101- const years = datepicker ?. yearPickerValues as useDatePickerYearOptions [ ] ;
102-
103- return (
104- < >
105- { Array . from ( { length : 5 } ) . map ( ( _ , rowIndex ) => (
106- < DatePicker . TableBodyRow key = { `year-row-${ rowIndex } ` } >
107- { years . slice ( rowIndex * 2 , ( rowIndex + 1 ) * 2 ) . map ( ( year , colIndex ) => {
108- const yearIndex = rowIndex * 2 + colIndex ;
109-
110- return (
111- < DatePicker . TableBodyCell key = { yearIndex } year = { year } >
112- { year . value }
113- </ DatePicker . TableBodyCell >
114- ) ;
115- } ) }
116- </ DatePicker . TableBodyRow >
117- ) ) }
118- </ >
119- ) ;
120- } }
121- </ DatePicker . TableBody >
122- </ DatePicker . Table >
123- </ DatePicker . Calendar >
124- </ DatePicker . Container >
17+ < DatePicker . Calendar >
18+ < DatePicker . Header >
19+ < DatePicker . Prev as = { Button } iconOnly variant = "text" rounded severity = "secondary" >
20+ < ChevronLeft />
21+ </ DatePicker . Prev >
22+ < DatePicker . Title >
23+ < DatePicker . SelectMonth />
24+ < DatePicker . SelectYear />
25+ < DatePicker . Decade />
26+ </ DatePicker . Title >
27+ < DatePicker . Next as = { Button } iconOnly variant = "text" rounded severity = "secondary" >
28+ < ChevronRight />
29+ </ DatePicker . Next >
30+ </ DatePicker . Header >
31+ < DatePicker . Table >
32+ < DatePicker . TableHead />
33+ < DatePicker . TableBody />
34+ < DatePicker . TableBody view = "month" />
35+ < DatePicker . TableBody view = "year" />
36+ </ DatePicker . Table >
37+ </ DatePicker . Calendar >
12538 </ DatePicker . Portal >
12639 </ DatePicker . Root >
12740 </ div >
0 commit comments