import { useQrState } from '../store/qrContext'; import { MODE_LABELS, type HistoryEntry } from '../types'; import { persistHistory } from '../hooks/useQrEncode'; export default function HistoryList() { const { state, dispatch } = useQrState(); const handleClick = (entry: HistoryEntry) => { dispatch({ type: 'SET_MODE', payload: entry.mode }); // 优先使用存储的 formData 恢复表单,否则回退到纯文本 if (entry.formData) { dispatch({ type: 'SET_FORM_DATA', payload: entry.formData }); } else { dispatch({ type: 'SET_FORM_DATA', payload: { text: entry.content } }); } }; const handleDelete = (e: React.MouseEvent, id: string) => { e.stopPropagation(); const updated = state.history.filter((h) => h.id !== id); dispatch({ type: 'SET_HISTORY', payload: updated }); persistHistory(updated); }; const handleClear = () => { dispatch({ type: 'SET_HISTORY', payload: [] }); persistHistory([]); }; const formatTime = (ts: number) => { const d = new Date(ts); return `${d.getHours().toString().padStart(2, '0')}:${d.getMinutes().toString().padStart(2, '0')}`; }; return (
暂无记录
)} {state.history.map((entry) => (