/* eslint-disable react-hooks/exhaustive-deps */ 'use client'; import React, { useEffect, useState } from 'react'; interface WeekdaySelectorProps { onWeekdayChange: (weekday: string) => void; className?: string; } const weekdays = [ { value: 'Mon', label: '周一', shortLabel: '周一' }, { value: 'Tue', label: '周二', shortLabel: '周二' }, { value: 'Wed', label: '周三', shortLabel: '周三' }, { value: 'Thu', label: '周四', shortLabel: '周四' }, { value: 'Fri', label: '周五', shortLabel: '周五' }, { value: 'Sat', label: '周六', shortLabel: '周六' }, { value: 'Sun', label: '周日', shortLabel: '周日' }, ]; const WeekdaySelector: React.FC = ({ onWeekdayChange, className = '', }) => { // 获取今天的星期数,默认选中今天 const getTodayWeekday = (): string => { const today = new Date().getDay(); // getDay() 返回 0-6,0 是周日,1-6 是周一到周六 const weekdayMap = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; return weekdayMap[today]; }; const [selectedWeekday, setSelectedWeekday] = useState( getTodayWeekday() ); // 组件初始化时通知父组件默认选中的星期 useEffect(() => { onWeekdayChange(getTodayWeekday()); }, []); // 只在组件挂载时执行一次 return (
{weekdays.map((weekday) => { const isActive = selectedWeekday === weekday.value; return ( ); })}
); }; export default WeekdaySelector;