Skip to content

Commit

Permalink
Merge pull request #419 from mbeps/development
Browse files Browse the repository at this point in the history
Only show main skills by default when viewing materials
  • Loading branch information
mbeps authored Jul 26, 2024
2 parents 3cf47ab + c047c0e commit 80d6d90
Show file tree
Hide file tree
Showing 3 changed files with 244 additions and 287 deletions.
33 changes: 23 additions & 10 deletions components/Skills/CategorySkillDisplay.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import { useState } from "react";
import ExpandCollapseButton from "../UI/ExpandCollapseButton";
import SkillTag from "../Tags/SkillTag";
import HeadingFour from "../Text/HeadingFour";
import skillDatabaseMap from "@/database/Skills/SkillDatabaseMap";
import SkillDatabaseKeys from "@/database/Skills/SkillDatabaseKeys";

interface CategorySkillDisplayProps {
skillCategories: SkillsCategoryInterface[];
Expand Down Expand Up @@ -31,29 +33,40 @@ const CategorySkillDisplay: React.FC<CategorySkillDisplayProps> = ({
let skillCount: number = 0;
let groupCount: number = 0;

function filterSkills(skills: SkillDatabaseKeys[]): SkillDatabaseKeys[] {
return skills.filter(function (skillKey: SkillDatabaseKeys) {
return skillDatabaseMap[skillKey]?.isMainSkill;
});
}

const displayedSkills: SkillsCategoryInterface[] = showAll
? skillCategories
: skillCategories.reduce((acc: SkillsCategoryInterface[], categoryData) => {
if (skillCount < maxSkillCount && groupCount < maxGroupCount) {
const availableSlots = Math.min(
const filteredSkills: SkillDatabaseKeys[] = filterSkills(
categoryData.skills
);
const availableSlots: number = Math.min(
maxSkillCount - skillCount,
categoryData.skills.length
filteredSkills.length
);
const limitedSkills = categoryData.skills.slice(0, availableSlots);
const limitedSkills = filteredSkills.slice(0, availableSlots);

acc.push({
skillCategoryName: categoryData.skillCategoryName,
skills: limitedSkills,
});
if (limitedSkills.length > 0) {
acc.push({
skillCategoryName: categoryData.skillCategoryName,
skills: limitedSkills,
});

skillCount += availableSlots;
groupCount++;
skillCount += availableSlots;
groupCount++;
}
}
return acc;
}, []);

const totalSkillCount: number = skillCategories.reduce(
(acc, categoryData) => acc + Object.keys(categoryData.skills).length,
(acc, categoryData) => acc + categoryData.skills.length,
0
);

Expand Down
Loading

0 comments on commit 80d6d90

Please sign in to comment.