import { Box, Container, MenuItem, Select, Stack, TextField, ToggleButton, ToggleButtonGroup, } from '@mui/material'; import AccessTimeIcon from '@mui/icons-material/AccessTime'; import Button from '@/components/Button'; import PageHeader from '@/components/PageHeader'; import { timestampPageStyles, ZONES } from '@/config/pageTheme'; import LiveClock from './LiveClock'; import ResultView from './ResultView'; import { useTimestampConverter } from './useTimestampConverter'; import { useTranslation } from 'react-i18next'; export default function Index() { const { t } = useTranslation(['timestamp']); const { mode, tsInput, dtInput, unit, zone, result, error, setMode, setInput, setUnit, setZone, handleUseNow, convert, } = useTimestampConverter(); return ( {/* Header */} } /> {/* Live Clock Card */} {/* Mode Switcher */} newMode && setMode(newMode)} sx={timestampPageStyles.MODE_SWITCHER} > {t('timestamp:tsToDate')} {t('timestamp:dateToTs')} {/* Input Area */} setInput(e.target.value)} error={!!error} helperText={error} fullWidth sx={timestampPageStyles.INPUT_STYLE} /> {/* 单位选择按钮组 */} {(['ms', 's'] as const).map((u) => ( setUnit(u)} sx={timestampPageStyles.UNIT_SWITCHER_ITEM(unit === u)} > {u === 'ms' ? t('timestamp:unitMs') : t('timestamp:unitS')} ))} {/* Main Action */} {/* Result View */} ); }