알림목록 지표없음 문제 수정
This commit is contained in:
@@ -7,7 +7,7 @@ import type { TickerData } from '../../hooks/useMarketTicker';
|
||||
import { useLiveReceiveFlash } from '../../hooks/useLiveReceiveFlash';
|
||||
import { useTradeNotificationSignalSnapshot } from '../../hooks/useTradeNotificationSignalSnapshot';
|
||||
import type { StrategyDto } from '../../utils/backendApi';
|
||||
import { isStrategyMissingOnServer, loadStrategies, loadStrategy } from '../../utils/backendApi';
|
||||
import { resolveNotificationStrategy } from '../../utils/resolveNotificationStrategy';
|
||||
import type { TradeNotificationItem } from '../../contexts/TradeNotificationContext';
|
||||
import {
|
||||
buildSignalDetailRows,
|
||||
@@ -68,6 +68,8 @@ interface Props {
|
||||
reportLoading?: boolean;
|
||||
/** 가상 스크롤 목록에서는 div + role=listitem */
|
||||
itemTag?: 'li' | 'div';
|
||||
/** 목록 화면에서 선로드한 전략 목록 (ID·이름 fallback) */
|
||||
prefetchedStrategies?: StrategyDto[];
|
||||
}
|
||||
|
||||
const MAX_INDICATOR_CARDS = 8;
|
||||
@@ -88,6 +90,7 @@ const TradeNotificationListRow: React.FC<Props> = ({
|
||||
onReport,
|
||||
reportLoading = false,
|
||||
itemTag = 'li',
|
||||
prefetchedStrategies = [],
|
||||
}) => {
|
||||
useTradeAlertTimeFormat();
|
||||
const isBuy = item.signalType === 'BUY';
|
||||
@@ -137,17 +140,20 @@ const TradeNotificationListRow: React.FC<Props> = ({
|
||||
return;
|
||||
}
|
||||
let cancelled = false;
|
||||
void loadStrategies().then(list => {
|
||||
if (!cancelled) setStrategies(list ?? []);
|
||||
});
|
||||
if (!item.strategyId || isStrategyMissingOnServer(item.strategyId)) {
|
||||
setStrategies(prefetchedStrategies);
|
||||
if (!item.strategyId && !item.strategyName?.trim()) {
|
||||
return () => { cancelled = true; };
|
||||
}
|
||||
void loadStrategy(item.strategyId).then(s => {
|
||||
void resolveNotificationStrategy(
|
||||
item.strategyId,
|
||||
item.strategyName,
|
||||
prefetchedStrategies,
|
||||
).then(({ strategy: s, strategyId: sid }) => {
|
||||
if (!cancelled && s) setStrategy(s);
|
||||
else if (!cancelled && !s && sid == null) setStrategy(undefined);
|
||||
});
|
||||
return () => { cancelled = true; };
|
||||
}, [item.strategyId, panelActive, isListLayout]);
|
||||
}, [item.strategyId, item.strategyName, panelActive, isListLayout, prefetchedStrategies]);
|
||||
|
||||
useEffect(() => {
|
||||
setExpandedChartKey(null);
|
||||
@@ -181,7 +187,9 @@ const TradeNotificationListRow: React.FC<Props> = ({
|
||||
item.market,
|
||||
item.strategyId,
|
||||
strategy,
|
||||
item.strategyName,
|
||||
signalSnapshotEnabled,
|
||||
prefetchedStrategies,
|
||||
);
|
||||
|
||||
const [chartActivitySeq, setChartActivitySeq] = useState(0);
|
||||
|
||||
Reference in New Issue
Block a user