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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user