dify/web/app/components/base/date-and-time-picker/year-and-month-picker/options.tsx

56 lines
1.5 KiB
TypeScript
Raw Normal View History

2025-02-19 10:56:18 +08:00
import React, { type FC } from 'react'
import type { YearAndMonthPickerOptionsProps } from '../types'
import { useMonths, useYearOptions } from '../hooks'
import OptionListItem from '../common/option-list-item'
const Options: FC<YearAndMonthPickerOptionsProps> = ({
selectedMonth,
selectedYear,
handleMonthSelect,
handleYearSelect,
}) => {
const months = useMonths()
const yearOptions = useYearOptions()
return (
<div className='grid grid-cols-2 gap-x-1 p-2'>
{/* Month Picker */}
2025-03-19 18:27:02 +08:00
<ul className='no-scrollbar flex h-[208px] flex-col gap-y-0.5 overflow-y-auto pb-[184px]'>
2025-02-19 10:56:18 +08:00
{
months.map((month, index) => {
const isSelected = selectedMonth === index
return (
<OptionListItem
key={month}
isSelected={isSelected}
onClick={handleMonthSelect.bind(null, index)}
>
{month}
</OptionListItem>
)
})
}
</ul>
{/* Year Picker */}
2025-03-19 18:27:02 +08:00
<ul className='no-scrollbar flex h-[208px] flex-col gap-y-0.5 overflow-y-auto pb-[184px]'>
2025-02-19 10:56:18 +08:00
{
yearOptions.map((year) => {
const isSelected = selectedYear === year
return (
<OptionListItem
key={year}
isSelected={isSelected}
onClick={handleYearSelect.bind(null, year)}
>
{year}
</OptionListItem>
)
})
}
</ul>
</div>
)
}
export default React.memo(Options)