import React from "react" import { isMediumUsernameValid } from "../utils/validation" import { icons, skills, skillWebsites } from "../constants/skills" const Markdown = props => { const Title = props => { if (props.prefix && props.title) { return ( <> {`

${props.prefix + " " + props.title}

`}
) } return "" } const SubTitle = props => { if (props.subtitle) { return ( <> {`

${props.subtitle}

`}

) } return "" } const SectionTitle = props => { if (props.label) { return ( <> {`

${props.label}

`}
) } return "" } const DisplayWork = props => { if (props.prefix && props.project) { if (props.link) { return ( <> {`- ${props.prefix} [${props.project}](${props.link})`}

) } else { return ( <> {`- ${props.prefix} **${props.project}**`}

) } } if (props.prefix && props.link) { return ( <> {`- ${props.prefix} [${props.link}](${props.link})`}

) } return "" } const DisplaySocial = props => { if (props.username) { return ( <> {`${props.username}`}
) } return "" } const VisitorsBadge = props => { let link = "https://komarev.com/ghpvc/?username=" + props.github if (props.show) { return ( <> {`

${props.github}

`}

) } return "" } const GitHubStats = props => { let link = "https://github-readme-stats.vercel.app/api?username=" + props.github + "&show_icons=true" if (props.show) { return ( <> {`

 ${props.github}

`}

) } return "" } const isSocial = social => { return ( social.dev || social.twitter || social.codepen || social.codesandbox || social.stackoverflow || social.linkedin || social.kaggle || social.instagram || social.fb || social.dribbble || social.behance || social.medium || social.youtube || social.codechef || social.hackerrank || social.codeforces || social.leetcode || social.topcoder || social.hackerearth || social.geeks_for_geeks || social.rssurl ) } const DisplaySkills = props => { const listChosenSkills = [] skills.forEach(skill => { if (props.skills[skill]) { listChosenSkills.push( ` ${skill} ` ) } }) return listChosenSkills.length > 0 ? ( <> {`

${listChosenSkills.join(" ")}

`}

) : ( "" ) } const DisplayDynamicBlogs = props => { if (props.show) { return ( <> {`### Blogs posts`}
{``}
{``}

) } return "" } const DisplayTopLanguages = props => { let link = "https://github-readme-stats.vercel.app/api/top-langs/?username=" + props.github + "&layout=compact" if (props.show) { if (!props.showStats) { return ( <> {`

${props.github}

`}

) } return ( <> {`

${props.github}

`}

) } return "" } return (
<> </> <> <SubTitle subtitle={props.data.subtitle} /> </> <> <VisitorsBadge show={props.data.visitorsBadge} github={props.social.github} /> </> <> <DisplayWork prefix={props.prefix.currentWork} project={props.data.currentWork} link={props.link.currentWork} /> </> <> <DisplayWork prefix={props.prefix.currentLearn} project={props.data.currentLearn} /> </> <> <DisplayWork prefix={props.prefix.collaborateOn} project={props.data.collaborateOn} link={props.link.collaborateOn} /> </> <> <DisplayWork prefix={props.prefix.helpWith} project={props.data.helpWith} link={props.link.helpWith} /> </> <> <DisplayWork prefix={props.prefix.portfolio} link={props.link.portfolio} /> </> <> <DisplayWork prefix={props.prefix.blog} link={props.link.blog} /> </> <> <DisplayWork prefix={props.prefix.ama} project={props.data.ama} /> </> <> <DisplayWork prefix={props.prefix.contact} project={props.data.contact} /> </> <> <DisplayWork prefix={props.prefix.resume} link={props.link.resume} /> </> <> <DisplayWork prefix={props.prefix.funFact} project={props.data.funFact} /> </> <> <DisplayDynamicBlogs show={ (props.data.devDynamicBlogs && props.social.dev) || (props.data.rssDynamicBlogs && props.social.rssurl) || (props.data.mediumDynamicBlogs && props.social.medium && isMediumUsernameValid(props.social.medium)) } /> </> {isSocial(props.social) ? `<p align="left">` : ""} <br /> <> <SectionTitle label="Connect with me:" /> </> <> <DisplaySocial base="https://codepen.io" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codepen.svg" username={props.social.codepen} /> </> <> <DisplaySocial base="https://dev.to" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dev-dot-to.svg" username={props.social.dev} /> </> <> <DisplaySocial base="https://twitter.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/twitter.svg" username={props.social.twitter} /> </> <> <DisplaySocial base="https://linkedin.com/in" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/linkedin.svg" username={props.social.linkedin} /> </> <> <DisplaySocial base="https://stackoverflow.com/users" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/stackoverflow.svg" username={props.social.stackoverflow} /> </> <> <DisplaySocial base="https://codesandbox.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codesandbox.svg" username={props.social.codesandbox} /> </> <> <DisplaySocial base="https://kaggle.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/kaggle.svg" username={props.social.kaggle} /> </> <> <DisplaySocial base="https://fb.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/facebook.svg" username={props.social.fb} /> </> <> <DisplaySocial base="https://instagram.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/instagram.svg" username={props.social.instagram} /> </> <> <DisplaySocial base="https://dribbble.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/dribbble.svg" username={props.social.dribbble} /> </> <> <DisplaySocial base="https://www.behance.net" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/behance.svg" username={props.social.behance} /> </> <> <DisplaySocial base="https://medium.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/medium.svg" username={props.social.medium} /> </> <> <DisplaySocial base="https://www.youtube.com/c" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/youtube.svg" username={props.social.youtube} /> </> <> <DisplaySocial base="https://www.codechef.com/users" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.1.0/icons/codechef.svg" username={props.social.codechef} /> </> <> <DisplaySocial base="https://www.hackerrank.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/hackerrank.svg" username={props.social.hackerrank} /> </> <> <DisplaySocial base="https://codeforces.com/profile" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/codeforces.svg" username={props.social.codeforces} /> </> <> <DisplaySocial base="https://www.leetcode.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/leetcode.svg" username={props.social.leetcode} /> </> <> <DisplaySocial base="https://www.hackerearth.com" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/hackerearth.svg" username={props.social.hackerearth} /> </> <> <DisplaySocial base="https://auth.geeksforgeeks.org/user" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/geeksforgeeks.svg" username={props.social.geeks_for_geeks} /> </> <> <DisplaySocial base="https://www.topcoder.com/members" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/topcoder.svg" username={props.social.topcoder} /> </> <> <DisplaySocial base="" icon="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/rss.svg" username={props.social.rssurl} /> </> {isSocial(props.social) ? <>{`</p>`}<br/><br/></> : ""} <> <DisplaySkills skills={props.skills} /> </> <> <DisplayTopLanguages show={props.data.topLanguages} showStats={props.data.githubStats} github={props.social.github} /> </> <> <GitHubStats show={props.data.githubStats} github={props.social.github} /> </> </div> ) } export default Markdown