import BodyMagicAwards from 'common/src/app/data/enum/BodyMagicAwards';
/**
* Retrieves asset data
* @param awardId
*/
const getAssetData = awardId => awardDataMap[awardId] || null;
export default getAssetData;
/**
* Type of awards, also used for collections
* @type {{NORMAL: number, WEIGHT: number}}
*/
export const AwardType = {
NORMAL: 0,
WEIGHT: 1,
SLIMMER: 2,
BODY_MAGIC: 3,
};
export const AwardTypeString = {
0: 'normal',
1: 'weight',
2: 'slimmer',
3: 'body_magic',
};
/**
* Award display type determines which info to render in award component
* @type {{IMAGE: string, LABEL: string, FULL_CONTENT: string}}
*/
export const AwardDisplayType = {
IMAGE: 'image-only',
FULL_CONTENT: 'full-content',
};
/**
* Constant name is mapped to backend enum value
*/
export const AwardMap = {
HELLO: 0,
PROFILE_COMPLETED: 1,
FIRST_POST: 2,
FABULOUS: 3,
LIFELINE: 4,
CLUB: 5,
SLIMMER_OF_THE_WEEK: 6,
SLIMMER_OF_THE_MONTH: 7,
TARGET: 8,
FOOD_DUDE: 9,
GRADUATE: 10,
BRONZE: 11,
SILVER: 12,
GOLD: 13,
PLATINUM: 14,
HERO: 15,
NAVIGATION_KNOW_HOW: 16,
LOST_10_PERCENT: 21,
WEIGHT_AWARD: 255,
HALL_OF_FAME_SLIMMER_OF_THE_WEEK: 107,
HALL_OF_FAME_SLIMMER_OF_THE_MONTH: 108,
HALL_OF_FAME_NEW_SLIMMER_OF_THE_WEEK: 109,
GROUP_SLIMMER_OF_THE_WEEK: 110,
GROUP_SLIMMER_OF_THE_MONTH: 111,
BODY_MAGIC_AWARD_PLACEHOLDER: 112,
};
// Map body magic awards to the community equivilent
export const BodyMagicGoalTypeToAwardMap = {
[BodyMagicAwards.BRONZE]: AwardMap.BRONZE,
[BodyMagicAwards.SILVER]: AwardMap.SILVER,
[BodyMagicAwards.GOLD]: AwardMap.GOLD,
[BodyMagicAwards.PLATINUM]: AwardMap.PLATINUM,
};
/**
* Award data mapping
*
* if AwardType.NORMAL, a locale reference (plus locale entry in the award component) is needed
* if AwardType.WEIGHT a locale is optional, otherwise will display default message
*/
const awardDataMap = {
[AwardMap.HELLO]: {
locale: 'hello',
type: AwardType.NORMAL,
svgSrc: './short-logo.svg',
},
[AwardMap.PROFILE_COMPLETED]: {
locale: 'profileCompleted',
type: AwardType.NORMAL,
svgSrc: './basics-completed.svg',
},
[AwardMap.FIRST_POST]: {
locale: 'firstPost',
type: AwardType.NORMAL,
svgSrc: './short-logo.svg',
},
[AwardMap.FABULOUS]: {
locale: 'fabulous',
type: AwardType.NORMAL,
svgSrc: './short-logo.svg',
},
[AwardMap.LIFELINE]: {
locale: 'lifeline',
type: AwardType.NORMAL,
svgSrc: './short-logo.svg',
},
[AwardMap.CLUB]: {
locale: 'club',
type: AwardType.NORMAL,
svgSrc: './short-logo.svg',
},
[AwardMap.SLIMMER_OF_THE_WEEK]: {
locale: 'slimmerOfTheWeek',
type: AwardType.NORMAL,
svgSrc: './slimmer-of-the-week.svg',
},
[AwardMap.SLIMMER_OF_THE_MONTH]: {
locale: 'slimmerOfTheMonth',
type: AwardType.NORMAL,
svgSrc: './slimmer-of-the-month.svg',
},
[AwardMap.LOST_10_PERCENT]: {
locale: 'lost_10Percent',
type: AwardType.NORMAL,
svgSrc: './club-10.svg',
},
[AwardMap.TARGET]: {
locale: 'target',
type: AwardType.NORMAL,
svgSrc: './target.svg',
},
[AwardMap.FOOD_DUDE]: {
locale: 'foodDude',
type: AwardType.NORMAL,
svgSrc: './short-logo.svg',
},
[AwardMap.GRADUATE]: {
locale: 'graduate',
type: AwardType.NORMAL,
svgSrc: './short-logo.svg',
},
[AwardMap.BRONZE]: {
locale: 'bronze',
type: AwardType.NORMAL,
svgSrc: './body-magic-award-bronze-uk.svg',
},
[AwardMap.SILVER]: {
locale: 'silver',
type: AwardType.NORMAL,
svgSrc: './body-magic-award-silver-uk.svg',
},
[AwardMap.GOLD]: {
locale: 'gold',
type: AwardType.NORMAL,
svgSrc: './body-magic-award-gold-uk.svg',
},
[AwardMap.PLATINUM]: {
locale: 'platinum',
type: AwardType.NORMAL,
svgSrc: './body-magic-award-platinum-uk.svg',
},
[AwardMap.BODY_MAGIC_AWARD_PLACEHOLDER]: {
locale: 'bodyMagicAwardPlaceholder',
type: AwardType.NORMAL,
svgSrc: './body-magic-start-award.svg',
},
[AwardMap.HERO]: {
locale: 'hero',
type: AwardType.NORMAL,
svgSrc: './short-logo.svg',
},
[AwardMap.WEIGHT_AWARD]: {
type: AwardType.WEIGHT,
},
[AwardMap.HALL_OF_FAME_SLIMMER_OF_THE_WEEK]: {
locale: 'slimmerOfTheWeek',
type: AwardType.SLIMMER,
color: 3,
svgSrc: './slimmerOfTheWeek.svg',
},
[AwardMap.HALL_OF_FAME_SLIMMER_OF_THE_MONTH]: {
locale: 'slimmerOfTheMonth',
type: AwardType.SLIMMER,
color: 4,
svgSrc: './slimmerOfTheMonth.svg',
},
[AwardMap.GROUP_SLIMMER_OF_THE_WEEK]: {
locale: 'slimmerOfTheWeek',
type: AwardType.NORMAL,
svgSrc: './slimmer-week.svg',
},
[AwardMap.GROUP_SLIMMER_OF_THE_MONTH]: {
locale: 'slimmerOfTheMonth',
type: AwardType.NORMAL,
svgSrc: './slimmer-month.svg',
},
[AwardMap.HALL_OF_FAME_NEW_SLIMMER_OF_THE_WEEK]: {
locale: 'fabulous',
type: AwardType.SLIMMER,
color: 1,
svgSrc: './fabulous.svg',
},
[AwardMap.NAVIGATION_KNOW_HOW]: {
locale: 'navigationKnowHow',
type: AwardType.NORMAL,
svgSrc: './navigation-know-how.svg',
},
};
/**
* These collections are used to drive which awards are grouped together on the members profile screen
*/
export const awardCollection = {
[AwardType.WEIGHT]: [AwardMap.WEIGHT_AWARD, AwardMap.LOST_10_PERCENT, AwardMap.TARGET],
[AwardType.NORMAL]: [
AwardMap.HELLO,
AwardMap.PROFILE_COMPLETED,
AwardMap.FIRST_POST,
AwardMap.FABULOUS,
AwardMap.LIFELINE,
AwardMap.CLUB,
AwardMap.GROUP_SLIMMER_OF_THE_WEEK,
AwardMap.GROUP_SLIMMER_OF_THE_MONTH,
AwardMap.FOOD_DUDE,
AwardMap.GRADUATE,
AwardMap.HERO,
AwardMap.NAVIGATION_KNOW_HOW,
AwardMap.HALL_OF_FAME_SLIMMER_OF_THE_WEEK,
AwardMap.HALL_OF_FAME_SLIMMER_OF_THE_MONTH,
AwardMap.HALL_OF_FAME_NEW_SLIMMER_OF_THE_WEEK,
],
[AwardType.BODY_MAGIC]: [AwardMap.BRONZE, AwardMap.SILVER, AwardMap.GOLD, AwardMap.PLATINUM],
};
export const GroupMonthAwards = {
NONE: 1,
THIS_MONTH: 2,
LAST_MONTH: 3,
};
// The object keys the weigh-ins/weight API call requires
export const GroupMonthAwardsKeys = {
SLIMMER_OF_THE_WEEK: 'slimmerOfTheWeek',
SLIMMER_OF_THE_MONTH: 'slimmerOfTheMonth',
};