Files
thebet365/apps/admin/src/utils/matchesListState.ts
Mars d8e08aaed0 sync(theme-3): 同步 main 最新 API/Admin 与玩家端逻辑
从 main 同步站内信手动发送、媒体库选择、列表子路由重构等 API/Admin 改动;玩家端仅合并 ADMIN_CUSTOM 富文本、消息预览与充值截图压缩逻辑,保留 theme-3 样式。
2026-06-22 14:11:47 +08:00

39 lines
939 B
TypeScript

/** 赛事列表 UI 状态(返回列表时恢复筛选与分页) */
const STORAGE_KEY = 'admin_matches_list_ui';
export type MatchesListUiState = {
page: number;
pageSize: number;
filterStatus: string;
keyword: string;
};
function defaultState(): MatchesListUiState {
return {
page: 1,
pageSize: 10,
filterStatus: '',
keyword: '',
};
}
export function readMatchesListUiState(): MatchesListUiState | null {
try {
const raw = sessionStorage.getItem(STORAGE_KEY);
if (!raw) return null;
return JSON.parse(raw) as MatchesListUiState;
} catch {
return null;
}
}
export function writeMatchesListUiState(state: MatchesListUiState) {
sessionStorage.setItem(STORAGE_KEY, JSON.stringify(state));
}
export function patchMatchesListUiState(patch: Partial<MatchesListUiState>) {
const base = readMatchesListUiState() ?? defaultState();
writeMatchesListUiState({ ...base, ...patch });
}