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.name}

{item.description}

{item.stargazers_count} {item.forks_count}
{item.language}
)); } 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;