feat(menu): PHP 기준 공통 메뉴를 런타임 설정으로 이관
Gateway와 게임 공통 메뉴를 영속 JSON에서 읽고 다음 페이지 로드에 반영한다. 운영 PHP의 항목과 순서, desktop/mobile geometry 및 정보 동작을 보존하고 검증·복구 문서를 추가한다.
This commit is contained in:
@@ -21,6 +21,10 @@
|
||||
"./auth/gameSessionTransfer": {
|
||||
"types": "./dist/auth/gameSessionTransfer.d.ts",
|
||||
"default": "./dist/auth/gameSessionTransfer.js"
|
||||
},
|
||||
"./navigation/menuConfig": {
|
||||
"types": "./dist/navigation/menuConfig.d.ts",
|
||||
"default": "./dist/navigation/menuConfig.js"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
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[];
|
||||
};
|
||||
}
|
||||
@@ -6,6 +6,7 @@ export default defineConfig({
|
||||
'auth/gameToken': 'src/auth/gameToken.ts',
|
||||
'auth/gameSessionTransfer': 'src/auth/gameSessionTransfer.ts',
|
||||
'auth/sanctions': 'src/auth/sanctions.ts',
|
||||
'navigation/menuConfig': 'src/navigation/menuConfig.ts',
|
||||
},
|
||||
format: 'es',
|
||||
outDir: 'dist',
|
||||
|
||||
Reference in New Issue
Block a user