@@ -5,6 +5,7 @@ import { Button, Popover } from "@mui/material";
55import { format , addDays } from "date-fns" ;
66import { LocaleArrow } from "../common/LocaleArrow" ;
77import useStore from "../../hooks/useStore" ;
8+ import useArrowDisable from "../../hooks/useArrowDisable" ;
89
910interface DayDateBtnProps {
1011 selectedDate : Date ;
@@ -14,6 +15,7 @@ interface DayDateBtnProps {
1415const DayDateBtn = ( { selectedDate, onChange } : DayDateBtnProps ) => {
1516 const { locale, navigationPickerProps } = useStore ( ) ;
1617 const [ anchorEl , setAnchorEl ] = useState < HTMLButtonElement | null > ( null ) ;
18+ const { prevDisabled, nextDisabled } = useArrowDisable ( ) ;
1719
1820 const handleOpen = ( event : React . MouseEvent < HTMLButtonElement > ) => {
1921 setAnchorEl ( event . currentTarget ) ;
@@ -31,13 +33,20 @@ const DayDateBtn = ({ selectedDate, onChange }: DayDateBtnProps) => {
3133 const prevDay = addDays ( selectedDate , - 1 ) ;
3234 onChange ( prevDay ) ;
3335 } ;
36+
3437 const handleNext = ( ) => {
3538 const nexDay = addDays ( selectedDate , 1 ) ;
3639 onChange ( nexDay ) ;
3740 } ;
41+
3842 return (
3943 < >
40- < LocaleArrow type = "prev" onClick = { handlePrev } aria-label = "previous day" />
44+ < LocaleArrow
45+ type = "prev"
46+ onClick = { handlePrev }
47+ disabled = { prevDisabled }
48+ aria-label = "previous day"
49+ />
4150 < Button style = { { padding : 4 } } onClick = { handleOpen } aria-label = "selected date" >
4251 { format ( selectedDate , "dd MMMM yyyy" , { locale } ) }
4352 </ Button >
@@ -60,7 +69,7 @@ const DayDateBtn = ({ selectedDate, onChange }: DayDateBtnProps) => {
6069 />
6170 </ DateProvider >
6271 </ Popover >
63- < LocaleArrow type = "next" onClick = { handleNext } aria-label = "next day" />
72+ < LocaleArrow type = "next" onClick = { handleNext } disabled = { nextDisabled } aria-label = "next day" />
6473 </ >
6574 ) ;
6675} ;
0 commit comments