推进 INI 面板 shell control-page contract helper
This commit is contained in:
@@ -61,6 +61,23 @@ export function createIniPanelLauncherLinkViewModel(entries = getVisibleIniPanel
|
||||
}));
|
||||
}
|
||||
|
||||
export function createIniPanelShellControlPageContract() {
|
||||
const readonlyStatusApiManifest = createMachineSessionReadonlyStatusApiManifest();
|
||||
return {
|
||||
methodNames: [
|
||||
"createController",
|
||||
"loadSessionState",
|
||||
"readStatus",
|
||||
"refresh",
|
||||
"renderView",
|
||||
],
|
||||
readonlyStatusApiManifest,
|
||||
readonlyStatusApiMethodNames: Object.keys(readonlyStatusApiManifest.methods),
|
||||
readonlyStatusApiStatusFields: readonlyStatusApiManifest.statusFields,
|
||||
relatedControlPageMethods: readonlyStatusApiManifest.relatedControlPageMethods,
|
||||
};
|
||||
}
|
||||
|
||||
export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries()) {
|
||||
return {
|
||||
pages: entries.map(({ id, href, title }) => ({
|
||||
@@ -70,6 +87,7 @@ export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries
|
||||
})),
|
||||
launcherLinks: createIniPanelLauncherLinkViewModel(entries),
|
||||
controlPage: {
|
||||
contract: createIniPanelShellControlPageContract(),
|
||||
createController: createMachineSessionControlPageController,
|
||||
loadSessionState: loadMachineSessionForControlPageWorkflow,
|
||||
readonlyStatusApiManifest: createMachineSessionReadonlyStatusApiManifest(),
|
||||
|
||||
Reference in New Issue
Block a user