알림목록 지표없음 문제 수정

This commit is contained in:
Macbook
2026-06-07 02:39:02 +09:00
parent 63c56a11b2
commit b6b056c3b5
2 changed files with 12 additions and 4 deletions
@@ -70,14 +70,14 @@ public class LiveConditionStatusService {
return empty(market, strategyId); return empty(market, strategyId);
} }
// 데이터 수신 보장 — 평가 전 해당 종목·봉 타입 pin + 동기 warm-up // 마켓 구독 + 동기 warm-up 시작 — 현재 봉 유무에 따라 즉시 or 수집 후 평가
Set<String> timeframes = new LinkedHashSet<>(); Set<String> timeframes = new LinkedHashSet<>();
for (PendingCond p : pending) { for (PendingCond p : pending) {
String tf = LiveStrategyTimeframeService.normalize(p.timeframe()); String tf = LiveStrategyTimeframeService.normalize(p.timeframe());
timeframes.add(tf); timeframes.add(tf);
subscriptionManager.ensureBarsReadySync(market, tf, 60); subscriptionManager.ensureMarketPinned(market, tf);
} }
subscriptionManager.ensureBarsReadySync(market, "1m", 60); subscriptionManager.ensureMarketPinned(market, "1m");
List<LiveConditionRowDto> rows = new ArrayList<>(); List<LiveConditionRowDto> rows = new ArrayList<>();
int met = 0; int met = 0;
@@ -40,7 +40,14 @@ export function useTradeNotificationSignalSnapshot(
} }
setSnapshot(snap ?? undefined); setSnapshot(snap ?? undefined);
// strategy 가 아직 로드되지 않았고 데이터도 없으면 loading 유지:
// strategy 가 로드되면 refresh 가 갱신되어 재시도하며, 그때 조건이 표시된다.
if (!snap && strategy === undefined) {
setLoading(true);
} else {
setLoading(false); setLoading(false);
}
}, [market, strategyId, strategy, enabled]); }, [market, strategyId, strategy, enabled]);
useEffect(() => { useEffect(() => {
@@ -51,6 +58,7 @@ export function useTradeNotificationSignalSnapshot(
return; return;
} }
emptyRetryRef.current = 0; emptyRetryRef.current = 0;
setLoading(true); // 활성화 즉시 로딩 표시
void refresh(); void refresh();
const id = window.setInterval(() => void refresh(), pollMs); const id = window.setInterval(() => void refresh(), pollMs);
return () => { return () => {