Files
ftb-project-management/apps/web/lib/workspace-v22-source.ts
2026-07-03 11:53:25 +08:00

48 lines
1.1 KiB
TypeScript

import type { Bug } from './bug';
import type { DevTask } from './dev-task';
import type { TestCase } from './test-case';
import type { V22WorkspaceData } from './v22-api';
import type { VersionPlan } from './version-plan';
export interface WorkspaceCollections {
versionPlans: VersionPlan[];
devTasks: DevTask[];
testCases: TestCase[];
bugs: Bug[];
}
export interface SelectWorkspaceCollectionsInput {
v22Loaded: boolean;
v22Failed: boolean;
v22Data: V22WorkspaceData | null;
appData: {
plans: VersionPlan[];
devTasks: DevTask[];
testCases: TestCase[];
bugs: Bug[];
};
}
export function selectWorkspaceCollections({
v22Loaded,
v22Failed,
v22Data,
appData,
}: SelectWorkspaceCollectionsInput): WorkspaceCollections {
if (v22Loaded && !v22Failed && v22Data) {
return {
versionPlans: v22Data.versionPlans,
devTasks: v22Data.devTasks,
testCases: v22Data.testCases,
bugs: v22Data.bugs,
};
}
return {
versionPlans: appData.plans,
devTasks: appData.devTasks,
testCases: appData.testCases,
bugs: appData.bugs,
};
}