blob: 241634edf2b7ff86b28b23ddb4ef05088477cf52 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import { ListItem, Row, Select } from '@umami/react-zen';
import { useLocale } from '@/components/hooks';
import { formatDate } from '@/lib/date';
export function MonthSelect({ date = new Date(), onChange }) {
const { locale } = useLocale();
const month = date.getMonth();
const year = date.getFullYear();
const currentYear = new Date().getFullYear();
const months = [...Array(12)].map((_, i) => i);
const years = [...Array(10)].map((_, i) => currentYear - i);
const handleMonthChange = (month: number) => {
const d = new Date(date);
d.setMonth(month);
onChange?.(d);
};
const handleYearChange = (year: number) => {
const d = new Date(date);
d.setFullYear(year);
onChange?.(d);
};
return (
<Row gap>
<Select value={month} onChange={handleMonthChange}>
{months.map(m => {
return (
<ListItem id={m} key={m}>
{formatDate(new Date(year, m, 1), 'MMMM', locale)}
</ListItem>
);
})}
</Select>
<Select value={year} onChange={handleYearChange}>
{years.map(y => {
return (
<ListItem id={y} key={y}>
{y}
</ListItem>
);
})}
</Select>
</Row>
);
}
|