Gateway와 게임 공통 메뉴를 영속 JSON에서 읽고 다음 페이지 로드에 반영한다. 운영 PHP의 항목과 순서, desktop/mobile geometry 및 정보 동작을 보존하고 검증·복구 문서를 추가한다.
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
export type RuntimeNavigationAction = 'show-version';
|
|
export type RuntimeNavigationVisibility = 'always' | 'npc-enabled';
|
|
export type RuntimeNavigationHighlight = 'nation-betting' | 'vote';
|
|
|
|
export interface RuntimeNavigationLink {
|
|
kind: 'link';
|
|
id: string;
|
|
label: string;
|
|
to?: string;
|
|
href?: string;
|
|
action?: RuntimeNavigationAction;
|
|
newTab?: boolean;
|
|
showWhen?: RuntimeNavigationVisibility;
|
|
highlightWhen?: RuntimeNavigationHighlight;
|
|
}
|
|
|
|
export interface RuntimeNavigationDivider {
|
|
kind: 'divider';
|
|
id: string;
|
|
}
|
|
|
|
export interface RuntimeNavigationGroup {
|
|
kind: 'group';
|
|
id: string;
|
|
label: string;
|
|
items: Array<RuntimeNavigationLink | RuntimeNavigationDivider>;
|
|
}
|
|
|
|
export interface RuntimeNavigationSplit {
|
|
kind: 'split';
|
|
id: string;
|
|
main: RuntimeNavigationLink;
|
|
items: Array<RuntimeNavigationLink | RuntimeNavigationDivider>;
|
|
}
|
|
|
|
export type RuntimeNavigationEntry = RuntimeNavigationLink | RuntimeNavigationGroup | RuntimeNavigationSplit;
|
|
|
|
export interface GatewayNavigationLink {
|
|
id: string;
|
|
label: string;
|
|
href: string;
|
|
newTab?: boolean;
|
|
}
|
|
|
|
export interface RuntimeNavigationConfig {
|
|
version: 1;
|
|
gateway: {
|
|
brand: {
|
|
label: string;
|
|
to: string;
|
|
};
|
|
items: GatewayNavigationLink[];
|
|
};
|
|
game: {
|
|
items: RuntimeNavigationEntry[];
|
|
};
|
|
}
|