알림목록 오류 수정

This commit is contained in:
Macbook
2026-06-11 00:30:19 +09:00
parent 54fdc3e77a
commit e9d83f2058
2 changed files with 25 additions and 10 deletions
@@ -9,6 +9,7 @@ import {
resolveNotificationStrategy,
normalizeStrategyId,
} from '../utils/resolveNotificationStrategy';
import { isStrategyMissingOnServer } from '../utils/strategyMissingCache';
import { hydrateStrategyDto, normalizeMarketCode } from '../utils/strategyHydrate';
import {
fetchLiveSnapshot,
@@ -61,6 +62,12 @@ export function useTradeNotificationSignalSnapshot(
emptyRetryRef.current = 0;
return;
}
// 서버에 없는 것으로 확인된 전략은 재요청하지 않음
if (isStrategyMissingOnServer(rawId)) {
setSnapshot(undefined);
setLoading(false);
return;
}
if (refreshInFlightRef.current) return;
const gen = ++genRef.current;
@@ -7,7 +7,11 @@ import {
loadStrategyForNotification,
type StrategyDto,
} from './backendApi';
import { reconcileStrategyMissingWithValidIds, unmarkStrategyMissingOnServer } from './strategyMissingCache';
import {
isStrategyMissingOnServer,
reconcileStrategyMissingWithValidIds,
unmarkStrategyMissingOnServer,
} from './strategyMissingCache';
import { coerceFiniteNumber } from './safeFormat';
import { hydrateStrategyDto, normalizeMarketCode } from './strategyHydrate';
import { extractVirtualConditions } from './virtualStrategyConditions';
@@ -77,6 +81,7 @@ export async function resolveNotificationStrategy(
if (fromList?.id != null && hasExtractableConditions(fromList)) {
return pickStrategy(fromList, normalizedId);
}
if (!isStrategyMissingOnServer(normalizedId)) {
const loaded = await loadStrategyForNotification(normalizedId);
if (loaded && extractVirtualConditions(loaded).length > 0) {
return { strategy: loaded, strategyId: normalizedId };
@@ -85,6 +90,7 @@ export async function resolveNotificationStrategy(
return { strategy: loaded, strategyId: normalizedId };
}
}
}
const name = strategyName?.trim();
if (name) {
@@ -93,12 +99,14 @@ export async function resolveNotificationStrategy(
if (hasExtractableConditions(byName)) {
return pickStrategy(byName, byName.id);
}
if (!isStrategyMissingOnServer(byName.id)) {
const loaded = await loadStrategyForNotification(byName.id);
if (loaded) {
return { strategy: loaded, strategyId: byName.id };
}
}
}
}
const normalizedMarket = market ? normalizeMarketCode(market) : null;
if (normalizedMarket) {