in frontend/src/components/teamsAndOrgs/orgUsageLevel.js [17:100]
export function OrganisationUsageLevel({ completedActions, orgName }) {
const [currentLevel, nextLevelThreshold] = useOrganisationLevel(completedActions);
const percent = parseInt((completedActions / nextLevelThreshold) * 100);
const yearPrediction = usePredictYearlyTasks(completedActions, new Date());
const levelPrediction = usePredictLevel(yearPrediction, 'FREE');
const currentYear = getYear(new Date());
return (
<div className="w-100 cf pb2">
<div className="cf ph2 bg-white">
<div className="w-10-l w-20-m w-100 fl">
<h1
className="relative tc w-100 dib red barlow-condensed ma0 ph4 v-mid top--1"
style={{ fontSize: '8rem' }}
>
{currentLevel.level}
</h1>
</div>
<div className="w-60-ns w-100 fl pl2-ns">
{nextLevelThreshold && (
<ProgressBar height={2} className="pt3 mt4 bg-white" secondBarValue={percent}>
<p className="f6 lh-copy ma0 white f7 fw4">
<FormattedMessage
{...messages.levelTooltip}
values={{
n: <FormattedNumber value={completedActions} />,
total: <FormattedNumber value={nextLevelThreshold} />,
percent: percent,
nextLevel: <strong>{currentLevel.level + 1}</strong>,
}}
/>
</p>
</ProgressBar>
)}
</div>
<div className="w-100 fl mt3">
{nextLevelThreshold && (
<div className="pa2 w-25-l w-50-m w-100 fl">
<div className="cf pa3 bg-white shadow-4">
<StatsCardContent
label={
<FormattedMessage {...messages.estimatedLevel} values={{ year: currentYear }} />
}
className="tc"
value={<FormattedNumber value={levelPrediction.level} />}
/>
</div>
</div>
)}
{nextLevelThreshold && (
<div className="pa2 w-25-l w-50-m w-100 fl">
<div className="cf pa3 bg-white shadow-4">
<StatsCardContent
label={
<FormattedMessage
{...messages.actionsToNextLevel}
values={{ n: currentLevel.level + 1 }}
/>
}
className="tc"
value={<FormattedNumber value={nextLevelThreshold - completedActions} />}
/>
</div>
</div>
)}
</div>
{!nextLevelThreshold && ( // message on level 5 organisations
<div className="w-100 fl pv2">
<div>
<FormattedMessage
{...messages.levelInfo}
values={{
org: <strong>{orgName}</strong>,
level: currentLevel.level,
}}
/>{' '}
<FormattedMessage {...messages.topLevelInfo} />
</div>
</div>
)}
</div>
</div>
);
}