| 
									
										
										
										
											2025-03-06 16:24:03 +08:00
										 |  |  | import dayjs from './utils/dayjs' | 
					
						
							| 
									
										
										
										
											2025-02-19 10:56:18 +08:00
										 |  |  | import { Period } from './types' | 
					
						
							|  |  |  | import { useTranslation } from 'react-i18next' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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}`)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   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}`)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   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, | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |