전략편집기 템플릿 삭제 기능 추가

This commit is contained in:
Macbook
2026-06-12 10:29:42 +09:00
parent 429a80523e
commit 981f09cf29
5 changed files with 240 additions and 74 deletions
@@ -189,6 +189,7 @@ export function listImportItemToStrategyDto(item: StrategyListExportItem, id: nu
description: item.description,
buyCondition: item.buyCondition ?? null,
sellCondition: item.sellCondition ?? null,
flowLayout: item.flowLayout,
enabled: item.enabled ?? true,
createdAt: now,
updatedAt: now,
+6
View File
@@ -24,6 +24,12 @@ export type CompositeStrategyTemplate = {
export type StrategyTemplateDef = SimpleStrategyTemplate | CompositeStrategyTemplate;
/** 내장 템플릿 숨김·복원용 안정 ID */
export function getBuiltinTemplateId(tmpl: StrategyTemplateDef): string {
const slug = tmpl.label.trim().replace(/\s+/g, '_');
return `builtin:${tmpl.signal}:${slug}`;
}
function condition(
indicatorType: string,
conditionType: string,
@@ -64,3 +64,17 @@ export function deleteUserStrategyTemplate(id: string): UserStrategyTemplate[] {
saveUserStrategyTemplates(templates);
return templates;
}
export function loadHiddenBuiltinTemplateIds(): string[] {
const raw = getUiPreferences().strategyEditor?.hiddenBuiltinTemplateIds;
if (!Array.isArray(raw)) return [];
return raw.filter((id): id is string => typeof id === 'string' && id.length > 0);
}
export function hideBuiltinTemplate(id: string): string[] {
const hidden = loadHiddenBuiltinTemplateIds();
if (hidden.includes(id)) return hidden;
const next = [...hidden, id];
patchUiPreferences({ strategyEditor: { hiddenBuiltinTemplateIds: next } });
return next;
}