1- import React , { FC } from 'react'
1+ import React from 'react'
22import dayjs from 'dayjs'
33import isBetween from 'dayjs/plugin/isBetween'
44import { IYear } from './../types'
5- import { daysOfTheWeek , daysOfTheWeekOffset } from './../Utils'
5+ import { daysOfTheWeek , daysOfTheWeekOffset , getMonthName } from './../Utils'
66
77dayjs . extend ( isBetween )
88
9- const Year : FC < IYear > = ( {
10- showNumberOfMonths,
11- bookedDates,
12- lateCheckouts,
13- currentYear = dayjs ( ) . year ( ) ,
14- } ) : JSX . Element => {
9+ const Year = ( {
10+ activeYear,
11+ showNumberOfMonths = 12 ,
12+ bookedDates = [ ] ,
13+ lateCheckouts = [ ] ,
14+ monthsFrom = 1 ,
15+ } : IYear ) : JSX . Element => {
16+ const _year = activeYear || dayjs ( ) . year ( )
17+
1518 return (
1619 < div className = 'year' data-testid = 'year' >
1720 { new Array ( showNumberOfMonths ) . fill ( '' ) . map ( ( _ , pos ) => {
1821 const arrOffset = 1
19- const month = pos + arrOffset
20- const date = `${ currentYear } -${ month } `
21- const monthName = dayjs ( date ) . format ( 'MMMM' )
22+ const month = monthsFrom + pos
23+ const date = `${ _year } -${ month } `
24+ const monthName = getMonthName ( month )
2225 const totalDays = dayjs ( date ) . daysInMonth ( )
23-
2426 const firstDayOfWeek = dayjs ( `${ date } -01` ) . day ( )
27+
2528 const offsetDays =
2629 firstDayOfWeek !== 0
2730 ? new Array ( firstDayOfWeek - arrOffset ) . fill ( '' )
@@ -50,10 +53,11 @@ const Year: FC<IYear> = ({
5053
5154 { daysArr . map ( ( _ , pos ) => {
5255 const day = pos + arrOffset
53- const isBooked = Array . isArray ( bookedDates ) ? bookedDates . includes ( `${ date } -${ day } ` ) : false
54- const isLateCheckout = Array . isArray ( lateCheckouts )
55- ? lateCheckouts . includes ( `${ dayjs ( `${ date } -${ day } ` ) . format ( 'MM-DD-YYYY' ) } ` )
56- : false
56+ const _date = `${ month } -${ day } -${ _year } `
57+
58+ const isBooked = Array . isArray ( bookedDates ) ? bookedDates . includes ( _date ) : false
59+
60+ const isLateCheckout = Array . isArray ( lateCheckouts ) ? lateCheckouts . includes ( _date ) : false
5761
5862 return (
5963 < div
@@ -72,10 +76,4 @@ const Year: FC<IYear> = ({
7276 )
7377}
7478
75- Year . defaultProps = {
76- showNumberOfMonths : 12 ,
77- bookedDates : [ ] ,
78- lateCheckouts : [ ] ,
79- }
80-
8179export default Year
0 commit comments