Files
habitica/website/common/script/libs/shops-seasonal.config.js
2024-06-06 12:21:34 +02:00

49 lines
1.2 KiB
JavaScript

import upperFirst from 'lodash/upperFirst';
import {
getCurrentGalaKey,
} from '../content/constants';
import {
armor,
} from '../content/gear/sets/special';
function safeGetSet (currentEvent, year, className) {
const set = armor[`${currentEvent}${year}${className}`];
if (set) {
return set.set;
}
let checkedYear = year - 1;
while (checkedYear >= 2014) {
const oldSet = armor[`${currentEvent}${checkedYear}${className}`];
if (oldSet) {
return oldSet.set;
}
checkedYear -= 1;
}
return null;
}
function getCurrentSeasonalSets (currentEvent) {
const year = new Date().getFullYear();
return {
rogue: safeGetSet(currentEvent, year, 'Rogue'),
warrior: safeGetSet(currentEvent, year, 'Warrior'),
wizard: safeGetSet(currentEvent, year, 'Mage'),
healer: safeGetSet(currentEvent, year, 'Healer'),
};
}
export default () => {
const currentEvent = getCurrentGalaKey();
const pinnedSets = getCurrentSeasonalSets(currentEvent);
return {
currentSeason: currentEvent ? upperFirst(currentEvent) : 'Closed',
pinnedSets,
featuredSet: user => {
if (user.stats.class) {
return pinnedSets[user.stats.class];
}
return null;
},
};
};