가상매매 목록 실시간 연결안됨 문제수정

This commit is contained in:
Macbook
2026-06-07 19:06:59 +09:00
parent 5928599fd0
commit b294c2be5d
5 changed files with 82 additions and 14 deletions
@@ -9,7 +9,10 @@ import {
type VirtualCardViewMode,
type VirtualSessionConfig,
} from '../../utils/virtualTradingStorage';
import type { VirtualLiveStatus } from '../../hooks/useVirtualTargetLiveStatus';
import {
resolveVirtualLiveStatusFallback,
type VirtualLiveStatus,
} from '../../hooks/useVirtualTargetLiveStatus';
import type { VirtualIndicatorSnapshot } from '../../hooks/useVirtualIndicatorSnapshots';
import type { TickerData } from '../../hooks/useMarketTicker';
import { resolveVirtualTargetStrategyId } from '../../utils/virtualTargetStrategy';
@@ -141,7 +144,12 @@ const VirtualTargetGrid: React.FC<Props> = ({
snapshot={snapshots[focusTarget.market]}
signalLoading={snapshotLoadingByMarket[focusTarget.market]}
running={session.running}
liveStatus={liveStatusByMarket[focusTarget.market] ?? (session.running ? 'connecting' : 'idle')}
liveStatus={resolveVirtualLiveStatusFallback(
focusTarget.market,
resolveVirtualTargetStrategyId(focusTarget, session.globalStrategyId),
liveStatusByMarket,
session.running,
)}
lastTickAt={lastTickAtByMarket[focusTarget.market]}
viewMode={viewMode}
onExit={() => setFocusMarket(null)}
@@ -176,7 +184,8 @@ const VirtualTargetGrid: React.FC<Props> = ({
aria-label="가상매매 종목 그리드"
>
{t => {
const strat = strategies.find(s => s.id === resolveVirtualTargetStrategyId(t, session.globalStrategyId));
const stratId = resolveVirtualTargetStrategyId(t, session.globalStrategyId);
const strat = strategies.find(s => s.id === stratId);
return (
<VirtualTargetCard
market={t.market}
@@ -188,7 +197,12 @@ const VirtualTargetGrid: React.FC<Props> = ({
snapshot={snapshots[t.market]}
signalLoading={snapshotLoadingByMarket[t.market]}
running={session.running}
liveStatus={liveStatusByMarket[t.market] ?? (session.running ? 'connecting' : 'idle')}
liveStatus={resolveVirtualLiveStatusFallback(
t.market,
stratId,
liveStatusByMarket,
session.running,
)}
lastTickAt={lastTickAtByMarket[t.market]}
viewMode={viewMode}
displayMode={resolveCardDisplayMode(t.market)}