This commit is contained in:
2026-06-23 05:02:15 +08:00
commit e6f1776d4f
264 changed files with 54215 additions and 0 deletions
+28
View File
@@ -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,
}
}