pref: PlansPanel 和 ReviewsPanel 代码高度重复,提取公共组件

创建通用 EventPanel 组件
新建 EventPanel.tsx (~420 行) - 通用事件面板组件
  - 删除 PlansPanel.tsx (495 行 → 27 行,减少 94%)
  - 删除 ReviewsPanel.tsx (496 行 → 27 行,减少 94%)
  - 修复 CalendarPanel.tsx 中的 setActiveTab 引用
This commit is contained in:
zdl
2025-12-05 11:29:16 +08:00
parent 778e06392c
commit c245a7ad64
4 changed files with 82 additions and 553 deletions

View File

@@ -91,7 +91,6 @@ export const CalendarPanel: React.FC = () => {
allEvents,
loadAllData,
loading,
setActiveTab,
toast,
borderColor,
secondaryText,
@@ -246,13 +245,8 @@ export const CalendarPanel: React.FC = () => {
}
};
// 跳转到计划或复盘标签页
const handleViewDetails = (event: InvestmentEvent): void => {
if (event.type === 'plan') {
setActiveTab(1); // 跳转到"我的计划"标签页
} else if (event.type === 'review') {
setActiveTab(2); // 跳转到"我的复盘"标签页
}
// 查看事件详情(关闭弹窗)
const handleViewDetails = (): void => {
onClose();
};
@@ -357,7 +351,7 @@ export const CalendarPanel: React.FC = () => {
size="sm"
variant="ghost"
colorScheme="blue"
onClick={() => handleViewDetails(event)}
onClick={() => handleViewDetails()}
aria-label="查看详情"
/>
</Tooltip>