알림목록 오류 수정
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user