{"version":3,"file":"component---src-pages-portfolio-js-fcdc5c0bfbf1c07b99bc.js","mappings":"sJAAO,IAAMA,EAAU,SAAAC,GAAI,OACzBA,EACGC,WACAC,UAAU,OACVC,QAAQ,mBAAoB,IAC5BC,cACAC,OACAF,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,IACpBA,QAAQ,OAAQ,O,2GCNN,SAASG,EAAT,GAAgF,IAAvDC,EAAsD,EAAtDA,KAAMC,EAAgD,EAAhDA,YAAaC,EAAmC,EAAnCA,aAAcC,EAAqB,EAArBA,QAASC,EAAY,EAAZA,SACxEC,EAAqEL,EAArEK,aAAcC,EAAuDN,EAAvDM,mBAAoBC,EAAmCP,EAAnCO,SAAUC,EAAyBR,EAAzBQ,KAAMC,EAAmBT,EAAnBS,eAM1D,OACE,2BACEC,GAAIN,EACJO,IAAKP,EACLQ,UAAS,iBAAkBX,IAAgBG,EAAW,sBAAwB,KAE9E,uBAAKQ,UAAU,0BACb,0BAAQA,UAAU,mBAChB,0BAAQC,KAAK,SAASD,UAAU,sBAAsBE,QAASZ,EAAca,UAbrF,SAAiBC,GACO,KAAlBA,EAAMC,SACRd,MAYOE,EAAaZ,MAEhB,sBAAImB,UAAU,uBAAuBJ,IAEvC,uBAAKI,UAAU,uBACb,uBAAKM,wBAAyB,CAAEC,OAAQb,EAAmBc,QAC1Db,GACC,qBAAGc,KAAMd,EAAUK,UAAU,WAAWU,OAAO,SAASC,IAAI,uBAA5D,gBAMLd,EAAee,KACd,uBAAKZ,UAAU,4BACb,uBAAKa,IAAKhB,EAAee,IAAKE,IAAI,c,mlBC5B5C,SAASC,EAAQC,EAAOC,GACtB,OAAQA,EAAOhB,MACb,IAAK,iBACH,OAAO,EAAP,KACKe,GADL,IAEEE,kBAAmBD,EAAOE,UAAYH,EAAMI,gBAC5CA,gBAAiBH,EAAOE,UAAYH,EAAMI,gBAAkB,GAAKH,EAAOE,UAG5E,IAAK,iBACH,OAAO,EAAP,KACKH,GADL,IAEEE,mBAAmB,EACnBE,gBAAiB,KAGrB,QACE,MAAM,IAAIC,OAIhB,IAmGA,EAnGkB,WAChB,IAKA,GAA0BC,EAAAA,EAAAA,YAAWP,EALhB,CACnBG,mBAAmB,EACnBE,gBAAiB,KAGZJ,EAAP,KAAcO,EAAd,KA+BMC,GA9B0BC,EAAAA,EAAAA,gBAAe,aAAvCC,oBA8BkCC,MAAM,GAAGC,KAAKC,MAExD,SAASC,EAAgB1B,GACD,KAAlBA,EAAMC,SACRkB,EAAS,CAAEtB,KAAM,mBAIrB,OACE,gBAAC,IAAD,CAAQ8B,MAAM,aACZ,2BAAS/B,UAAS,qBAAiD,IAA5BgB,EAAME,kBAA6B,kBAAoB,KAC5F,uBAAKlB,UAAU,aACb,2BAASA,UAAU,gBACjB,0BACGwB,EAAcQ,KAAI,SAAC5C,EAAM6C,GACxB,IAAMC,GAActD,EAAAA,EAAAA,GAAQQ,EAAKK,aAAaZ,MAExCsD,GADUF,EAAQ,GACOG,eAAe,QAAS,CACrDC,qBAAsB,EACtBC,aAAa,IAEf,OACE,sBAAIvC,IAAKmC,GACP,0BACEjC,KAAK,SACLD,UAAcgB,EAAMI,kBAAoBc,EAAc,gBAAkB,GACxEhC,QAAS,WACPqB,EAAS,CAAEtB,KAAM,iBAAkBkB,QAASe,KAE9C/B,UAAW2B,GAEVK,SAOb,uBAAKnC,UAAU,0BACZwB,EAAcQ,KAAI,SAAA5C,GACjB,IAAM8C,GAActD,EAAAA,EAAAA,GAAQQ,EAAKK,aAAaZ,MAE9C,OACE,gBAACM,EAAD,CACEY,IAAKmC,EACL9C,KAAMA,EACNC,YAAa2B,EAAMI,gBACnB5B,SAAU0C,EACV5C,aAAc,WACZiC,EAAS,CAAEtB,KAAM,iBAAkBkB,QAASe,KAE9C3C,QAAS,kBAAMgC,EAAS,CAAEtB,KAAM","sources":["webpack://standing-dreams/./src/components/helpers.js","webpack://standing-dreams/./src/components/PortfolioItem.js","webpack://standing-dreams/./src/pages/portfolio.js"],"sourcesContent":["export const slugify = text =>\n text\n .toString()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default function PortfolioItem({ item, currentItem, clickHandler, escaped, itemSlug }) {\n const { company_name, project_descripton, site_url, role, site_thumbnail } = item\n function handled(event) {\n if (event.keyCode === 27) {\n escaped()\n }\n }\n return (\n \n
\n
\n \n

{role}

\n
\n
\n
\n {site_url && (\n \n Visit Site\n \n )}\n
\n
\n {site_thumbnail.url && (\n
\n \"Hooters\"\n
\n )}\n \n )\n}\n\nPortfolioItem.propTypes = {\n item: PropTypes.object,\n currentItem: PropTypes.string,\n clickHandler: PropTypes.func,\n escaped: PropTypes.func,\n itemSlug: PropTypes.string,\n}\n","import React, { useReducer } from \"react\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport Layout from \"../components/layout\"\nimport PortfolioItem from \"../components/PortfolioItem\"\nimport { slugify } from \"../components/helpers\"\n\nfunction reducer(state, action) {\n switch (action.type) {\n case \"portfolioClick\":\n return {\n ...state,\n showPortfolioItem: action.payload !== state.activePortfolio,\n activePortfolio: action.payload === state.activePortfolio ? \"\" : action.payload,\n }\n\n case \"closePortfolio\":\n return {\n ...state,\n showPortfolioItem: false,\n activePortfolio: \"\",\n }\n\n default:\n throw new Error()\n }\n}\n\nconst Portfolio = () => {\n const initialState = {\n showPortfolioItem: false,\n activePortfolio: \"\",\n }\n\n const [state, dispatch] = useReducer(reducer, initialState)\n const { allPrismicPortfolio } = useStaticQuery(graphql`\n query PortfolioQuery {\n allPrismicPortfolio {\n nodes {\n data {\n page_heading {\n text\n }\n page_content {\n html\n }\n sites {\n company_name {\n text\n }\n role\n project_descripton {\n html\n }\n site_url\n site_thumbnail {\n alt\n url\n }\n }\n }\n }\n }\n }\n `)\n const portfolioList = allPrismicPortfolio.nodes[0].data.sites\n\n function handleOnKeyDown(event) {\n if (event.keyCode === 27) {\n dispatch({ type: \"closePortfolio\" })\n }\n }\n\n return (\n \n
\n
\n
\n
    \n {portfolioList.map((item, index) => {\n const companyName = slugify(item.company_name.text)\n const plusOne = index + 1\n const formattedIndex = plusOne.toLocaleString(\"en-US\", {\n minimumIntegerDigits: 2,\n useGrouping: false,\n })\n return (\n
  • \n {\n dispatch({ type: \"portfolioClick\", payload: companyName })\n }}\n onKeyDown={handleOnKeyDown}\n >\n {formattedIndex}\n \n
  • \n )\n })}\n
\n
\n
\n {portfolioList.map(item => {\n const companyName = slugify(item.company_name.text)\n\n return (\n {\n dispatch({ type: \"portfolioClick\", payload: companyName })\n }}\n escaped={() => dispatch({ type: \"closePortfolio\" })}\n />\n )\n })}\n
\n
\n
\n
\n )\n}\n\nexport default Portfolio\n"],"names":["slugify","text","toString","normalize","replace","toLowerCase","trim","PortfolioItem","item","currentItem","clickHandler","escaped","itemSlug","company_name","project_descripton","site_url","role","site_thumbnail","id","key","className","type","onClick","onKeyDown","event","keyCode","dangerouslySetInnerHTML","__html","html","href","target","rel","url","src","alt","reducer","state","action","showPortfolioItem","payload","activePortfolio","Error","useReducer","dispatch","portfolioList","useStaticQuery","allPrismicPortfolio","nodes","data","sites","handleOnKeyDown","title","map","index","companyName","formattedIndex","toLocaleString","minimumIntegerDigits","useGrouping"],"sourceRoot":""}