mobile download

This commit is contained in:
Macbook
2026-05-28 14:44:19 +09:00
parent e2816b037f
commit 3503ef33f5
152 changed files with 11021 additions and 687 deletions
@@ -27,8 +27,7 @@ import {
type TradeAlertSoundId,
} from '../utils/tradeAlertSound';
const STORAGE_KEY = 'gc_trade_notify_read_v1';
const HIDDEN_STORAGE_KEY = 'gc_trade_notify_hidden_v1';
import { getUiPreferences, patchUiPreferences } from '../utils/uiPreferencesDb';
const MAX_HISTORY = 300;
/** 팝업 대기열 최대 건수 (페이지 슬라이딩) */
const MAX_TOAST_QUEUE = 50;
@@ -94,35 +93,21 @@ function dtoToItem(dto: TradeSignalDto, readIds: Set<string>): TradeNotification
}
function loadReadIds(): Set<string> {
try {
const raw = localStorage.getItem(STORAGE_KEY);
if (!raw) return new Set();
return new Set(JSON.parse(raw) as string[]);
} catch {
return new Set();
}
const ids = getUiPreferences().tradeNotifications?.readIds;
return new Set(ids ?? []);
}
function saveReadIds(ids: Set<string>) {
try {
localStorage.setItem(STORAGE_KEY, JSON.stringify([...ids]));
} catch { /* ignore */ }
patchUiPreferences({ tradeNotifications: { readIds: [...ids] } });
}
function loadHiddenIds(): Set<string> {
try {
const raw = localStorage.getItem(HIDDEN_STORAGE_KEY);
if (!raw) return new Set();
return new Set(JSON.parse(raw) as string[]);
} catch {
return new Set();
}
const ids = getUiPreferences().tradeNotifications?.hiddenIds;
return new Set(ids ?? []);
}
function saveHiddenIds(ids: Set<string>) {
try {
localStorage.setItem(HIDDEN_STORAGE_KEY, JSON.stringify([...ids]));
} catch { /* ignore */ }
patchUiPreferences({ tradeNotifications: { hiddenIds: [...ids] } });
}
export function useTradeNotification(): TradeNotificationContextValue {