import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import React, { useState } from 'react' import MDEditor from '@uiw/react-md-editor'; import styles from '../stylesheets/style.module.css'; import { faGithub } from '@fortawesome/free-brands-svg-icons' import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; import { darcula } from 'react-syntax-highlighter/dist/esm/styles/prism'; function ProfileCardComponent(props){ const [currentComponent, setCurrentComponent] = useState('MarkDownDesign'); const switchDesign = () =>{ if (currentComponent === 'MarkDownDesign'){ setCurrentComponent('MarkDownCode'); }else if (currentComponent === 'MarkDownCode'){ setCurrentComponent('MarkDownDesign'); } } return( <React.Fragment> <div className={styles.ProfileCard}> <div className={styles.CardHeader}> <div className={styles.chipLeft}> <a className={styles.icon} href={`https://github.com/${props.profileDetails.githubUserName}`} rel="noopener noreferrer" target="_blank"> <div className={styles.icon__github}> <FontAwesomeIcon name="search" icon={faGithub}></FontAwesomeIcon> </div> </a> <h3>{props.profileDetails.githubUserName}</h3> </div> <div className={styles.chipRight}> <h3>Show Code</h3> <div className={styles.switch}> <div className={styles.switch__toggle}> <input id={props.index} type="checkbox" onClick={switchDesign}/> <label htmlFor={props.index}></label> </div> </div> </div> </div> { (currentComponent === 'MarkDownDesign') ? <MDEditor.Markdown source={props.markDown} /> : <SyntaxHighlighter language="markdown" style={darcula}> {props.markDown} </SyntaxHighlighter> } </div> </React.Fragment> ) } export default ProfileCardComponent;