Files
TrulyMEM-TrueHumanMEM-local/common/src/main/ets/routermanager/PageContext.ets
root e779c16595 refactor: 工程标准化 — 组件提取、废弃API清理、console清零
- ChatPage/GraphPage/SettingsPage 拆分为独立子组件
- MainPage 接入 ImmersiveTabNavigation 玻璃拟态导航
- EntryAbility console.* 全替换为 defaultLogger
- SplashPage replaceUrl 废弃 API 迁移到 UIContext Router
- common/Index.ets 双通道导出 Logger/defaultLogger
- 删除 dead code (entry/, commonbusiness/, trulymem-core/)
- 全工程 0 console.*,BUILD SUCCESSFUL
2026-05-01 16:05:22 +08:00

57 lines
1.5 KiB
Plaintext

import { defaultLogger } from '../util/Logger';
export interface RouterParam {
routerName: string;
param?: object;
}
export interface IPageContext {
openPage(data: RouterParam, animated?: boolean): void;
popPage(animated?: boolean): void;
replacePage(data: RouterParam, animated?: boolean): void;
}
export class PageContext implements IPageContext {
private readonly pathStack: NavPathStack;
constructor() {
this.pathStack = new NavPathStack();
}
public get navPathStack(): NavPathStack {
return this.pathStack;
}
public replacePage(data: RouterParam, animated: boolean = true): void {
try {
this.pathStack.replacePath({ name: data.routerName, param: data.param }, animated);
} catch (err) {
defaultLogger.error('replacePage: ' + data.routerName + ' failed. ' + err.code + ' ' + err.message);
}
}
public openPage(data: RouterParam, animated: boolean = true): void {
try {
this.pathStack.pushPath({ name: data.routerName, param: data.param }, animated);
} catch (err) {
defaultLogger.error('openPage: ' + data.routerName + ' failed. ' + err.code + ' ' + err.message);
}
}
public popPage(animated: boolean = true): void {
try {
this.pathStack.pop(animated);
} catch (err) {
defaultLogger.error('popPage failed. ' + err.code + ' ' + err.message);
}
}
public popPageByIndex(index: number, animated: boolean = true): void {
this.pathStack.popToIndex(index, animated);
}
public clear(animated: boolean = true): void {
this.pathStack.clear(animated);
}
}