+
{ e.stopPropagation?.(); onOpenCardDialog(original); } : undefined}
+ onKeyDown={onOpenCardDialog ? (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onOpenCardDialog(original); } } : undefined}
+ style={onOpenCardDialog ? { cursor: 'pointer' } : undefined}
+ title={onOpenCardDialog ? '查看基金详情' : (original.isUpdated ? '今日净值已更新' : undefined)}
+ >
,
+ cell: (info) => (
+ setCardDialogRow(row) : undefined}
+ />
+ ),
meta: {
align: 'left',
cellClassName: 'name-cell',
@@ -732,7 +767,7 @@ export default function PcFundTable({
},
},
],
- [currentTab, favorites, refreshing, sortBy, showFullFundName],
+ [currentTab, favorites, refreshing, sortBy, showFullFundName, getFundCardProps],
);
const table = useReactTable({
@@ -997,6 +1032,40 @@ export default function PcFundTable({
showFullFundName={showFullFundName}
onToggleShowFullFundName={handleToggleShowFullFundName}
/>
+
);
}
diff --git a/app/page.jsx b/app/page.jsx
index d1dbea6..f6fc753 100644
--- a/app/page.jsx
+++ b/app/page.jsx
@@ -319,6 +319,7 @@ export default function HomePage() {
const tabsRef = useRef(null);
const [fundDeleteConfirm, setFundDeleteConfirm] = useState(null); // { code, name }
const fundDetailDrawerCloseRef = useRef(null); // 由 MobileFundTable 注入,用于确认删除时关闭基金详情 Drawer
+ const fundDetailDialogCloseRef = useRef(null); // 由 PcFundTable 注入,用于确认删除时关闭基金详情 Dialog
const todayStr = formatDate();
@@ -2445,6 +2446,8 @@ export default function HomePage() {
if (hasHolding) {
setFundDeleteConfirm({ code: fund.code, name: fund.name });
} else {
+ fundDetailDrawerCloseRef.current?.();
+ fundDetailDialogCloseRef.current?.();
removeFund(fund.code);
}
};
@@ -4021,6 +4024,39 @@ export default function HomePage() {
setPercentModes(prev => ({ ...prev, [row.code]: !prev[row.code] }));
}}
onCustomSettingsChange={triggerCustomSettingsSync}
+ closeDialogRef={fundDetailDialogCloseRef}
+ blockDialogClose={!!fundDeleteConfirm}
+ getFundCardProps={(row) => {
+ const fund = row?.rawFund || (row ? { code: row.code, name: row.fundName } : null);
+ if (!fund) return {};
+ return {
+ fund,
+ todayStr,
+ currentTab,
+ favorites,
+ dcaPlans,
+ holdings,
+ percentModes,
+ valuationSeries,
+ collapsedCodes,
+ collapsedTrends,
+ transactions,
+ theme,
+ isTradingDay,
+ refreshing,
+ getHoldingProfit,
+ onRemoveFromGroup: removeFundFromCurrentGroup,
+ onToggleFavorite: toggleFavorite,
+ onRemoveFund: requestRemoveFund,
+ onHoldingClick: (f) => setHoldingModal({ open: true, fund: f }),
+ onActionClick: (f) => setActionModal({ open: true, fund: f }),
+ onPercentModeToggle: (code) =>
+ setPercentModes((prev) => ({ ...prev, [code]: !prev[code] })),
+ onToggleCollapse: toggleCollapse,
+ onToggleTrendCollapse: toggleTrendCollapse,
+ layoutMode: 'drawer',
+ };
+ }}
/>
@@ -4156,6 +4192,7 @@ export default function HomePage() {
confirmText="确定删除"
onConfirm={() => {
fundDetailDrawerCloseRef.current?.();
+ fundDetailDialogCloseRef.current?.();
removeFund(fundDeleteConfirm.code);
setFundDeleteConfirm(null);
}}