{"version":3,"file":"component---src-pages-hackshack-workshops-index-js-ce7311512d683f9473a4.js","mappings":"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","sources":["webpack://hpe-dev-portal/./src/components/hackshack/Grommet/GrommetThemeWrapper.js","webpack://hpe-dev-portal/./src/pages/hackshack/workshops/index.js","webpack://hpe-dev-portal/./src/pages/hackshack/workshops/template.js"],"sourcesContent":["import React from 'react';\nimport { Grommet } from 'grommet';\nimport { hpe } from 'grommet-theme-hpe';\nimport { deepMerge } from 'grommet/utils';\nimport PropTypes from 'prop-types';\n\nconst customHpe = deepMerge(hpe, {\n global: {\n breakpoints: {\n small: {\n value: 900,\n },\n },\n },\n});\n\nconst GrommetThemeWrapper = ({ children }) => {\n return (\n <Grommet\n className=\"Test-abc-123\"\n theme={customHpe}\n themeMode=\"dark\"\n background=\"#151d29\"\n style={{ overflowX: 'hidden' }}\n >\n {children}\n </Grommet>\n );\n};\n\nGrommetThemeWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default GrommetThemeWrapper;\n","import React from 'react';\n// eslint-disable-next-line max-len\nimport GrommetThemeWrapper from '../../../components/hackshack/Grommet/GrommetThemeWrapper';\nimport WorkshopsTemplate from './template';\n\nconst Workshops = (props) => {\n return (\n <GrommetThemeWrapper>\n <WorkshopsTemplate {...props} />\n </GrommetThemeWrapper>\n );\n};\n\nexport default Workshops;\n","/* eslint-disable max-len */\nimport React, { useEffect, useState } from 'react';\nimport { Heading, Text, Box, Image, Tab, Tabs } from 'grommet';\nimport axios from 'axios';\nimport PropTypes from 'prop-types';\nimport { Layout, ScheduleCard, CardGrid } from '../../../components/hackshack';\nimport { MainTitle } from '../../../components/hackshack/StyledComponents';\nimport AuthService from '../../../services/auth.service';\nimport { SEO } from '../../../components';\n\nconst renderScheduleCard = (workshop, i) => (\n <ScheduleCard\n avatar={workshop.replay && workshop.replay.avatar}\n desc={\n workshop.sessionType === 'Workshops-on-Demand'\n ? `${workshop.description.slice(0, 520)}`\n : `${workshop.description.slice(0, 220)}...`\n }\n id={workshop.sessionId}\n key={i}\n DBid={workshop.id}\n presenter={workshop.replay && workshop.replay.presenter}\n role={workshop.replay && workshop.replay.role}\n sessionLink={workshop.replayLink}\n sessionType={workshop.sessionType}\n title={workshop.name}\n notebook={workshop.notebook}\n location={workshop.location}\n replayId={workshop.replayId}\n popular={workshop.popular}\n duration={workshop.duration}\n />\n);\n\nconst Workshop = (props) => {\n const getWorkshopsApi = `${process.env.GATSBY_WORKSHOPCHALLENGE_API_ENDPOINT}/api/workshops?active=true`;\n const [workshops, setworkshops] = useState([]);\n const [error, setError] = useState('');\n const arr = [];\n const [index, setIndex] = useState(0);\n const onActive = (nextIndex) => setIndex(nextIndex);\n\n const latestWorkshops = workshops\n .slice()\n .sort((a, b) => {\n return new Date(b.updatedAt) - new Date(a.updatedAt);\n })\n .slice(0, 10);\n\n useEffect(() => {\n const getToken = () => {\n AuthService.login().then(\n () => {\n /* eslint-disable no-use-before-define */\n getWorkshops(AuthService.getCurrentUser().accessToken);\n /* eslint-enable no-use-before-define */\n },\n (err) => {\n console.log('Error: ', err);\n setError(\n 'Oops..something went wrong. The HPE Developer team is addressing the problem. Please try again later!',\n );\n },\n );\n };\n\n const getWorkshops = (token) => {\n axios({\n method: 'GET',\n url: getWorkshopsApi,\n headers: { 'x-access-token': token },\n })\n .then((response) => {\n // Map created\n response.data.forEach((workshop) => {\n if (workshop.sessionType === 'Workshops-on-Demand')\n arr.push({ ...workshop });\n });\n setworkshops(arr);\n })\n .catch((err) => {\n if (err.response.status === 401) {\n AuthService.login().then(() => getToken());\n } else {\n console.log('catch error', err);\n setError(\n 'Oops..something went wrong. The HPE Developer team is addressing the problem. Please try again later!',\n );\n }\n });\n };\n getToken();\n // eslint-disable-next-line\n const queryParams = new URLSearchParams(window.location.search);\n const tab = queryParams.get('activeTab');\n if (tab) setIndex(+tab);\n }, []);\n\n const { title, description, badgeImg } = props.pageContext;\n\n return (\n <Layout background=\"/img/hackshack/BackgroundImages/schedule-background.png\">\n <SEO title={title} description={description} image={badgeImg} />\n <Box style={{ minHeight: 'calc(100vh - 345px)' }}>\n <MainTitle>\n <Heading\n color=\"text-strong\"\n margin={{ top: 'none', bottom: 'small' }}\n >\n Workshops-on-Demand\n </Heading>\n </MainTitle>\n {workshops.length > 0 ? (\n <Tabs activeIndex={index} onActive={onActive} justify=\"start\">\n <Tab title={`All (${workshops.length})`}>\n <CardGrid pad={{ top: 'medium' }} key=\"all\">\n {workshops.map((workshop, i) =>renderScheduleCard(workshop, i))}\n </CardGrid>\n </Tab>\n <Tab title={`Latest (${latestWorkshops.length})`}>\n <CardGrid pad={{ top: 'medium' }} key=\"ltst\">\n {latestWorkshops.map((workshop, i) => renderScheduleCard(workshop, i))}\n </CardGrid>\n </Tab>\n <Tab title={`Popular (${workshops.filter(workshop => workshop.popular).length})`}>\n <CardGrid pad={{ top: 'medium' }} key=\"pop\">\n {workshops.map(\n (workshop, i) => workshop.popular && renderScheduleCard(workshop, i),\n )}\n </CardGrid>\n </Tab>\n <Tab title={`Open Source (${workshops.filter(workshop => workshop.category && workshop.category.includes('open source')).length})`}>\n <CardGrid pad={{ top: 'medium' }} key=\"os\">\n {workshops.map(\n (workshop, i) =>\n workshop.category &&\n workshop.category.includes('open source') &&\n renderScheduleCard(workshop, i),\n )}\n </CardGrid>\n </Tab>\n <Tab title={`HPE GreenLake (${workshops.filter(workshop => workshop.category && workshop.category.includes('hpe greenlake')).length})`}>\n <CardGrid pad={{ top: 'medium' }} key=\"hpee\">\n {workshops.map(\n (workshop, i) =>\n workshop.category &&\n workshop.category.includes('hpe greenlake') &&\n renderScheduleCard(workshop, i),\n )}\n </CardGrid>\n </Tab>\n <Tab title={`HPE Ezmeral (${workshops.filter(workshop => workshop.category && workshop.category.includes('hpe ezmeral')).length})`}>\n <CardGrid pad={{ top: 'medium' }} key=\"hpee\">\n {workshops.map(\n (workshop, i) =>\n workshop.category &&\n workshop.category.includes('hpe ezmeral') &&\n renderScheduleCard(workshop, i),\n )}\n </CardGrid>\n </Tab>\n <Tab title={`Infrastructure (${workshops.filter(workshop => workshop.category && workshop.category.includes('infrastructure')).length})`}>\n <CardGrid pad={{ top: 'medium' }} key=\"ifa\">\n {workshops.map(\n (workshop, i) =>\n workshop.category &&\n workshop.category.includes('infrastructure') &&\n renderScheduleCard(workshop, i),\n )}\n </CardGrid>\n </Tab>\n </Tabs>\n ) : (\n <Box\n pad=\"small\"\n justify=\"center\"\n margin={{ top: 'medium' }}\n direction=\"column\"\n // background=\"status-critical\"\n >\n {error ? (\n <>\n <Text size=\"large\" color=\"status-critical\" alignSelf=\"center\">\n {error}\n </Text>\n <Image\n alt=\"gremlin rockin\"\n src=\"/img/hackshack/gremlin-rockin.svg\"\n />\n </>\n ) : (\n <Box height=\"medium\" />\n )}\n </Box>\n )}\n </Box>\n </Layout>\n );\n};\n\nWorkshop.propTypes = {\n pageContext: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n badgeImg: PropTypes.string,\n }),\n};\n\nexport default Workshop;\n"],"names":["customHpe","deepMerge","hpe","global","breakpoints","small","value","_ref","children","React","Grommet","className","theme","themeMode","background","style","overflowX","props","GrommetThemeWrapper","WorkshopsTemplate","renderScheduleCard","workshop","i","ScheduleCard","avatar","replay","desc","sessionType","description","slice","id","sessionId","key","DBid","presenter","role","sessionLink","replayLink","title","name","notebook","location","replayId","popular","duration","workshops","setworkshops","useState","error","setError","arr","index","setIndex","latestWorkshops","sort","a","b","Date","updatedAt","useEffect","getToken","AuthService","login","then","getWorkshops","getCurrentUser","accessToken","err","console","log","token","axios","method","url","process","headers","response","data","forEach","push","catch","status","tab","URLSearchParams","window","search","get","badgeImg","pageContext","Layout","SEO","image","Box","minHeight","MainTitle","Heading","color","margin","top","bottom","length","Tabs","activeIndex","onActive","nextIndex","justify","Tab","CardGrid","pad","map","filter","category","includes","direction","Text","size","alignSelf","Image","alt","src","height"],"sourceRoot":""}