import { Fragment } from 'react';
import { AiOutlineStar, AiOutlineFork } from 'react-icons/ai';
import PropTypes from 'prop-types';
import config from '../../ezprofile.config';
import { ga, languageColor, skeleton } from '../../helpers/utils';
const Project = ({ repo, loading }) => {
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()}
);
};
Project.propTypes = {
repo: PropTypes.array,
loading: PropTypes.bool,
};
export default Project;