@@ -3,20 +3,12 @@ import { useDidMountEffect, useValue } from '@bifrostui/utils';
3
3
import clsx from 'clsx' ;
4
4
import dayjs from 'dayjs' ;
5
5
import isoWeek from 'dayjs/plugin/isoWeek' ;
6
- import React , {
7
- Suspense ,
8
- lazy ,
9
- SyntheticEvent ,
10
- useMemo ,
11
- useState ,
12
- } from 'react' ;
6
+ import React , { SyntheticEvent , useMemo , useState } from 'react' ;
13
7
import { CalendarProps , ICalendarInstance } from './Calendar.types' ;
14
8
import { formatDate , isRange , isSame } from './utils' ;
15
9
import { useLocaleText } from '../locales' ;
16
10
import './Calendar.less' ;
17
11
18
- const Picker = lazy ( ( ) => import ( '../Picker' ) ) ;
19
-
20
12
dayjs . extend ( isoWeek ) ;
21
13
22
14
const classes = {
@@ -41,12 +33,10 @@ const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(
41
33
headerBarLeftIcon,
42
34
headerBarRightIcon,
43
35
disabledDate,
44
- enableSelectYear,
45
36
highlightDate,
46
37
dateRender,
47
38
weekRender,
48
39
onMonthChange,
49
- onYearChange,
50
40
onChange,
51
41
...others
52
42
} = props ;
@@ -72,8 +62,6 @@ const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(
72
62
maxDate ,
73
63
) ;
74
64
75
- // 控制年份选择picker
76
- const [ openPicker , setOpenPicker ] = useState < boolean > ( false ) ;
77
65
// 头部操作栏月份
78
66
const [ renderMonth , setRenderMonth ] = useState ( ( ) => {
79
67
const initMonth =
@@ -186,21 +174,6 @@ const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(
186
174
return list ;
187
175
} ;
188
176
189
- const getYearsList = ( ) => {
190
- const result = [ ] ;
191
- // 使用传入参数的时间
192
- let startTime = new Date ( minDate ) . getFullYear ( ) ;
193
- const endTime = new Date ( maxDate ) . getFullYear ( ) ;
194
- while ( endTime - startTime >= 0 ) {
195
- result . push ( {
196
- label : startTime ,
197
- value : startTime ,
198
- } ) ;
199
- startTime += 1 ;
200
- }
201
- return result ;
202
- } ;
203
-
204
177
const getDayClassName = ( { day : itemDate , disabled } ) => {
205
178
let result = '' ;
206
179
if ( disabled ) return result ;
@@ -334,27 +307,6 @@ const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(
334
307
}
335
308
} ;
336
309
337
- /**
338
- * 点击顶部日期
339
- */
340
- const onClickDate = ( e ) => {
341
- if ( ! enableSelectYear ) {
342
- return ;
343
- }
344
- e . stopPropagation ( ) ;
345
- setOpenPicker ( true ) ;
346
- getYearsList ( ) ;
347
- } ;
348
- const onClosePicker = ( e , data ) => {
349
- const selectYear = data . value [ 0 ] ;
350
- e . stopPropagation ( ) ;
351
- setRenderMonth ( dayjs ( renderMonth ) . set ( 'year' , selectYear ) . toDate ( ) ) ;
352
- onYearChange ?.( e , {
353
- year : selectYear ,
354
- } ) ;
355
- setOpenPicker ( false ) ;
356
- } ;
357
-
358
310
let data : Record < string , string > = { } ;
359
311
if ( isRangeMode ) {
360
312
data = {
@@ -382,7 +334,7 @@ const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(
382
334
< div onClick = { onClickPrev } className = { `${ classes . handler } -btn` } >
383
335
{ headerBarIcon . left }
384
336
</ div >
385
- < div className = { `${ classes . handler } -text` } onClick = { onClickDate } >
337
+ < div className = { `${ classes . handler } -text` } >
386
338
{ dayjs ( renderMonth ) . format ( headerBarFormat ) }
387
339
</ div >
388
340
< div onClick = { onClickNext } className = { `${ classes . handler } -btn` } >
@@ -404,16 +356,6 @@ const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(
404
356
</ div >
405
357
406
358
< div className = { clsx ( `${ classes . root } -month` ) } > { renderDayList ( ) } </ div >
407
- { enableSelectYear && (
408
- < Suspense fallback = { null } >
409
- < Picker
410
- options = { [ getYearsList ( ) ] }
411
- open = { openPicker }
412
- value = { [ dayjs ( renderMonth ) . year ( ) ] }
413
- onClose = { onClosePicker }
414
- />
415
- </ Suspense >
416
- ) }
417
359
</ div >
418
360
) ;
419
361
} ,
@@ -423,7 +365,6 @@ Calendar.displayName = 'BuiCalendar';
423
365
Calendar . defaultProps = {
424
366
hideDaysOutsideCurrentMonth : false ,
425
367
headerBarFormat : 'YYYY/MM' ,
426
- enableSelectYear : false ,
427
368
mode : 'single' ,
428
369
minDate : dayjs ( dayjs ( ) . format ( 'YYYYMMDD' ) ) . add ( 0 , 'month' ) . toDate ( ) ,
429
370
maxDate : dayjs ( dayjs ( ) . format ( 'YYYYMMDD' ) ) . add ( 11 , 'month' ) . toDate ( ) ,
0 commit comments