portfolio/src/components/Skills.tsx

82 lines
1.8 KiB
TypeScript
Raw Normal View History

2022-07-05 22:06:40 +02:00
import { Grid, GridCol } from "@treejs/components/Grid";
import { FC, useMemo } from "react";
import { skills } from "../constants/skills";
import MyTitle from "./MyTitle";
import { map } from "ramda";
import { ISkill } from "../types/skills";
import MySection from "./MySection";
import { GRID_SIZE } from "@treejs/components/Grid/types";
2022-07-05 22:06:40 +02:00
2022-07-07 11:50:54 +02:00
const Skills: FC = () => {
2022-07-05 22:06:40 +02:00
const renderSkills = useMemo(() => {
let i = 0;
return map((skillList: ISkill[]) => {
let z = 0;
const skills = map((skill: ISkill) => {
z++;
return (
<li className="flex mb-1" key={z}>
<svg height="10" width="10" className="mt-1.5 mr-2">
<circle
cx="5"
cy="5"
r="4"
fill={skill.level === "full" ? "#90C8AC" : "#FFE7BF"}
/>
</svg>
{skill.name}
</li>
);
})(skillList);
i++;
return (
<ol className="mt-2" key={i}>
{skills}
</ol>
);
})(skills);
}, []);
return (
2022-07-07 11:50:54 +02:00
<MySection iconName="skills">
<MyTitle left="Umím" right="Ovládat" />
<Grid cols={{ [GRID_SIZE.SM]: 4 }} className="mt-10 grid-cols-2">
<GridCol>
<b>Vývoj FE</b>
{renderSkills[0]}
</GridCol>
<GridCol>
<b>Vývoj BE</b>
{renderSkills[1]}
</GridCol>
<GridCol>
<b>Další</b>
{renderSkills[2]}
</GridCol>
<GridCol>
<b>Správa serveru</b>
{renderSkills[3]}
</GridCol>
</Grid>
2022-07-05 22:06:40 +02:00
<div className="flex mt-6 text-sm">
<div className="flex">
<svg height="10" width="10" className="mt-1.5 mr-2">
<circle cx="5" cy="5" r="4" fill="#90C8AC" />
</svg>
používám na projektech
</div>
2022-07-05 22:06:40 +02:00
<div className="flex ml-5">
<svg height="10" width="10" className="mt-1.5 mr-2">
<circle cx="5" cy="5" r="4" fill="#FFE7BF" />
</svg>
hraju si a učím se
2022-07-05 22:06:40 +02:00
</div>
</div>
</MySection>
2022-07-05 22:06:40 +02:00
);
};
2022-07-07 11:50:54 +02:00
export default Skills;