{"version":3,"sources":["portfolio.js","components/socialMedia/SocialMedia.js","assets/images/harvardLogo.png","assets/images/stanfordLogo.png","assets/images/facebookLogo.png","assets/images/quoraLogo.png","assets/images/airbnbLogo.png","assets/images/seconde-main.png","assets/images/eurotunnel.jpg","assets/images/codeInLogo.webp","assets/images/googleAssistantLogo.webp","assets/images/pwaLogo.webp","assets/images/manOnTable.svg","assets/images/developerActivity.svg","assets/images/skill.svg","assets/images/contactMailDark.svg","contexts/StyleContext.js","components/ToggleSwitch/ToggleSwitch.js","components/header/Header.js","containers/loading/Loading.js","components/displayLottie/DisplayLottie.js","components/button/Button.js","containers/greeting/Greeting.js","components/softwareSkills/SoftwareSkill.js","containers/skills/Skills.js","containers/skillProgress/skillProgress.js","components/experienceCard/ExperienceCard.js","containers/workExperience/WorkExperience.js","containers/projects/Projects.js","containers/StartupProjects/StartupProject.js","components/achievementCard/AchievementCard.js","containers/achievement/Achievement.js","components/blogCard/BlogCard.js","containers/blogs/Blogs.js","components/footer/Footer.js","components/talkCard/TalkCard.js","containers/talks/Talks.js","containers/podcast/Podcast.js","components/educationCard/EducationCard.js","containers/education/Education.js","containers/topbutton/Top.js","containers/twitter-embed/twitter.js","containers/contact/Contact.js","containers/profile/Profile.js","containers/Main.js","App.js","serviceWorker.js","index.js"],"names":["illustration","animated","greeting","username","title","subTitle","emoji","displayGreeting","socialMediaLinks","github","linkedin","medium","twitter","display","skillsSection","skills","softwareSkills","skillName","fontAwesomeClassname","educationInfo","schools","schoolName","logo","require","subHeader","duration","desc","descBullets","techStack","viewSkillBars","experience","Stack","progressPercentage","displayCodersrank","workExperiences","role","company","companylogo","date","openSource","githubConvertedToken","process","githubUserName","showGithubProfile","bigProjects","subtitle","projects","image","link","achievementSection","achievementsCards","footerLink","name","url","blogSection","blogs","description","talkSection","talks","slides_url","event_url","podcastSection","podcast","contactInfo","twitterDetails","userName","socialMedia","className","href","target","rel","gmail","gitlab","facebook","instagram","stackoverflow","module","exports","StyleContext","React","createContext","StyleProvider","Provider","Consumer","ToggleSwitch","useState","isChecked","setChecked","styleContext","useContext","type","checked","onChange","changeTheme","Header","isDark","viewExperience","viewOpenSource","viewSkills","viewAchievement","viewBlog","viewTalks","id","htmlFor","style","color","Loading","DisplayLottie","defaultOptions","loop","autoplay","animationData","this","props","fallback","onClick","options","Component","Button","text","newTab","Greeting","bottom","distance","SocialMedia","resumeLink","landingPerson","alt","src","SoftwareSkill","map","i","key","Skills","left","codingPerson","right","StackProgress","exp","progressStyle","width","Build","ExperienceCard","cardInfo","colorArrays","setColorArrays","imgRef","createRef","values","GetDescBullets","item","background","join","crossOrigin","ref","onLoad","colorThief","ColorThief","getColor","current","getColorArrays","WorkExperience","card","Projects","GithubRepoCard","lazy","FailedLoading","repo","setrepo","setrepoFunction","array","useEffect","ApolloClient","uri","request","operation","setContext","headers","authorization","query","gql","then","result","data","user","pinnedItems","edges","console","log","catch","error","String","v","node","StartupProject","project","marginLeft","marginRight","window","open","focus","AchievementCard","footer","Achievement","BlogCard","blog","undefined","Blogs","Footer","TalkCard","talkDetails","Talks","talk","Podcast","podcastLink","frameBorder","scrolling","EducationCard","school","Education","Top","scrollFunction","document","body","scrollTop","documentElement","getElementById","visibility","onscroll","onload","aria-hidden","renderLoader","widthScreen","screen","Twitter","sourceType","screenName","height","placeholder","autoHeight","borderColor","theme","noFooter","setTimeout","innerHTML","includes","Contact","number","email_address","email","GithubProfileCard","Profile","prof","setProfileFunction","Main","setState","state","darkPref","matchMedia","matches","value","App","Boolean","location","hostname","match","ReactDOM","render","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.1f0113da.chunk.js","sourcesContent":["/* Change this file to get your personal Portfolio */\r\n\r\n// Summary And Greeting Section\r\n\r\nimport emoji from 'react-easy-emoji';\r\n\r\nconst illustration = {\r\n animated: true, // set to false to use static SVG\r\n};\r\n\r\nconst greeting = {\r\n username: 'David Bottiau',\r\n title: \"Hi all, I'm David\",\r\n subTitle: emoji(\r\n \"I am a passionate Full 🌟 Software Developer who ❀ to make well-crafted applications, my favorite languages are TypeScript and the C# / F# duo and I am a big fan of Functional Reactive Programming: React, rxjs, Rx.NET and all the good stuff 🎁\"\r\n ),\r\n // resumeLink:\r\n // 'https://drive.google.com/file/d/1ofFdKF_mqscH8WvXkSObnVvC9kK7Ldlu/view?usp=sharing',\r\n displayGreeting: true, // Set false to hide this section, defaults to true\r\n};\r\n\r\n// Social Media Links\r\n\r\nconst socialMediaLinks = {\r\n github: \"https://github.com/Odonno\",\r\n linkedin: \"https://www.linkedin.com/in/david-bottiau/\",\r\n // gmail: 'saadpasta70@gmail.com',\r\n // gitlab: 'https://gitlab.com/saadpasta',\r\n // facebook: 'https://www.facebook.com/saad.pasta7',\r\n medium: 'https://medium.com/@dbottiau',\r\n // stackoverflow: 'https://stackoverflow.com/users/10422806/saad-pasta',\r\n twitter: 'https://twitter.com/dbottiau',\r\n // Instagram and Twitter are also supported in the links!\r\n display: true, // Set true to display this section, defaults to false\r\n};\r\n\r\n// Skills Section\r\n\r\n// TODO : C#/F#, Visual Studio, VSCode, Azure, rxjs\r\n\r\nconst skillsSection = {\r\n title: 'What I do',\r\n subTitle: 'CRAZY FULL STACK DEVELOPER WHO WANTS TO EXPLORE EVERY TECH STACK',\r\n skills: [\r\n emoji(\r\n '⚑ Develop delightful User eXperiences'\r\n ),\r\n emoji('⚑ Progressive Web Applications ( PWA ) in normal and SPA Stacks'),\r\n emoji(\r\n '⚑ Integration of Cloud Provider services such as Firebase / Azure'\r\n ),\r\n ],\r\n\r\n /* Make Sure to include correct Font Awesome Classname to view your icon\r\nhttps://fontawesome.com/icons?d=gallery */\r\n\r\n softwareSkills: [\r\n {\r\n skillName: \"git\",\r\n fontAwesomeClassname: \"fab fa-git-alt\"\r\n },\r\n {\r\n skillName: \"html5\",\r\n fontAwesomeClassname: \"fab fa-html5\"\r\n },\r\n {\r\n skillName: 'css3',\r\n fontAwesomeClassname: 'fab fa-css3-alt',\r\n },\r\n {\r\n skillName: \"JavaScript\",\r\n fontAwesomeClassname: \"fab fa-js\"\r\n },\r\n {\r\n skillName: \"npm\",\r\n fontAwesomeClassname: \"fab fa-npm\"\r\n },\r\n {\r\n skillName: \"yarn\",\r\n fontAwesomeClassname: \"fab fa-yarn\"\r\n },\r\n {\r\n skillName: \"nodejs\",\r\n fontAwesomeClassname: \"fab fa-node\"\r\n },\r\n {\r\n skillName: \"react\",\r\n fontAwesomeClassname: \"fab fa-react\"\r\n },\r\n {\r\n skillName: 'sql database',\r\n fontAwesomeClassname: 'fas fa-database',\r\n },\r\n {\r\n skillName: \"firebase\",\r\n fontAwesomeClassname: \"fas fa-fire\"\r\n }\r\n ],\r\n display: true, // Set false to hide this section, defaults to true\r\n};\r\n\r\n// Education Section\r\n\r\nconst educationInfo = {\r\n display: false, // Set false to hide this section, defaults to true\r\n schools: [\r\n {\r\n schoolName: 'Harvard University',\r\n logo: require('./assets/images/harvardLogo.png'),\r\n subHeader: 'Master of Science in Computer Science',\r\n duration: 'September 2017 - April 2019',\r\n desc: 'Participated in the research of XXX and published 3 papers.',\r\n descBullets: [\r\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',\r\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',\r\n ],\r\n },\r\n {\r\n schoolName: 'Stanford University',\r\n logo: require('./assets/images/stanfordLogo.png'),\r\n subHeader: 'Bachelor of Science in Computer Science',\r\n duration: 'September 2013 - April 2017',\r\n desc:\r\n 'Ranked top 10% in the program. Took courses about Software Engineering, Web Security, Operating Systems, ...',\r\n descBullets: ['Lorem ipsum dolor sit amet, consectetur adipiscing elit'],\r\n },\r\n ],\r\n};\r\n\r\n// Your top 3 proficient stacks/tech experience\r\n\r\nconst techStack = {\r\n viewSkillBars: false, //Set it to true to show Proficiency Section\r\n experience: [\r\n {\r\n Stack: 'Frontend/Design', //Insert stack or technology you have experience in\r\n progressPercentage: '90%', //Insert relative proficiency in percentage\r\n },\r\n {\r\n Stack: 'Backend',\r\n progressPercentage: '70%',\r\n },\r\n {\r\n Stack: 'Programming',\r\n progressPercentage: '60%',\r\n },\r\n ],\r\n displayCodersrank: false, // Set true to display codersrank badges section need to changes your username in src/containers/skillProgress/skillProgress.js:17:62, defaults to false\r\n};\r\n\r\n// Work experience section\r\n\r\nconst workExperiences = {\r\n display: false, //Set it to true to show workExperiences Section\r\n experience: [\r\n {\r\n role: 'Software Engineer',\r\n company: 'Facebook',\r\n companylogo: require('./assets/images/facebookLogo.png'),\r\n date: 'June 2018 – Present',\r\n desc:\r\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',\r\n descBullets: [\r\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',\r\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',\r\n ],\r\n },\r\n {\r\n role: 'Front-End Developer',\r\n company: 'Quora',\r\n companylogo: require('./assets/images/quoraLogo.png'),\r\n date: 'May 2017 – May 2018',\r\n desc:\r\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',\r\n },\r\n {\r\n role: 'Software Engineer Intern',\r\n company: 'Airbnb',\r\n companylogo: require('./assets/images/airbnbLogo.png'),\r\n date: 'Jan 2015 – Sep 2015',\r\n desc:\r\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',\r\n },\r\n ],\r\n};\r\n\r\n/* Your Open Source Section to View Your Github Pinned Projects\r\nTo know how to get github key look at readme.md */\r\n\r\nconst openSource = {\r\n githubConvertedToken: process.env.REACT_APP_GITHUB_TOKEN,\r\n githubUserName: 'Odonno', // Change to your github username to view your profile in Contact Section.\r\n showGithubProfile: 'false', // Set true or false to show Contact profile using Github, defaults to true\r\n display: true, // Set false to hide this section, defaults to true\r\n};\r\n\r\n// Some big projects you have worked on\r\n\r\nconst bigProjects = {\r\n title: 'Big Projects',\r\n subtitle: 'SOME STARTUPS AND COMPANIES THAT I HELPED TO CREATE THEIR TECH',\r\n projects: [\r\n {\r\n image: require('./assets/images/seconde-main.png'),\r\n link: 'https://secondemain.kiabi.com/',\r\n },\r\n {\r\n image: require('./assets/images/eurotunnel.jpg'),\r\n link: 'https://driver.eurotunnelfreight.com/',\r\n },\r\n ],\r\n display: true, // Set false to hide this section, defaults to true\r\n};\r\n\r\n// Achievement Section\r\n// Include certificates, talks etc\r\n\r\nconst achievementSection = {\r\n title: emoji('Achievements And Certifications πŸ† '),\r\n subtitle:\r\n 'Achievements, Certifications, Award Letters and Some Cool Stuff that I have done !',\r\n\r\n achievementsCards: [\r\n {\r\n title: 'Google Code-In Finalist',\r\n subtitle:\r\n 'First Pakistani to be selected as Google Code-in Finalist from 4000 students from 77 different countries.',\r\n image: require('./assets/images/codeInLogo.webp'),\r\n footerLink: [\r\n {\r\n name: 'Certification',\r\n url:\r\n 'https://drive.google.com/file/d/0B7kazrtMwm5dYkVvNjdNWjNybWJrbndFSHpNY2NFV1p4YmU0/view?usp=sharing',\r\n },\r\n {\r\n name: 'Award Letter',\r\n url:\r\n 'https://drive.google.com/file/d/0B7kazrtMwm5dekxBTW5hQkg2WXUyR3QzQmR0VERiLXlGRVdF/view?usp=sharing',\r\n },\r\n {\r\n name: 'Google Code-in Blog',\r\n url:\r\n 'https://opensource.googleblog.com/2019/01/google-code-in-2018-winners.html',\r\n },\r\n ],\r\n },\r\n {\r\n title: 'Google Assistant Action',\r\n subtitle:\r\n 'Developed a Google Assistant Action JavaScript Guru that is available on 2 Billion devices world wide.',\r\n image: require('./assets/images/googleAssistantLogo.webp'),\r\n footerLink: [\r\n {\r\n name: 'View Google Assistant Action',\r\n url:\r\n 'https://assistant.google.com/services/a/uid/000000100ee688ee?hl=en',\r\n },\r\n ],\r\n },\r\n\r\n {\r\n title: 'PWA Web App Developer',\r\n subtitle: 'Completed Certifcation from SMIT for PWA Web App Development',\r\n image: require('./assets/images/pwaLogo.webp'),\r\n footerLink: [\r\n { name: 'Certification', url: '' },\r\n {\r\n name: 'Final Project',\r\n url: 'https://pakistan-olx-1.firebaseapp.com/',\r\n },\r\n ],\r\n },\r\n ],\r\n display: false, // Set false to hide this section, defaults to true\r\n};\r\n\r\n// Blogs Section\r\n\r\nconst blogSection = {\r\n title: 'Blogs',\r\n subtitle:\r\n 'With Love for Developing cool stuff, I love to write and teach others what I have learnt.',\r\n\r\n blogs: [\r\n {\r\n url: \"https://medium.com/@dbottiau/net-core-templates-for-azure-web-app-e79d008d6440\",\r\n title: \".NET Core templates for Azure Web App\",\r\n description: \"ASP.NET Core Azure Templates is a list of templates used to generate ASP.NET Core web apps using ready-to-use Azure features\"\r\n },\r\n {\r\n url: \"https://medium.com/@dbottiau/a-state-management-comparison-with-react-hooks-mobx-and-recoiljs-3b7e2f4cc6c3\",\r\n title: \"A State management comparison with React hooks, mobx and recoiljs\",\r\n description: \"Let’s see in details where we are going by focusing on the state management current trends: hooks, mobx and recoiljs.\"\r\n },\r\n {\r\n url: \"https://medium.com/@dbottiau/advanced-realtime-streaming-with-signalr-in-net-core-2e38fce26fbb\",\r\n title: \"Advanced realtime streaming with SignalR in .NET Core\",\r\n description: \"Since ASP.NET Core 2.1, we can now use SignalR streaming which is a new feature that allows us to push data to or receive data from client/server in a much more efficient way.\"\r\n },\r\n {\r\n url: \"https://medium.com/@dbottiau/simplify-your-realtime-applications-by-bringing-signalr-into-the-ngrx-ecosystem-bc984cf2800c\",\r\n title: \"Simplify your realtime applications by bringing SignalR into the @ngrx ecosystem\",\r\n description: \"By bringing SignalR to your @ngrx/store and your @ngrx/effect, you gain control over your application in different ways.\"\r\n },\r\n {\r\n url: \"https://medium.com/@dbottiau/a-bright-future-for-functional-reactive-programming-and-net-developers-54780cd2f838\",\r\n title: \"A bright future for Functional Reactive Programming and .NET developers\",\r\n description: \"Functional Reactive Programming is bringing the best of those two worlds and I started bringing amazing stuff for FRP and .NET developers.\"\r\n },\r\n {\r\n url: \"https://itnext.io/a-memo-on-how-to-implement-azure-ad-authentication-using-react-and-net-core-2-0-3fe9bfdf9f36\",\r\n title: \"A memo on how to implement Azure AD authentication using React and .NET Core\",\r\n description: \"I found many ways to implement Azure AD authentication using React and a .NET Core 2.x backend. In this article, I will demonstrate how to implement this type of authentication.\"\r\n }\r\n ],\r\n display: true, // Set false to hide this section, defaults to true\r\n};\r\n\r\n// Talks Sections\r\n\r\nconst talkSection = {\r\n title: 'TALKS',\r\n subtitle: emoji(\r\n 'I LOVE TO SHARE MY LIMITED KNOWLEDGE AND GET A SPEAKER BADGE πŸ˜…'\r\n ),\r\n\r\n talks: [\r\n {\r\n title: 'Build Actions For Google Assistant',\r\n subtitle: 'Codelab at GDG DevFest Karachi 2019',\r\n slides_url: 'https://bit.ly/saadpasta-slides',\r\n event_url: 'https://www.facebook.com/events/2339906106275053/',\r\n },\r\n ],\r\n display: false, // Set false to hide this section, defaults to true\r\n};\r\n\r\n// Podcast Section\r\n\r\nconst podcastSection = {\r\n title: emoji('Podcast πŸŽ™οΈ'),\r\n subtitle: 'I LOVE TO TALK ABOUT MYSELF AND TECHNOLOGY',\r\n\r\n // Please Provide with Your Podcast embeded Link\r\n podcast: [\r\n 'https://anchor.fm/codevcast/embed/episodes/DevStory---Saad-Pasta-from-Karachi--Pakistan-e9givv/a-a15itvo',\r\n ],\r\n display: false, // Set false to hide this section, defaults to true\r\n};\r\n\r\nconst contactInfo = {\r\n title: emoji('Find Me'),\r\n // subtitle:\r\n // 'Discuss a project or just want to say hi? My Inbox is open for all.',\r\n // number: '+92-3243454077',\r\n // emailAddress: 'saadpasta70@gmail.com',\r\n};\r\n\r\n// Twitter Section\r\n\r\nconst twitterDetails = {\r\n userName: 'dbottiau', //Replace \"twitter\" with your twitter username without @\r\n display: true, // Set true to display this section, defaults to false\r\n};\r\n\r\nexport {\r\n illustration,\r\n greeting,\r\n socialMediaLinks,\r\n skillsSection,\r\n educationInfo,\r\n techStack,\r\n workExperiences,\r\n openSource,\r\n bigProjects,\r\n achievementSection,\r\n blogSection,\r\n talkSection,\r\n podcastSection,\r\n contactInfo,\r\n twitterDetails,\r\n};\r\n","import React from \"react\";\r\nimport \"./SocialMedia.css\";\r\nimport { socialMediaLinks } from \"../../portfolio\";\r\n\r\nexport default function socialMedia() {\r\n if (!socialMediaLinks.display) {\r\n return null;\r\n }\r\n return (\r\n
\r\n \r\n {socialMediaLinks.github ? \r\n (\r\n \r\n \r\n )\r\n :\r\n null}\r\n\r\n {socialMediaLinks.linkedin ?\r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n\r\n {socialMediaLinks.gmail ?\r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n\r\n {socialMediaLinks.gitlab ?\r\n \r\n \r\n \r\n \r\n :\r\n null }\r\n\r\n {socialMediaLinks.facebook ?\r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n\r\n {socialMediaLinks.instagram ?\r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n\r\n {socialMediaLinks.twitter ?\r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n\r\n {socialMediaLinks.medium ? \r\n (\r\n \r\n \r\n )\r\n :\r\n null}\r\n\r\n {socialMediaLinks.stackoverflow ? \r\n (\r\n \r\n \r\n )\r\n :\r\n null}\r\n\r\n
\r\n );\r\n}","module.exports = __webpack_public_path__ + \"static/media/harvardLogo.35ef5e91.png\";","module.exports = __webpack_public_path__ + \"static/media/stanfordLogo.3b758ef5.png\";","module.exports = __webpack_public_path__ + \"static/media/facebookLogo.8ddf76a1.png\";","module.exports = __webpack_public_path__ + \"static/media/quoraLogo.4b2938b9.png\";","module.exports = __webpack_public_path__ + \"static/media/airbnbLogo.c59720d6.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/eurotunnel.0dbd3c3c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/codeInLogo.47a7a717.webp\";","module.exports = __webpack_public_path__ + \"static/media/googleAssistantLogo.e79c6392.webp\";","module.exports = __webpack_public_path__ + \"static/media/pwaLogo.ee62cb58.webp\";","module.exports = __webpack_public_path__ + \"static/media/manOnTable.52be3144.svg\";","module.exports = __webpack_public_path__ + \"static/media/developerActivity.59389695.svg\";","module.exports = __webpack_public_path__ + \"static/media/skill.34409398.svg\";","module.exports = __webpack_public_path__ + \"static/media/contactMailDark.51cf7192.svg\";","import React from \"react\";\r\n\r\nconst StyleContext = React.createContext();\r\n\r\nexport const StyleProvider = StyleContext.Provider;\r\nexport const StyleConsumer = StyleContext.Consumer;\r\n\r\nexport default StyleContext;\r\n","import React, { useState, useContext } from \"react\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\nimport \"./ToggleSwitch.css\";\r\nconst ToggleSwitch = () => {\r\n const [isChecked, setChecked] = useState(false);\r\n const styleContext = useContext(StyleContext);\r\n\r\n return (\r\n \r\n );\r\n};\r\nexport default ToggleSwitch;\r\n","import React, { useContext } from 'react';\r\nimport Headroom from 'react-headroom';\r\nimport './Header.css';\r\nimport ToggleSwitch from '../ToggleSwitch/ToggleSwitch';\r\nimport StyleContext from '../../contexts/StyleContext';\r\nimport {\r\n greeting,\r\n workExperiences,\r\n skillsSection,\r\n openSource,\r\n blogSection,\r\n talkSection,\r\n achievementSection,\r\n} from '../../portfolio';\r\n\r\nfunction Header() {\r\n const { isDark } = useContext(StyleContext);\r\n const viewExperience = workExperiences.display;\r\n const viewOpenSource = openSource.display;\r\n const viewSkills = skillsSection.display;\r\n const viewAchievement = achievementSection.display;\r\n const viewBlog = blogSection.display;\r\n const viewTalks = talkSection.display;\r\n\r\n return (\r\n \r\n
\r\n \r\n <\r\n {greeting.username}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {viewSkills && (\r\n
  • \r\n Skills\r\n
  • \r\n )}\r\n {viewExperience && (\r\n
  • \r\n Work Experiences\r\n
  • \r\n )}\r\n {viewOpenSource && (\r\n
  • \r\n Open Source\r\n
  • \r\n )}\r\n {viewAchievement && (\r\n
  • \r\n Achievements\r\n
  • \r\n )}\r\n {viewBlog && (\r\n
  • \r\n Blogs\r\n
  • \r\n )}\r\n {viewTalks && (\r\n
  • \r\n Talks\r\n
  • \r\n )}\r\n
  • \r\n Contact Me\r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n );\r\n}\r\nexport default Header;","import React from \"react\";\r\nimport \"./loading.css\";\r\n\r\nexport default function Loading() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component, Suspense } from 'react';\r\nimport Lottie from 'react-lottie';\r\nimport Loading from \"../../containers/loading/Loading\";\r\n\r\nexport default class DisplayLottie extends Component {\r\n render() {\r\n const animationData = this.props.animationData\r\n const defaultOptions = {\r\n loop: true,\r\n autoplay: true,\r\n animationData: animationData,\r\n };\r\n \r\n return (\r\n }>\r\n {/* To override default onClick pause by Lottie */}\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport \"./Button.css\";\r\n\r\nexport default function Button({ text, className, href, newTab }) {\r\n return (\r\n
\r\n \r\n {text}\r\n \r\n
\r\n );\r\n}\r\n","import React, { useContext } from 'react';\r\nimport { Fade } from 'react-reveal';\r\nimport emoji from 'react-easy-emoji';\r\nimport './Greeting.css';\r\nimport landingPerson from '../../assets/lottie/landingPerson';\r\nimport DisplayLottie from '../../components/displayLottie/DisplayLottie';\r\nimport SocialMedia from '../../components/socialMedia/SocialMedia';\r\nimport Button from '../../components/button/Button';\r\n\r\nimport { illustration, greeting } from '../../portfolio';\r\nimport StyleContext from '../../contexts/StyleContext';\r\n\r\nexport default function Greeting() {\r\n const { isDark } = useContext(StyleContext);\r\n if (!greeting.displayGreeting) {\r\n return null;\r\n }\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {' '}\r\n {greeting.title}{' '}\r\n {emoji('πŸ‘‹')}\r\n \r\n \r\n {greeting.subTitle}\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {illustration.animated ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React from \"react\";\r\nimport \"./SoftwareSkill.css\";\r\nimport { skillsSection } from \"../../portfolio\";\r\n\r\nexport default function SoftwareSkill() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useContext } from 'react';\r\nimport './Skills.css';\r\nimport SoftwareSkill from '../../components/softwareSkills/SoftwareSkill';\r\nimport { illustration, skillsSection } from '../../portfolio';\r\nimport { Fade } from 'react-reveal';\r\nimport codingPerson from '../../assets/lottie/codingPerson';\r\nimport DisplayLottie from '../../components/displayLottie/DisplayLottie';\r\nimport StyleContext from '../../contexts/StyleContext';\r\n\r\nexport default function Skills() {\r\n const { isDark } = useContext(StyleContext);\r\n if (!skillsSection.display) {\r\n return null;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {illustration.animated ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n {skillsSection.title}{' '}\r\n \r\n \r\n {skillsSection.subTitle}\r\n

\r\n \r\n
\r\n {skillsSection.skills.map((skills, i) => {\r\n return (\r\n \r\n {skills}\r\n

\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./Progress.css\";\r\nimport { illustration, techStack } from \"../../portfolio\";\r\nimport { Fade } from \"react-reveal\";\r\nimport Build from '../../assets/lottie/build';\r\nimport DisplayLottie from '../../components/displayLottie/DisplayLottie';\r\n\r\nexport default function StackProgress() {\r\n if(techStack.viewSkillBars){\r\n return (\r\n \r\n
\r\n\r\n
\r\n

Proficiency

\r\n {techStack.experience.map((exp,i) => {\r\n const progressStyle = {\r\n width: exp.progressPercentage\r\n };\r\n return (\r\n
\r\n

{exp.Stack}

\r\n
\r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n\r\n
\r\n { illustration.animated ? : \"Skills\" }\r\n
\r\n\r\n
\r\n
\r\n );\r\n }\r\n return null;\r\n}\r\n","import React, { useState, useEffect, createRef } from \"react\";\r\nimport \"./ExperienceCard.css\";\r\nimport ColorThief from \"colorthief\";\r\n\r\nexport default function ExperienceCard({ cardInfo, isDark }) {\r\n const [colorArrays, setColorArrays] = useState([]);\r\n const imgRef = createRef();\r\n\r\n function getColorArrays() {\r\n const colorThief = new ColorThief();\r\n setColorArrays(colorThief.getColor(imgRef.current));\r\n }\r\n\r\n function rgb(values) {\r\n return typeof values === \"undefined\" ? null : \"rgb(\" + values.join(', ') + \")\";\r\n }\r\n\r\n const GetDescBullets = ({ descBullets, isDark }) => {\r\n return descBullets ? descBullets.map((item,i) =>
  • {item}
  • ) : null\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {cardInfo.company}
    \r\n
    \r\n \r\n {cardInfo.company} getColorArrays()}/>\r\n
    \r\n
    \r\n
    {cardInfo.role}
    \r\n
    {cardInfo.date}
    \r\n

    {cardInfo.desc}

    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, {useContext} from \"react\";\r\nimport \"./WorkExperience.css\";\r\nimport ExperienceCard from \"../../components/experienceCard/ExperienceCard\";\r\nimport { workExperiences } from \"../../portfolio\";\r\nimport { Fade } from \"react-reveal\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\n\r\nexport default function WorkExperience() {\r\n const {isDark} = useContext(StyleContext)\r\n if(workExperiences.display){\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n

    Experiences

    \r\n
    \r\n {workExperiences.experience.map((card,i) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n return null;\r\n}\r\n","import React, { useState, useEffect, useContext, Suspense, lazy } from \"react\";\r\nimport ApolloClient from \"apollo-boost\";\r\nimport { gql } from \"apollo-boost\";\r\nimport \"./Project.css\";\r\nimport Button from \"../../components/button/Button\";\r\nimport { openSource, socialMediaLinks } from \"../../portfolio\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\nimport Loading from \"../../containers/loading/Loading\";\r\nexport default function Projects() {\r\n const GithubRepoCard = lazy(() =>\r\n import(\"../../components/githubRepoCard/GithubRepoCard\")\r\n );\r\n const FailedLoading = () => null;\r\n const renderLoader = () => ;\r\n const [repo, setrepo] = useState([]);\r\n // todo: remove useContex because is not supported\r\n const { isDark } = useContext(StyleContext);\r\n useEffect(() => {\r\n getRepoData();\r\n }, []);\r\n\r\n function getRepoData() {\r\n const client = new ApolloClient({\r\n uri: \"https://api.github.com/graphql\",\r\n request: (operation) => {\r\n operation.setContext({\r\n headers: {\r\n authorization: `Bearer ${openSource.githubConvertedToken}`,\r\n },\r\n });\r\n },\r\n });\r\n\r\n client\r\n .query({\r\n query: gql`\r\n {\r\n user(login: \"${openSource.githubUserName}\") {\r\n pinnedItems(first: 6, types: [REPOSITORY]) {\r\n totalCount\r\n edges {\r\n node {\r\n ... on Repository {\r\n name\r\n description\r\n forkCount\r\n stargazers {\r\n totalCount\r\n }\r\n url\r\n id\r\n diskUsage\r\n primaryLanguage {\r\n name\r\n color\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n `,\r\n })\r\n .then((result) => {\r\n setrepoFunction(result.data.user.pinnedItems.edges);\r\n console.log(result);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n setrepoFunction(\"Error\");\r\n console.log(\r\n \"Because of this Error, nothing is shown in place of Projects section. Projects section not configured\"\r\n );\r\n });\r\n }\r\n\r\n function setrepoFunction(array) {\r\n setrepo(array);\r\n }\r\n if (!(typeof repo === \"string\" || repo instanceof String) && openSource.display) {\r\n return (\r\n \r\n
    \r\n

    Open Source Projects

    \r\n
    \r\n {repo.map((v, i) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n } else {\r\n return ;\r\n }\r\n}","import React, { useContext } from \"react\";\r\nimport \"./StartupProjects.css\";\r\nimport { bigProjects } from \"../../portfolio\";\r\nimport { Fade } from \"react-reveal\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\n\r\nexport default function StartupProject() {\r\n function openProjectInNewWindow(url) {\r\n var win = window.open(url, \"_blank\");\r\n win.focus();\r\n }\r\n const { isDark } = useContext(StyleContext);\r\n if (!bigProjects.display) {\r\n return null;\r\n }\r\n return (\r\n \r\n
    \r\n
    \r\n

    {bigProjects.title}

    \r\n \r\n {bigProjects.subtitle}\r\n

    \r\n
    \r\n
    \r\n {bigProjects.projects.map((project,i) => {\r\n return (\r\n openProjectInNewWindow(project.link)}\r\n >\r\n \"\"\r\n
    \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./AchievementCard.css\";\r\n\r\nexport default function AchievementCard({ cardInfo, isDark }) {\r\n function openUrlInNewTab(url) {\r\n var win = window.open(url, \"_blank\");\r\n win.focus();\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \"PWA\"\r\n
    \r\n
    \r\n
    \r\n {cardInfo.title}\r\n
    \r\n

    \r\n {cardInfo.description}\r\n

    \r\n
    \r\n
    \r\n {cardInfo.footer.map((v, i) => {\r\n return (\r\n openUrlInNewTab(v.url)}\r\n >\r\n {v.name}\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useContext } from \"react\";\r\nimport \"./Achievement.css\";\r\nimport AchievementCard from \"../../components/achievementCard/AchievementCard\";\r\nimport { achievementSection } from \"../../portfolio\";\r\nimport { Fade } from \"react-reveal\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\nexport default function Achievement() {\r\n const { isDark } = useContext(StyleContext);\r\n if (!achievementSection.display) {\r\n return null;\r\n }\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {achievementSection.title}\r\n \r\n \r\n {achievementSection.subtitle}\r\n

    \r\n
    \r\n
    \r\n {achievementSection.achievementsCards.map((card,i) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./BlogCard.css\";\r\n\r\nexport default function BlogCard({ blog, isDark }) {\r\n function openUrlInNewTab(url) {\r\n if (url !== undefined) {\r\n var win = window.open(url, \"_blank\");\r\n win.focus();\r\n }\r\n }\r\n\r\n return (\r\n
    openUrlInNewTab(blog.url)}>\r\n
    \r\n \r\n

    \r\n {blog.title}\r\n

    \r\n

    \r\n {blog.description}\r\n

    \r\n
    \r\n
    β†’
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useContext } from \"react\";\r\nimport \"./Blog.css\";\r\nimport BlogCard from \"../../components/blogCard/BlogCard\";\r\nimport { blogSection } from \"../../portfolio\";\r\nimport { Fade } from \"react-reveal\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\nexport default function Blogs() {\r\n const { isDark } = useContext(StyleContext);\r\n if (!blogSection.display) {\r\n return null;\r\n }\r\n return (\r\n \r\n
    \r\n
    \r\n

    {blogSection.title}

    \r\n \r\n {blogSection.subtitle}\r\n

    \r\n
    \r\n
    \r\n
    \r\n {blogSection.blogs.map((blog,i) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useContext } from \"react\";\r\nimport \"./Footer.css\";\r\nimport { Fade } from \"react-reveal\";\r\nimport emoji from \"react-easy-emoji\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\n\r\nexport default function Footer() {\r\n const { isDark } = useContext(StyleContext);\r\n return (\r\n \r\n
    \r\n

    \r\n {emoji(\"Made with ❀️ by David Bottiau\")}\r\n

    \r\n

    \r\n Theme by{\" \"}\r\n \r\n developerFolio\r\n \r\n

    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./TalkCard.css\";\r\n\r\nexport default function TalkCard({ talkDetails }) {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    {talkDetails.title}
    \r\n

    {talkDetails.subtitle}

    \r\n\r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React, { useContext } from \"react\";\r\nimport \"./Talks.css\";\r\nimport TalkCard from \"../../components/talkCard/TalkCard\";\r\nimport { talkSection } from \"../../portfolio\";\r\nimport { Fade } from \"react-reveal\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\n\r\nexport default function Talks() {\r\n const { isDark } = useContext(StyleContext);\r\n if (!talkSection.display) {\r\n return null;\r\n }\r\n return (\r\n \r\n
    \r\n
    \r\n

    {talkSection.title}

    \r\n \r\n {talkSection.subtitle}\r\n

    \r\n {talkSection.talks.map((talk,i) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useContext } from \"react\";\r\nimport \"./Podcast.css\";\r\nimport { podcastSection } from \"../../portfolio\";\r\nimport { Fade } from \"react-reveal\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\n\r\nexport default function Podcast() {\r\n const { isDark } = useContext(StyleContext);\r\n if (!podcastSection.display) {\r\n return null;\r\n }\r\n return (\r\n \r\n
    \r\n
    \r\n

    {podcastSection.title}

    \r\n \r\n {podcastSection.subtitle}\r\n

    \r\n
    \r\n
    \r\n {podcastSection.podcast.map((podcastLink,i) => {\r\n return (\r\n \r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { createRef, useContext } from \"react\";\r\nimport { Fade, Slide, Zoom } from \"react-reveal\";\r\nimport \"./EducationCard.css\";\r\nimport StyleContext from \"../../contexts/StyleContext\";\r\n\r\nexport default function EducationCard({ school }) {\r\n const imgRef = createRef();\r\n\r\n const GetDescBullets = ({ descBullets }) => {\r\n return descBullets\r\n ? descBullets.map((item,i) =>
  • {item}
  • )\r\n : null;\r\n };\r\n const { isDark } = useContext(StyleContext);\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    {school.schoolName}
    \r\n\r\n
    \r\n \r\n {school.subHeader}\r\n \r\n \r\n {school.duration}\r\n

    \r\n

    {school.desc}

    \r\n
    \r\n
      \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from 'react';\r\nimport './Education.css';\r\nimport EducationCard from '../../components/educationCard/EducationCard';\r\nimport { educationInfo } from '../../portfolio';\r\n\r\nexport default function Education() {\r\n if(educationInfo.display){\r\n return (\r\n
    \r\n

    Education

    \r\n
    \r\n {educationInfo.schools.map((school) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n return null;\r\n}\r\n","import React from \"react\";\r\nimport \"./Top.css\";\r\n\r\n\r\nexport default function Top() {\r\n function TopEvent() {\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n // When the user scrolls down 20px from the top of the document, show the button \r\n function scrollFunction() {\r\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\r\n document.getElementById(\"topButton\").style.visibility = \"visible\";\r\n } else {\r\n document.getElementById(\"topButton\").style.visibility = \"hidden\";\r\n }\r\n }\r\n window.onscroll = function() {scrollFunction();};\r\n window.onload = function() {scrollFunction();}; //To make sure that this button is not visible at starting.\r\n // When the user clicks on the button, scroll to the top of the document\r\n return (\r\n \r\n );\r\n }\r\n","import React, { Suspense, useContext } from 'react';\r\nimport './twitter.css';\r\nimport Loading from '../loading/Loading';\r\nimport { TwitterTimelineEmbed } from 'react-twitter-embed';\r\nimport { twitterDetails } from '../../portfolio';\r\nimport StyleContext from '../../contexts/StyleContext';\r\n\r\nconst renderLoader = () => ;\r\nconst cantDisplayError =\r\n \"

    Can't load? Check privacy protection settings

    \";\r\n\r\nfunction timeOut() {\r\n setTimeout(function () {\r\n if (!document.getElementById('twitter').innerHTML.includes('iframe')) {\r\n document.getElementById('twitter').innerHTML = cantDisplayError;\r\n }\r\n }, 10000);\r\n}\r\nvar widthScreen = window.screen.width;\r\n\r\nexport default function Twitter() {\r\n const { isDark } = useContext(StyleContext);\r\n\r\n if (!twitterDetails.display) {\r\n return null;\r\n }\r\n if (twitterDetails.userName) {\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n } else {\r\n return null;\r\n }\r\n}\r\n","import React, { useContext } from 'react';\r\nimport './Contact.css';\r\nimport SocialMedia from '../../components/socialMedia/SocialMedia';\r\nimport { illustration, contactInfo } from '../../portfolio';\r\nimport { Fade } from 'react-reveal';\r\nimport email from '../../assets/lottie/email';\r\nimport DisplayLottie from '../../components/displayLottie/DisplayLottie';\r\nimport StyleContext from '../../contexts/StyleContext';\r\n\r\nexport default function Contact() {\r\n const { isDark } = useContext(StyleContext);\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    {contactInfo.title}

    \r\n \r\n {contactInfo.subtitle}\r\n

    \r\n \r\n \r\n {contactInfo.number}\r\n \r\n
    \r\n
    \r\n \r\n {contactInfo.email_address}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {illustration.animated ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState, useEffect ,lazy, Suspense } from \"react\";\r\nimport ApolloClient, { gql } from \"apollo-boost\";\r\nimport { openSource } from \"../../portfolio\";\r\nimport Contact from \"../contact/Contact\";\r\nimport Loading from \"../loading/Loading\";\r\n\r\nconst renderLoader = () => ;\r\nconst GithubProfileCard = lazy(() => import('../../components/githubProfileCard/GithubProfileCard'));\r\nexport default function Profile() {\r\n const [prof, setrepo] = useState([]);\r\n function setProfileFunction(array) {\r\n setrepo(array);\r\n }\r\n function getProfileData() {\r\n const client = new ApolloClient({\r\n uri: \"https://api.github.com/graphql\",\r\n request: (operation) => {\r\n operation.setContext({\r\n headers: {\r\n authorization: `Bearer ${openSource.githubConvertedToken}`,\r\n },\r\n });\r\n },\r\n });\r\n\r\n client\r\n .query({\r\n query: gql`\r\n {\r\n user(login:\"${openSource.githubUserName}\") { \r\n name\r\n bio\r\n isHireable\r\n avatarUrl\r\n location\r\n }\r\n }\r\n `,\r\n })\r\n .then((result) => {\r\n setProfileFunction(result.data.user);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n setProfileFunction(\"Error\");\r\n console.log(\"Because of this Error Contact Section is Showed instead of Profile\");\r\n openSource.showGithubProfile = \"false\";\r\n });\r\n }\r\n useEffect(() => {\r\n if (openSource.showGithubProfile === \"true\") {\r\n getProfileData();\r\n }\r\n }, []);\r\nif (openSource.display && openSource.showGithubProfile === \"true\" && !(typeof prof === 'string' || prof instanceof String)){ \r\n return (\r\n \r\n \r\n \r\n );\r\n } else {\r\n return ;\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport Header from \"../components/header/Header\";\r\nimport Greeting from \"./greeting/Greeting\";\r\nimport Skills from \"./skills/Skills\";\r\nimport StackProgress from \"./skillProgress/skillProgress\";\r\nimport WorkExperience from \"./workExperience/WorkExperience\";\r\nimport Projects from \"./projects/Projects\";\r\nimport StartupProject from \"./StartupProjects/StartupProject\";\r\nimport Achievement from \"./achievement/Achievement\";\r\nimport Blogs from \"./blogs/Blogs\";\r\nimport Footer from \"../components/footer/Footer\";\r\nimport Talks from \"./talks/Talks\";\r\nimport Podcast from \"./podcast/Podcast\";\r\nimport Education from \"./education/Education\";\r\nimport Top from \"./topbutton/Top\";\r\nimport Twitter from \"./twitter-embed/twitter\";\r\nimport { StyleProvider } from \"../contexts/StyleContext\";\r\nimport \"./Main.css\";\r\nimport Profile from \"./profile/Profile\";\r\nimport { educationInfo } from \"../portfolio\";\r\n\r\nexport default class Main extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isDark: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const darkPref = window.matchMedia(\"(prefers-color-scheme: dark)\");\r\n this.setState({ isDark: darkPref.matches });\r\n }\r\n changeTheme = () => {\r\n this.setState({ isDark: !this.state.isDark });\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport \"./App.css\";\r\nimport Main from \"./containers/Main\";\r\n\r\nfunction App() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\n\r\nReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}