{"version":3,"file":"index-jhtOWlw1.js","sources":["../../src/scripts/modules/react-modules/FeaturedEventsModuleGraphQL/FeaturedEvents.tsx","../../src/scripts/modules/react-modules/FeaturedEventsModuleGraphQL/index.tsx"],"sourcesContent":["import React from 'react';\nimport { GraphQLClient } from 'graphql-request';\nimport { useQuery } from '@tanstack/react-query';\nimport {\n  GetFeaturedEventsDocument,\n  GetFeaturedEventsNoTagDocument,\n  GetFeaturedEventsQuery,\n  GetFeaturedEventsNoTagQuery\n} from '../../../../codegenGenerated/optigraphql/generated';\nimport Loader from '../Loader';\nimport { getEnvGQLUrl } from '../../../helpers';\nimport { getDateDayNumber, getDateThreeLetterMonth } from '../../../helpers/getDateLetter';\n\nexport type FeaturedEventsProps = {\n  title: string;\n  tag: string;\n};\n\nexport type Facet = {\n  AllCategoriesIds: string;\n  Categories: {\n    Id: string;\n    Title: string;\n  }[];\n};\n\nexport type FeatureEvent = {\n  EventTitle: string;\n  Url: string;\n  InitialDateEvent: string;\n  EndDateEvent: string;\n  EventTypeFacet: Facet;\n  EventLocationFacet: Facet;\n  EventAudienceFacet: Facet;\n};\n\nconst useGetFeaturedEvents = (endpoint: string, tag: string) => {\n  const graphQLClient = new GraphQLClient(endpoint);\n  const browsersDateISO = new Date().toISOString();\n\n  const { isError, error, isFetching, data } = useQuery({\n    queryKey: ['GetFeaturedEvents', { tag: tag }],\n    queryFn: async () =>\n      tag\n        ? (graphQLClient.request(GetFeaturedEventsDocument, {\n            tag: tag,\n            date: browsersDateISO\n          }) as GetFeaturedEventsQuery)\n        : (graphQLClient.request(GetFeaturedEventsNoTagDocument, {\n            date: browsersDateISO\n          }) as GetFeaturedEventsNoTagQuery),\n    refetchOnWindowFocus: false,\n    networkMode: 'always'\n  });\n\n  return {\n    status: isError ? 'error' : isFetching ? 'loading' : 'success',\n    error: error as Error,\n    results: data && data.EventDetailPage?.items ? data.EventDetailPage.items : []\n  };\n};\n\nexport const FeaturedEvents = ({ tag }: FeaturedEventsProps) => {\n  const { status, results } = useGetFeaturedEvents(getEnvGQLUrl(), tag);\n\n  if (status === 'loading') {\n    return <Loader />;\n  }\n\n  const getEventType = (item: FeatureEvent) => {\n    let eventTypeName = '';\n\n    if (!item) {\n      return;\n    }\n\n    const { EventAudienceFacet, EventLocationFacet, EventTypeFacet } = item;\n\n    if (\n      EventLocationFacet &&\n      EventLocationFacet.Categories[0] &&\n      EventLocationFacet.Categories[0].Id === tag\n    ) {\n      eventTypeName = EventLocationFacet.Categories[0].Title;\n    }\n\n    if (\n      EventAudienceFacet &&\n      EventAudienceFacet.Categories[0] &&\n      EventAudienceFacet.Categories[0].Id === tag\n    ) {\n      eventTypeName = EventAudienceFacet.Categories[0].Title;\n    }\n\n    if (\n      (EventTypeFacet && EventTypeFacet.Categories[0] && EventTypeFacet.Categories[0].Id === tag) ||\n      !tag\n    ) {\n      eventTypeName = EventTypeFacet.Categories[0].Title;\n    }\n\n    return eventTypeName;\n  };\n\n  return (\n    <>\n      {status === 'error' && <></>}\n      {results.length === 0 && <></>}\n      {results.length > 0 && (\n        <>\n          {results.map(result => (\n            <a\n              href={result?.Url ? result.Url : '#'}\n              className=\"link featured-event-card\"\n              key={result?._id}\n            >\n              <div className=\"featured-event-card__info\">\n                <h3 className=\"featured-event-card__even-title\">\n                  <span className=\"featured-event-card__even-title-label\">\n                    {result?.EventTitle}\n                  </span>\n                  <div className=\"link-decorator\">\n                    <span className=\"link-decorator-inner\"></span>\n                    <span className=\"link-decorator-outer\"></span>\n                  </div>\n                </h3>\n\n                <p className=\"featured-event-card__event-type\">\n                  {(result?.EventLocationFacet ||\n                    result?.EventAudienceFacet ||\n                    result?.EventLocationFacet) && (\n                    <span>{getEventType(result as FeatureEvent)}</span>\n                  )}\n                </p>\n              </div>\n              {result?.InitialDateEvent && result?.EndDateEvent && (\n                <div className=\"featured-event-card__date\">\n                  <p className=\"featured-event-card__date-month\">\n                    {getDateThreeLetterMonth(result?.InitialDateEvent)}\n                    {getDateThreeLetterMonth(result?.InitialDateEvent) !==\n                      getDateThreeLetterMonth(result?.EndDateEvent) &&\n                      `-${getDateThreeLetterMonth(result?.EndDateEvent)}`}\n                  </p>\n                  <p className=\"featured-event-card__date-days\">\n                    {getDateDayNumber(result?.InitialDateEvent)}\n                    {(getDateDayNumber(result?.InitialDateEvent) !==\n                      getDateDayNumber(result?.EndDateEvent) ||\n                      getDateThreeLetterMonth(result?.InitialDateEvent) !==\n                        getDateThreeLetterMonth(result?.EndDateEvent)) &&\n                      `-${getDateDayNumber(result?.EndDateEvent)}`}\n                  </p>\n                </div>\n              )}\n              {result?.InitialDateEvent && !result?.EndDateEvent && (\n                <div className=\"featured-event-card__date\">\n                  <p className=\"featured-event-card__date-month\">\n                    {getDateThreeLetterMonth(result?.InitialDateEvent)}\n                  </p>\n                  <p className=\"featured-event-card__date-days\">\n                    {getDateDayNumber(result?.InitialDateEvent)}\n                  </p>\n                </div>\n              )}\n            </a>\n          ))}\n        </>\n      )}\n    </>\n  );\n};\n","import React from 'react';\r\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\r\nimport { FeaturedEvents, FeaturedEventsProps } from './FeaturedEvents';\r\nconst defaultQueryClient = new QueryClient();\r\n\r\nconst FeaturedEventsModule = ({ title, tag }: FeaturedEventsProps) => {\r\n  return (\r\n    <QueryClientProvider client={defaultQueryClient}>\r\n      <FeaturedEvents title={title} tag={tag} />\r\n    </QueryClientProvider>\r\n  );\r\n};\r\n\r\nexport default FeaturedEventsModule;\r\n"],"names":["useGetFeaturedEvents","endpoint","tag","graphQLClient","GraphQLClient","browsersDateISO","isError","error","isFetching","data","useQuery","GetFeaturedEventsDocument","GetFeaturedEventsNoTagDocument","_a","FeaturedEvents","status","results","getEnvGQLUrl","Loader","getEventType","item","eventTypeName","EventAudienceFacet","EventLocationFacet","EventTypeFacet","React","result","getDateThreeLetterMonth","getDateDayNumber","defaultQueryClient","QueryClient","FeaturedEventsModule","title","QueryClientProvider"],"mappings":"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"}