25 lines
773 B
TypeScript
25 lines
773 B
TypeScript
import type { ApiBoostsStatus } from '../../../api/types';
|
|
|
|
export function getBoostProgressInfo(boostInfo: ApiBoostsStatus, freezeOnLevelUp?: boolean) {
|
|
const {
|
|
level, boosts, currentLevelBoosts, nextLevelBoosts, hasMyBoost,
|
|
} = boostInfo;
|
|
|
|
const isJustUpgraded = freezeOnLevelUp && boosts === currentLevelBoosts && hasMyBoost;
|
|
|
|
const currentLevel = isJustUpgraded ? level - 1 : level;
|
|
const hasNextLevel = Boolean(nextLevelBoosts);
|
|
|
|
const levelProgress = (!nextLevelBoosts || isJustUpgraded) ? 1
|
|
: (boosts - currentLevelBoosts) / (nextLevelBoosts - currentLevelBoosts);
|
|
const remainingBoosts = nextLevelBoosts ? nextLevelBoosts - boosts : 0;
|
|
|
|
return {
|
|
currentLevel,
|
|
hasNextLevel,
|
|
boosts,
|
|
levelProgress,
|
|
remainingBoosts,
|
|
};
|
|
}
|