mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-15 13:47:33 +01:00
* add achievements to user * add placeholder strings * add to achievements to common script * add onboarding achievements category * add notifications * more notifications * award achievements * wip notification panel * add achievements icons and copy * do not count onboarding tasks for the created task achievement * add notes * sprites, fixes and completion status and reward * add onboarding panel * add toggle * fix toggle size * fix tests * fix typo * add notification * start adding modal * fix remove button positionin, timeout, progress bar * modal + fixes * disable broken social links from level up modal * change toggle icon color on hover * add border bottom to onboarding guide panel * add collapse animation * expanded onboarding on first open * onboarding: flip toggle colors * onboarding: show progress bar all the time * onboarding: fix panel closing on click * onboarding modal: add close icon and fix padding * wip: add migration for existing users * fix titles in guide * fix achievements copy * do not award completed task achievement when direction is down * start implementing new achievements * start migrating client * remove social links from achievements modals * prevent skipping tutorial + fix achievement notification * sync fixes * start redesign achievement modal * misc fixes to achievements, polish generic achievement modal and hatched pet modal * add special badge for onboarding * fix badge condition * modals fixes * hatched pet modal: add close icon * fix badge typo * fix justin button * new scrolling behavior for dropdowns * fix strings capitalization * add common tests * add api unit tests * add date check * achievements modal polishing * typos * add toggle for achievements categories * typo * fix test * fix edit avatar modal cannot be closed * finish migration and correct launch date * fix migration * migration fixes * fix tests
32 lines
907 B
JavaScript
32 lines
907 B
JavaScript
import moment from 'moment';
|
|
|
|
const BEGIN_DATE = moment('2019-12-18');
|
|
|
|
// Only users that signed up after the BEGIN DATE should see the onboarding
|
|
export function hasActiveOnboarding (user) {
|
|
return BEGIN_DATE.isBefore(user.auth.timestamps.created);
|
|
}
|
|
|
|
export function hasCompletedOnboarding (user) {
|
|
return (
|
|
user.achievements.createdTask === true
|
|
&& user.achievements.completedTask === true
|
|
&& user.achievements.hatchedPet === true
|
|
&& user.achievements.fedPet === true
|
|
&& user.achievements.purchasedEquipment === true
|
|
);
|
|
}
|
|
|
|
export function onOnboardingComplete (user) {
|
|
// Award gold
|
|
user.stats.gp += 100;
|
|
}
|
|
|
|
// Add notification and awards (server)
|
|
export function checkOnboardingStatus (user) {
|
|
if (hasActiveOnboarding(user) && hasCompletedOnboarding(user) && user.addNotification) {
|
|
user.addNotification('ONBOARDING_COMPLETE');
|
|
onOnboardingComplete(user);
|
|
}
|
|
}
|