{"version":3,"file":"static/chunks/pages/about-1f3c7947424860cf.js","mappings":"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","sources":["webpack://_N_E/./src/components/atoms/SeoHead/SeoHead.tsx","webpack://_N_E/./src/components/atoms/Education/styles.ts","webpack://_N_E/./src/components/atoms/Education/Education.tsx","webpack://_N_E/./src/components/atoms/Position/styles.ts","webpack://_N_E/./src/components/atoms/Position/Position.tsx","webpack://_N_E/./src/pages/about.tsx","webpack://_N_E/?75d0"],"sourcesContent":["import { FC } from 'react';\nimport Head from 'next/head';\n\nexport interface HeadProps {\n\ttitle: string;\n\tdescription: string;\n\tlang?: string;\n\tkeywords?: string;\n\tauthor?: string;\n\timage?: string;\n\tmeta?: Array<{\n\t\tname: string;\n\t\tcontent: string;\n\t}>;\n}\n\nconst SeoHead: FC = ({\n\ttitle,\n\tdescription,\n\tauthor = 'Junaid Umer',\n\tkeywords,\n\timage = 'https://res.cloudinary.com/jacobherper/image/upload/c_fill,g_north,h_1080,w_1920/v1587315694/herper-io.png ',\n\tmeta,\n}) => {\n\treturn (\n\t\t\n\t\t\t{title}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{meta &&\n\t\t\t\tmeta.length > 0 &&\n\t\t\t\tmeta.map(({ name, content }) => (\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t{image && }\n\t\t\t{image && }\n\t\t\t{keywords && }\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport { SeoHead };\n","import styled from 'styled-components';\n\nconst StyledEducation = styled.div`\n\tmargin-bottom: 3rem;\n`;\n\nconst Flex = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tmargin-bottom: 0.5rem;\n\n\t@media screen and (min-width: 768px) {\n\t\tflex-direction: row;\n\t}\n`;\n\nexport { Flex, StyledEducation };\n","import { FC } from 'react';\nimport { format } from 'date-fns';\nimport { IEducation } from '@Types';\nimport { Flex, StyledEducation } from './styles';\n\nexport interface EducationProps {\n\teducation: IEducation;\n}\n\nconst Education: FC = ({ education }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{education.website ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{education.course}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\teducation.course\n\t\t\t\t\t\t)}\n\t\t\t\t\t{' '}\n\t\t\t\t\t- {education.institute}\n\t\t\t\t
\n\t\t\t\t
{format(new Date(education.endDate), 'MM/yyyy')}
\n\t\t\t
\n\t\t\t{/* \n\t\t\t\t\n\t\t\t\t\tCourse contents: {education.technologies.join(', ')}\n\t\t\t\t\n\t\t\t */}\n\t\t
\n\t);\n};\n\nexport { Education };\n","import styled from 'styled-components';\n\nconst StyledPosition = styled.div``;\n\nconst Flex = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tmargin-bottom: 0.5rem;\n\n\t@media screen and (min-width: 768px) {\n\t\tflex-direction: row;\n\t}\n`;\n\nconst Text = styled.div`\n\tmargin: 0.5rem 0 3rem;\n\n\tul {\n\t\tmargin: 0;\n\t\tlist-style: square;\n\t\tpadding-left: 1rem;\n\n\t\tli {\n\t\t\tmargin-bottom: 0.5rem;\n\t\t}\n\t}\n`;\n\nexport { Flex, StyledPosition, Text };\n","import { FC } from 'react';\nimport { format } from 'date-fns';\nimport { IJob } from '@Types';\nimport Markdown from 'markdown-to-jsx';\nimport { Flex, StyledPosition, Text } from './styles';\n\nexport interface PositionProps {\n\tjob: IJob;\n}\n\nconst Position: FC = ({ job }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{job.jobTitle} -{' '}\n\t\t\t\t\t{job.website ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{job.company}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\tjob.company\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{format(new Date(job.startDate), 'MM/yyyy')} -{' '}\n\t\t\t\t\t{job.endDate ? format(new Date(job.endDate), 'MM/yyyy') : 'present'}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tTechnologies: {job.technologies.join(', ')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{job.description}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport { Position };\n","import absoluteUrl from 'next-absolute-url';\nimport { differenceInCalendarYears } from 'date-fns';\nimport { fetcher } from 'Utils/fetcher';\nimport { GetServerSideProps } from 'next';\nimport styled from 'styled-components';\nimport { useState } from 'react';\n\nimport { IEducation, IJob } from '@Types';\n\nimport { Container } from 'Atoms/Container';\nimport { Education } from 'Atoms/Education';\nimport { Position } from 'Atoms/Position';\nimport { SeoHead } from 'Atoms/SeoHead';\n\ninterface IProps {\n\tjobs: IJob[];\n\teducation: IEducation[];\n}\n\nfunction About({ jobs, education }: IProps) {\n\tconst [loadedJobs, setLoadedJobs] = useState(2);\n\n\tconst loadMore = () => {\n\t\tsetLoadedJobs((prev) => prev + 3);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\t\tHey, I'm Junaid Umer\n\t\t\t\t

A Senior iOS Developer from Pakistan

\n\t\t\t\t

\n\t\t\t\t\tAs a passionate iOS developer, I create amazing applications to make\n\t\t\t\t\tthe internet a better place. I am an advocate for app performance and\n\t\t\t\t\taccessibility.\n\t\t\t\t

\n\t\t\t\t

\n\t\t\t\t\tI am 27 years old and have been an iOS developer for as long as I can\n\t\t\t\t\tthink. The technologies I work with are Swift and XCode IDE with a\n\t\t\t\t\tfocus on the frameworks UIKit, UIFoundation and Autolayout. I use code\n\t\t\t\t\tnot only to do my day-to-day job, but also to solve everyday problems\n\t\t\t\t\tI come across.\n\t\t\t\t

\n\t\t\t\t

\n\t\t\t\t\tWhen I am not writing code, I love to spend time with my family and\n\t\t\t\t\tfriends at home in Pakistan or travelling around the Country. I myself\n\t\t\t\t\tspeak three languages (some better than others). Furthermore, I enjoy\n\t\t\t\t\tcooking fresh food when I come home after a long day at the office.\n\t\t\t\t

\n\n\t\t\t\t

Experience

\n\t\t\t\t{jobs.slice(0, loadedJobs).map((job, i) => (\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\t
\n\t\t\t\t\t{loadedJobs < jobs.length && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\n\t\t\t\t

Education

\n\t\t\t\t{education.map((edu) => (\n\t\t\t\t\t\n\t\t\t\t))}\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tDownload a copy of my CV\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n}\n\nconst Headline = styled.h2`\n\tfont-size: 2rem;\n\tmargin-bottom: 0;\n\n\t@media screen and (min-width: 768px) {\n\t\tfont-size: 3rem;\n\n\t\tspan {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t@keyframes wave {\n\t\t\t0% {\n\t\t\t\ttransform: rotate(0);\n\t\t\t}\n\t\t\t50% {\n\t\t\t\ttransform: rotate(-10deg);\n\t\t\t}\n\t\t\t100% {\n\t\t\t\ttransform: rotate(10deg);\n\t\t\t}\n\t\t}\n\n\t\t&:hover span {\n\t\t\tanimation: wave 0.5s ease infinite;\n\t\t}\n\t}\n`;\n\nconst Center = styled.div`\n\ttext-align: center;\n\tfont-weight: bold;\n\tmargin-top: 2rem;\n\n\tbutton {\n\t\tdisplay: block;\n\t\tmargin: 2rem auto;\n\t\tborder: 2px solid ${({ theme }) => theme.text};\n\t\tcolor: ${({ theme }) => theme.text};\n\t\tpadding: 0.5rem 3rem;\n\t\tborder-radius: 5px;\n\t\tbackground: transparent;\n\t}\n`;\n\nexport const getServerSideProps: GetServerSideProps = async ({ req }) => {\n\tconst { origin } = absoluteUrl(req);\n\tconst { positions } = await fetcher(`${origin}/api/jobs`);\n\tconst { education } = await fetcher(`${origin}/api/education`);\n\tconst skills = await fetcher(`${origin}/api/skills`);\n\n\treturn {\n\t\tprops: {\n\t\t\tjobs: positions,\n\t\t\teducation,\n\t\t\tskills,\n\t\t},\n\t};\n};\n\nexport default About;\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/about\",\n function () {\n return require(\"private-next-pages/about.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/about\"])\n });\n }\n "],"names":["SeoHead","title","description","author","keywords","image","meta","name","content","length","map","type","dangerouslySetInnerHTML","__html","StyledEducation","styled","Flex","Education","education","website","href","target","rel","course","institute","format","Date","endDate","StyledPosition","Text","Position","job","jobTitle","company","startDate","technologies","join","Headline","Center","theme","text","jobs","useState","loadedJobs","setLoadedJobs","Container","slice","i","onClick","prev","edu","window","__NEXT_P","push"],"sourceRoot":""}