perf(DynamicTracking): 子面板支持延迟加载和骨架屏
- ForecastPanel/NewsPanel 接收 isActive 和 activationKey 控制数据加载 - 使用骨架屏替代 Spinner 加载状态 - Tab 切换时自动刷新数据 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
// 优化:子组件懒加载,骨架屏即时反馈
|
||||
|
||||
import React, { useState, useEffect, useMemo, useCallback, memo, lazy } from 'react';
|
||||
import { Box } from '@chakra-ui/react';
|
||||
import { Card, CardBody } from '@chakra-ui/react';
|
||||
import { FaNewspaper, FaBullhorn, FaCalendarAlt, FaChartBar } from 'react-icons/fa';
|
||||
|
||||
import SubTabContainer from '@components/SubTabContainer';
|
||||
@@ -92,17 +92,19 @@ const DynamicTracking = memo(({ stockCode: propStockCode }) => {
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Box>
|
||||
<SubTabContainer
|
||||
tabs={TRACKING_TABS}
|
||||
componentProps={componentProps}
|
||||
themePreset="blackGold"
|
||||
index={activeTab}
|
||||
onTabChange={handleTabChange}
|
||||
isLazy
|
||||
size="sm"
|
||||
/>
|
||||
</Box>
|
||||
<Card bg="gray.900" shadow="md" border="1px solid" borderColor="rgba(212, 175, 55, 0.3)">
|
||||
<CardBody p={0}>
|
||||
<SubTabContainer
|
||||
tabs={TRACKING_TABS}
|
||||
componentProps={componentProps}
|
||||
themePreset="blackGold"
|
||||
index={activeTab}
|
||||
onTabChange={handleTabChange}
|
||||
isLazy
|
||||
size="sm"
|
||||
/>
|
||||
</CardBody>
|
||||
</Card>
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user