Initial commit
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import type { EmployeeAssignment } from '../types/kanban'
|
||||
|
||||
type WorkItemIdentity = {
|
||||
workItemRoleId?: string
|
||||
workItemRoleName?: string
|
||||
employeeAssignment?: EmployeeAssignment
|
||||
}
|
||||
|
||||
export function humanizeWorkItemRoleId(value?: string): string {
|
||||
const normalized = (value ?? '').trim()
|
||||
if (!normalized) return ''
|
||||
return normalized
|
||||
.replace(/[_-]+/g, ' ')
|
||||
.replace(/\b\w/g, (char) => char.toUpperCase())
|
||||
}
|
||||
|
||||
export function getWorkItemRoleLabel(identity: WorkItemIdentity): string {
|
||||
const explicit = (identity.workItemRoleName ?? '').trim()
|
||||
if (explicit) return explicit
|
||||
return humanizeWorkItemRoleId(identity.workItemRoleId)
|
||||
}
|
||||
|
||||
export function getWorkItemEmployeeLabel(identity: WorkItemIdentity): string {
|
||||
return (identity.employeeAssignment?.name ?? '').trim()
|
||||
}
|
||||
|
||||
export function getWorkItemAssignmentLabel(identity: WorkItemIdentity): string {
|
||||
const role = getWorkItemRoleLabel(identity)
|
||||
const employee = getWorkItemEmployeeLabel(identity)
|
||||
if (role && employee) return `${role} · ${employee}`
|
||||
return role || employee
|
||||
}
|
||||
Reference in New Issue
Block a user