Kairo-Jinkendo/frontend/src/utils/portfolioRank.js

25 lines
603 B
JavaScript
Raw Normal View History

/**
* Portfolio-Rang (AP1.8a) — niedrigerer Rank = höhere Aufmerksamkeit.
*/
/**
* @template {{ id: string, portfolio_rank?: number | null }} T
* @param {T[]} items
*/
export function sortByPortfolioRank(items) {
return [...items].sort(
(a, b) =>
(a.portfolio_rank ?? Number.MAX_SAFE_INTEGER) -
(b.portfolio_rank ?? Number.MAX_SAFE_INTEGER) ||
String(a.id).localeCompare(String(b.id)),
)
}
/**
* @param {number | null | undefined} rank
*/
export function formatPortfolioRank(rank) {
if (rank == null || Number.isNaN(rank)) return null
return `#${rank + 1}`
}