{"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":""}