import { Fragment } from "react";
import { useSelector } from "react-redux";
import { ga, languageColor, skeleton } from "../helpers/utils";
import { AiOutlineStar, AiOutlineFork } from 'react-icons/ai';
import config from "../config";
const Project = () => {
const loading = useSelector(state => state.loading);
const repo = useSelector(state => state.repo);
const renderSkeleton = () => {
let array = [];
for (let index = 0; index < config.github.limit; index++) {
array.push((
{skeleton({ width: 'w-32', height: 'h-8' })}
{skeleton({ width: 'w-full', height: 'h-4', className: 'mb-2' })}
{skeleton({ width: 'w-full', height: 'h-4' })}
{skeleton({ width: 'w-12', height: 'h-4' })}
{skeleton({ width: 'w-12', height: 'h-4' })}
{skeleton({ width: 'w-12', height: 'h-4' })}
))
}
return array;
}
const renderProjects = () => {
return repo.map((item, index) => (
{
try {
if (config.googleAnalytics.id) {
ga.event({
action: "Click project",
params: {
project: item.name
}
});
}
} catch (error) {
console.error(error);
}
window.open(item.html_url, '_blank')
}}
>
{item.stargazers_count}
{item.forks_count}
));
}
return (
-
{
loading ? skeleton({ width: 'w-28', height: 'h-8' }) : (
My Projects
)
}
{
loading ? skeleton({ width: 'w-10', height: 'h-5' }) : (
See All
)
}
{(loading || !repo) ? renderSkeleton() : renderProjects()}
)
}
export default Project;