차트 설정 수정

This commit is contained in:
Macbook
2026-06-01 01:35:31 +09:00
parent 332019866a
commit f2208aab99
28 changed files with 546 additions and 333 deletions
@@ -63,10 +63,6 @@ export function useVirtualTargetRegistry() {
const remove = useCallback(async (market: string) => {
if (!addedSet.has(market) || busyMarket === market) return;
if (targets.find(t => t.market === market)?.pinned) {
window.alert('고정된 종목은 투자대상에서 삭제할 수 없습니다.');
return;
}
setBusyMarket(market);
try {
const next = await removeVirtualTarget(market);
+20 -4
View File
@@ -117,7 +117,25 @@ export function useVirtualTradingCore(options: UseVirtualTradingCoreOptions = {}
preferencesHydratedRef.current = true;
}
await Promise.all([
loadStrategies().then(s => { if (!cancelled) setStrategies(s); }).catch(() => { if (!cancelled) setStrategies([]); }),
loadStrategies().then(s => {
if (cancelled) return;
setStrategies(s);
const validIds = new Set(
s.map(x => x.id).filter((id): id is number => id != null && id > 0),
);
setSession(prev =>
prev.globalStrategyId != null && !validIds.has(prev.globalStrategyId)
? { ...prev, globalStrategyId: null }
: prev,
);
setTargets(prev =>
prev.map(t =>
t.strategyId != null && !validIds.has(t.strategyId)
? { ...t, strategyId: null }
: t,
),
);
}).catch(() => { if (!cancelled) setStrategies([]); }),
loadPaperSummary().then(s => { if (!cancelled) setSummary(s); }),
loadPaperTrades().then(t => { if (!cancelled) setTrades(t); }),
]);
@@ -249,10 +267,8 @@ export function useVirtualTradingCore(options: UseVirtualTradingCoreOptions = {}
}, [targets, virtualTargetMaxCount]);
const handleRemoveTarget = useCallback((market: string) => {
const t = targets.find(x => x.market === market);
if (t?.pinned) return;
setTargets(prev => prev.filter(x => x.market !== market));
}, [targets]);
}, []);
const handleTogglePin = useCallback((market: string) => {
setTargets(prev => {