Files
Atay-Makhzan/web_src/js/features/issue.ts
T

42 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-10-29 10:20:49 +01:00
import type {Issue} from '../types.ts';
2025-01-17 16:55:02 +08:00
// the getIssueIcon/getIssueColor logic should be kept the same as "templates/shared/issueicon.tmpl"
2024-10-29 10:20:49 +01:00
export function getIssueIcon(issue: Issue) {
if (issue.pull_request) {
if (issue.state === 'open') {
2025-01-17 16:55:02 +08:00
if (issue.pull_request.draft) {
2024-10-29 10:20:49 +01:00
return 'octicon-git-pull-request-draft'; // WIP PR
}
return 'octicon-git-pull-request'; // Open PR
2025-01-17 16:55:02 +08:00
} else if (issue.pull_request.merged) {
2024-10-29 10:20:49 +01:00
return 'octicon-git-merge'; // Merged PR
}
2025-01-17 16:55:02 +08:00
return 'octicon-git-pull-request-closed'; // Closed PR
}
if (issue.state === 'open') {
2024-10-29 10:20:49 +01:00
return 'octicon-issue-opened'; // Open Issue
}
return 'octicon-issue-closed'; // Closed Issue
}
export function getIssueColor(issue: Issue) {
if (issue.pull_request) {
2025-01-17 16:55:02 +08:00
if (issue.state === 'open') {
if (issue.pull_request.draft) {
return 'grey'; // WIP PR
}
return 'green'; // Open PR
} else if (issue.pull_request.merged) {
2024-10-29 10:20:49 +01:00
return 'purple'; // Merged PR
}
2025-01-17 16:55:02 +08:00
return 'red'; // Closed PR
2024-10-29 10:20:49 +01:00
}
2025-01-17 16:55:02 +08:00
2024-10-29 10:20:49 +01:00
if (issue.state === 'open') {
return 'green'; // Open Issue
}
return 'red'; // Closed Issue
}