11
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import type { Issue } from '../types'
|
||||
|
||||
/**
|
||||
* 计算一个 issue 是否处于"锁定"状态(其前置工单尚未完成)。
|
||||
*
|
||||
* 锁定条件(全部满足):
|
||||
* 1. `issue.prerequisite !== undefined`
|
||||
* 2. 在 `allIssues` 中能找到对应的前置工单
|
||||
* 3. 前置工单的 `column !== 'done'`
|
||||
*
|
||||
* @param issue 待检查的工单
|
||||
* @param allIssues 当前所有工单(用于查找前置工单状态)
|
||||
* @returns 锁定状态及前置工单号(用于 tooltip 文案)
|
||||
*/
|
||||
export function isIssueLocked(
|
||||
issue: Issue,
|
||||
allIssues: Issue[],
|
||||
): { locked: boolean, prerequisiteNumber?: number } {
|
||||
if (issue.prerequisite === undefined)
|
||||
return { locked: false }
|
||||
const prereq = allIssues.find(i => i.number === issue.prerequisite)
|
||||
if (!prereq)
|
||||
return { locked: false }
|
||||
return {
|
||||
locked: prereq.column !== 'done',
|
||||
prerequisiteNumber: issue.prerequisite,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user