Files
dify/web/app/components/base/date-and-time-picker/hooks.ts
Stephen Zhou 1e3823e605 chore: fix type check for i18n (#30058)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
2025-12-24 16:31:16 +08:00

50 lines
1.2 KiB
TypeScript

import { useTranslation } from 'react-i18next'
import { Period } from './types'
import dayjs from './utils/dayjs'
const YEAR_RANGE = 100
export const useDaysOfWeek = () => {
const { t } = useTranslation()
const daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'].map(day => t(`time.daysInWeek.${day}` as any) as string)
return daysOfWeek
}
export const useMonths = () => {
const { t } = useTranslation()
const months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December',
].map(month => t(`time.months.${month}` as any) as string)
return months
}
export const useYearOptions = () => {
const yearOptions = Array.from({ length: 200 }, (_, i) => dayjs().year() - YEAR_RANGE / 2 + i)
return yearOptions
}
export const useTimeOptions = () => {
const hourOptions = Array.from({ length: 12 }, (_, i) => (i + 1).toString().padStart(2, '0'))
const minuteOptions = Array.from({ length: 60 }, (_, i) => i.toString().padStart(2, '0'))
const periodOptions = [Period.AM, Period.PM]
return {
hourOptions,
minuteOptions,
periodOptions,
}
}