2023-02-02 13:24:31 +00:00
|
|
|
import moment from "moment";
|
|
|
|
|
|
|
|
import {
|
|
|
|
CurrentDateItem,
|
|
|
|
DateItem,
|
|
|
|
SecondaryDateItem,
|
|
|
|
} from "../styled-components";
|
|
|
|
|
2023-02-05 10:45:28 +00:00
|
|
|
const onDateClick = (year, setObservedDate, setSelectedScene) => {
|
|
|
|
setObservedDate((prevObservedDate) =>
|
|
|
|
prevObservedDate.clone().set({ year: year })
|
2023-02-02 13:24:31 +00:00
|
|
|
);
|
2023-02-05 10:45:28 +00:00
|
|
|
setSelectedScene((prevSelectedScene) => prevSelectedScene - 1);
|
2023-02-02 13:24:31 +00:00
|
|
|
};
|
|
|
|
|
2023-02-05 10:45:28 +00:00
|
|
|
export const getYearElements = (
|
|
|
|
years,
|
|
|
|
setObservedDate,
|
|
|
|
setSelectedScene,
|
2023-02-06 15:04:28 +00:00
|
|
|
selectedDate,
|
|
|
|
minDate,
|
|
|
|
maxDate
|
2023-02-05 10:45:28 +00:00
|
|
|
) => {
|
|
|
|
const onClick = (year) =>
|
|
|
|
onDateClick(year, setObservedDate, setSelectedScene);
|
|
|
|
|
2023-02-02 13:24:31 +00:00
|
|
|
const yearElements = years.map((year) => (
|
2023-02-06 15:04:28 +00:00
|
|
|
<SecondaryDateItem
|
|
|
|
big
|
|
|
|
key={year}
|
|
|
|
onClick={() => onClick(year)}
|
|
|
|
disabled={
|
|
|
|
moment(year.toString()).endOf("year").endOf("month") < minDate ||
|
|
|
|
moment(year.toString()) > maxDate
|
|
|
|
}
|
|
|
|
>
|
2023-02-02 13:24:31 +00:00
|
|
|
{year}
|
|
|
|
</SecondaryDateItem>
|
|
|
|
));
|
|
|
|
|
|
|
|
for (let i = 1; i < 11; i++) {
|
|
|
|
yearElements[i] = (
|
2023-02-06 15:04:28 +00:00
|
|
|
<DateItem
|
|
|
|
big
|
|
|
|
key={years[i]}
|
|
|
|
onClick={() => onClick(years[i])}
|
|
|
|
disabled={
|
|
|
|
moment(years[i].toString()).endOf("year").endOf("month") < minDate ||
|
|
|
|
moment(years[i].toString()) > maxDate
|
|
|
|
}
|
|
|
|
>
|
2023-02-02 13:24:31 +00:00
|
|
|
{years[i]}
|
|
|
|
</DateItem>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
const currentYearIndex = years.indexOf(moment().year());
|
2023-03-07 11:19:16 +00:00
|
|
|
const selectedYearIndex = years.indexOf(moment(selectedDate).year());
|
2023-02-05 10:45:28 +00:00
|
|
|
if (selectedYearIndex !== -1) {
|
|
|
|
yearElements[selectedYearIndex] = (
|
|
|
|
<DateItem
|
|
|
|
big
|
|
|
|
focused
|
|
|
|
key={years[selectedYearIndex]}
|
|
|
|
onClick={() => onClick(years[selectedYearIndex])}
|
2023-02-06 15:04:28 +00:00
|
|
|
disabled={
|
|
|
|
moment(years[selectedYearIndex].toString())
|
|
|
|
.endOf("year")
|
|
|
|
.endOf("month") < minDate ||
|
|
|
|
moment(years[selectedYearIndex].toString()) > maxDate
|
|
|
|
}
|
2023-02-05 10:45:28 +00:00
|
|
|
>
|
|
|
|
{years[selectedYearIndex]}
|
|
|
|
</DateItem>
|
|
|
|
);
|
|
|
|
}
|
2023-02-02 13:24:31 +00:00
|
|
|
if (currentYearIndex !== -1) {
|
|
|
|
yearElements[currentYearIndex] = (
|
|
|
|
<CurrentDateItem
|
|
|
|
big
|
|
|
|
key={years[currentYearIndex]}
|
2023-02-05 10:45:28 +00:00
|
|
|
onClick={() => onClick(years[currentYearIndex])}
|
2023-02-06 15:04:28 +00:00
|
|
|
disabled={
|
|
|
|
moment(years[currentYearIndex].toString())
|
|
|
|
.endOf("year")
|
|
|
|
.endOf("month") < minDate ||
|
|
|
|
moment(years[currentYearIndex].toString()) > maxDate
|
|
|
|
}
|
2023-02-02 13:24:31 +00:00
|
|
|
>
|
|
|
|
{years[currentYearIndex]}
|
|
|
|
</CurrentDateItem>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
return yearElements;
|
|
|
|
};
|