fix(需求池): 修复列表换行和版本解绑状态
This commit is contained in:
29
apps/web/lib/requirement-version-link.ts
Normal file
29
apps/web/lib/requirement-version-link.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import type { Requirement } from './requirement';
|
||||
|
||||
type RequirementVersionPatch = Pick<Partial<Requirement>, 'versionId' | 'addedToVersionBy' | 'status'>;
|
||||
const VERSION_SCOPED_REQUIREMENT_STATUSES = new Set<Requirement['status']>(['planned', 'developing', 'testing', 'released']);
|
||||
|
||||
export function getRequirementVersionUnlinkPatch(
|
||||
requirement: Pick<Requirement, 'status'>,
|
||||
): RequirementVersionPatch {
|
||||
return {
|
||||
versionId: undefined,
|
||||
addedToVersionBy: undefined,
|
||||
...(VERSION_SCOPED_REQUIREMENT_STATUSES.has(requirement.status) ? { status: 'adopted' as const } : {}),
|
||||
};
|
||||
}
|
||||
|
||||
export function getRequirementVersionSelectionPatch(
|
||||
requirement: Pick<Requirement, 'status' | 'addedToVersionBy'>,
|
||||
versionId?: string,
|
||||
addedBy?: string,
|
||||
): RequirementVersionPatch {
|
||||
if (!versionId) {
|
||||
return getRequirementVersionUnlinkPatch(requirement);
|
||||
}
|
||||
|
||||
return {
|
||||
versionId,
|
||||
addedToVersionBy: addedBy || requirement.addedToVersionBy,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user