Files
TheGame/packages/web/utils/skillHelpers.ts
δυς f5295c3242 Reading and Writing Profile Info From Ceramic (#943)
This is being merged for further testing so as to not block the progress of `develop` & not require more rebases.
2022-01-25 16:51:53 -05:00

38 lines
798 B
TypeScript

import { PlayerSkillFragmentFragment } from 'graphql/autogen/types';
export type SkillMap = {
[category: string]: CategoryOption;
};
export type SkillOption = PlayerSkillFragmentFragment & {
value: string;
label: string;
};
export type CategoryOption = {
label: string;
options: Array<SkillOption>;
};
export const parseSkills = (
skills: Array<PlayerSkillFragmentFragment>,
): Array<CategoryOption> => {
const skillsMap: SkillMap = {};
skills.forEach((skill) => {
skillsMap[skill.category] ??= {
label: skill.category,
options: [],
};
skillsMap[skill.category].options?.push({
get value() {
return this.id;
},
get label() {
return this.name;
},
...skill,
});
});
return Object.values(skillsMap);
};