40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import type { WorkbenchModuleMeta } from './use-workbench-modules';
|
|
import { WORKBENCH_LAYOUT_VERSION, type WorkbenchLayout } from './workbench-layout-types';
|
|
|
|
export function buildDefaultLayout(modules: WorkbenchModuleMeta[]): WorkbenchLayout {
|
|
const grid = modules
|
|
.filter(m => m.defaultVisible)
|
|
.map(m => ({
|
|
i: m.key,
|
|
x: m.defaultGrid.x,
|
|
y: m.defaultGrid.y,
|
|
w: m.defaultGrid.w,
|
|
h: m.defaultGrid.h,
|
|
minW: m.defaultGrid.minW,
|
|
minH: m.defaultGrid.minH
|
|
}));
|
|
|
|
const hidden = modules.filter(m => !m.defaultVisible).map(m => m.key);
|
|
|
|
return {
|
|
version: WORKBENCH_LAYOUT_VERSION,
|
|
grid,
|
|
hidden,
|
|
// 默认快捷入口(固化用户实拍选择);已有用户的旧 settings 在 load 时优先迁移,此默认仅作用于全新用户
|
|
settings: {
|
|
shortcut: {
|
|
menuKeys: [
|
|
'product_list',
|
|
'project_list',
|
|
'ticket_my-submitted',
|
|
'personal-center_my-weekly',
|
|
'personal-center_my-monthly',
|
|
'personal-center_my-performance',
|
|
'personal-center_my-application',
|
|
'infra_rd-code'
|
|
]
|
|
}
|
|
}
|
|
};
|
|
}
|