{"version":3,"file":"MemberClubPage.cc25374c.mjs","mappings":"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","sources":["webpack://mfa-corporate/./src/js/components/MemberClubPage/style.scss","webpack://mfa-corporate/./src/js/components/MemberClubPage/memberClubPage.jsx","webpack://mfa-corporate/./src/js/components/MemberClubPage/index.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"banner\":\"y6ldE\",\"track\":\"Z3PLc\",\"textWrapper\":\"X8l2h\",\"text\":\"smQ5Q\",\"title\":\"xSbJa\",\"bannerTitle\":\"yTC7i\",\"thinLine\":\"X8KmI\",\"container\":\"jgwzd\",\"content\":\"qIi6r\",\"aside\":\"Sdhwi\",\"contactFormTitle\":\"SfIBR\",\"grid\":\"a45DZ\",\"gridItem\":\"QdqrF\",\"gridItemTitle\":\"lngls\",\"gridItemImage\":\"O4MrZ\",\"socialLinks\":\"RXNKM\",\"social\":\"YKKPc\",\"socialItem\":\"BchcP\",\"matchCentreItem\":\"S3K0V\",\"socialLink\":\"nNoKf\",\"details\":\"HncS8\",\"gridItemDetailsItem\":\"GTKdE\",\"matchCentreLink\":\"q0EAD\",\"skeletonGridItem\":\"HIkM5\",\"loading\":\"nZoAv\"};","import { format, parseISO } from \"date-fns\";\nimport * as React from \"react\";\nimport GliderComponent from \"react-glider\";\nimport { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\";\nimport { useLocation } from \"react-router-dom\";\n\nimport Breadcrumbs from \"../Breadcrumbs\";\nimport ContactForm from \"../ContactForm\";\nimport Downloads from \"../Downloads\";\nimport FAQs from \"../FAQs\";\nimport FullWidthBanner from \"../FullWidthBanner\";\nimport Gallery from \"../Gallery\";\nimport Navigation from \"../Navigation\";\nimport Page from \"../Page\";\nimport SubNavigation from \"../SubNavigation\";\nimport DEFAULT_IMAGE from \"./img/default-image.png\";\nimport styles from \"./style.scss\";\n\nconst LABELS = {\n  MATCHCENTRE: \"Matchcentre\",\n};\n\nfunction MemberClubPage({ onGetPage, isReady, items, onGetItems }) {\n  const { pathname } = useLocation();\n  const getPage = React.useCallback(onGetPage, [onGetPage]);\n  const [isTrackLoaded, setIsTrackLoaded] = React.useState(false);\n\n  React.useEffect(() => {\n    if (!isReady) {\n      onGetItems();\n    }\n  }, [onGetItems, isReady]);\n\n  return (\n    <Page path={pathname} onGetPage={getPage} scrollToTop>\n      {({\n        page: {\n          html,\n          title,\n          banners,\n          gallery,\n          subNav,\n          downloads,\n          faqs,\n          footerHtml,\n          contactForm,\n          showBreadcrumbs,\n        },\n        isReady: isPageReady,\n      }) => {\n        if (!isPageReady) {\n          return null;\n        }\n\n        return (\n          <section>\n            {banners && Boolean(banners.length) && (\n              <div className={styles.banner}>\n                <GliderComponent\n                  hasDots={banners.length > 1}\n                  hasArrows={false}\n                  slidesToShow={1}\n                  duration={0.5}\n                  skipTrack\n                  onLoad={() => setIsTrackLoaded(true)}\n                >\n                  <div\n                    className={`${\n                      isTrackLoaded ? \"\" : styles.track\n                    } glider-track`}\n                  >\n                    {banners.map(\n                      (n, index) =>\n                        n.images && (\n                          <FullWidthBanner\n                            key={n.id}\n                            lazyload={index > 0}\n                            media={n.images}\n                            reducedHeight\n                          />\n                        )\n                    )}\n                  </div>\n                </GliderComponent>\n                <div className={styles.textWrapper}>\n                  <div\n                    className={styles.text}\n                    style={{ color: banners[0].color }}\n                  >\n                    <h1 className={`${styles.title} ${styles.bannerTitle}`}>\n                      {title}\n                    </h1>\n                    {showBreadcrumbs && (\n                      <Breadcrumbs url={pathname} color={banners[0].color} />\n                    )}\n                  </div>\n                </div>\n              </div>\n            )}\n            {subNav && (\n              <Navigation type={subNav}>\n                {({ navigation }) => <SubNavigation navigation={navigation} />}\n              </Navigation>\n            )}\n            <div className={styles.container}>\n              <div className={styles.content}>\n                {!banners && showBreadcrumbs && <Breadcrumbs url={pathname} />}\n                {!banners && <h1 className={styles.title}>{title}</h1>}\n                {gallery && Boolean(gallery.length) && (\n                  <>\n                    <Gallery data={gallery} />\n                    <div className={styles.thinLine} />\n                  </>\n                )}\n                <div\n                  dangerouslySetInnerHTML={{ __html: html }}\n                  className=\"richtext\"\n                />\n                <div className={styles.grid}>\n                  {isReady\n                    ? items.map((n, index) => (\n                        <div key={n.id} className={styles.gridItem}>\n                          {n.imageUrl ? (\n                            <img\n                              src={n.imageUrl}\n                              alt=\"\"\n                              loading={index > 1 ? \"lazy\" : \"eager\"}\n                              width=\"256\"\n                              height=\"256\"\n                              className={styles.gridItemImage}\n                            />\n                          ) : (\n                            <img\n                              src={DEFAULT_IMAGE}\n                              alt=\"\"\n                              loading={index > 1 ? \"lazy\" : \"eager\"}\n                              width=\"256\"\n                              height=\"256\"\n                              className={styles.gridItemImage}\n                            />\n                          )}\n                          <div className={styles.details}>\n                            <div>\n                              <span className={styles.gridItemTitle}>\n                                {n.title}\n                              </span>\n                              {n.founded && (\n                                <span className={styles.gridItemDetailsItem}>\n                                  Est. {format(parseISO(n.founded), \"yyyy\")}\n                                </span>\n                              )}\n                              {n.president && (\n                                <span className={styles.gridItemDetailsItem}>\n                                  President: {n.president}\n                                </span>\n                              )}\n                              {n.secretary && (\n                                <span className={styles.gridItemDetailsItem}>\n                                  Secretary General: {n.secretary}\n                                </span>\n                              )}\n                            </div>\n                            {(Boolean(n.socialLinks?.length) ||\n                              Boolean(n.websiteUrl) ||\n                              Boolean(n.url)) && (\n                              <div className={styles.socialLinks}>\n                                <ul className={styles.social}>\n                                  {n.socialLinks.map((m) => (\n                                    <li\n                                      key={m.id}\n                                      className={styles.socialItem}\n                                    >\n                                      <a\n                                        href={m.url}\n                                        title={m.platform.toLowerCase()}\n                                        target=\"_blank\"\n                                        rel=\"noreferrer\"\n                                        className={styles.socialLink}\n                                      >\n                                        {n.title}\n                                      </a>\n                                    </li>\n                                  ))}\n                                  {n.websiteUrl && (\n                                    <li className={styles.socialItem}>\n                                      <a\n                                        href={n.websiteUrl}\n                                        title=\"website\"\n                                        target=\"_blank\"\n                                        rel=\"noreferrer\"\n                                        className={styles.socialLink}\n                                      >\n                                        website\n                                      </a>\n                                    </li>\n                                  )}\n                                  {n.url && (\n                                    <li\n                                      className={`${styles.socialItem} ${styles.matchCentreItem}`}\n                                    >\n                                      <a\n                                        href={n.url}\n                                        className={styles.matchCentreLink}\n                                        target=\"_blank\"\n                                        rel=\"noreferrer\"\n                                      >\n                                        {LABELS.MATCHCENTRE}\n                                      </a>\n                                    </li>\n                                  )}\n                                </ul>\n                              </div>\n                            )}\n                          </div>\n                        </div>\n                      ))\n                    : [...Array(4)].map((n, index) => (\n                        <div\n                          // eslint-disable-next-line react/no-array-index-key\n                          key={index}\n                          className={styles.skeletonGridItem}\n                        />\n                      ))}\n                </div>\n                <div\n                  dangerouslySetInnerHTML={{ __html: footerHtml }}\n                  className=\"richtext\"\n                />\n                {downloads && Boolean(downloads.length) && (\n                  <Downloads downloads={downloads} />\n                )}\n                {faqs && Boolean(faqs.length) && <FAQs faqs={faqs} />}\n              </div>\n              {contactForm && (\n                <div className={styles.aside}>\n                  <h2 className={styles.contactFormTitle}>\n                    {contactForm.title}\n                  </h2>\n                  <GoogleReCaptchaProvider reCaptchaKey={RECAPTCHA_SITE_KEY}>\n                    <ContactForm\n                      id={contactForm.id}\n                      type={contactForm.type}\n                      fields={contactForm.fields}\n                      allowAnonymous={contactForm.allowAnonymous}\n                    />\n                  </GoogleReCaptchaProvider>\n                </div>\n              )}\n            </div>\n          </section>\n        );\n      }}\n    </Page>\n  );\n}\n\nexport default MemberClubPage;\n","import { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { createStructuredSelector } from \"reselect\";\n\nimport reducerRegistry from \"../../reducerRegistry\";\nimport { getPage } from \"../Page/actions\";\nimport { getItems } from \"./actions\";\nimport { REDUCER_NAME } from \"./constants\";\nimport Component from \"./memberClubPage\";\nimport reducer, { selectIsError, selectIsReady, selectItems } from \"./reducer\";\n\nconst mapDispatchToProps = (dispatch) => ({\n  onGetPage: (data) => dispatch(getPage(data)),\n  onGetItems: (data) => dispatch(getItems(data)),\n});\n\nconst mapStateToProps = createStructuredSelector({\n  isReady: selectIsReady,\n  isError: selectIsError,\n  items: selectItems,\n});\n\nconst MemberClubPage = compose(connect(mapStateToProps, mapDispatchToProps))(\n  Component\n);\n\nexport default MemberClubPage;\n\nreducerRegistry.register(REDUCER_NAME, reducer);\n"],"names":["LABELS","onGetPage","isReady","items","onGetItems","_Breadcrumbs","pathname","useLocation","getPage","React","isTrackLoaded","setIsTrackLoaded","_jsx","Page","path","scrollToTop","page","html","title","banners","gallery","subNav","downloads","faqs","footerHtml","contactForm","showBreadcrumbs","isPageReady","Boolean","length","className","styles","GliderComponent","hasDots","hasArrows","slidesToShow","duration","skipTrack","onLoad","map","n","index","images","FullWidthBanner","lazyload","media","reducedHeight","id","style","color","Breadcrumbs","url","Navigation","type","navigation","SubNavigation","Gallery","data","dangerouslySetInnerHTML","__html","imageUrl","src","alt","loading","width","height","DEFAULT_IMAGE","founded","format","parseISO","president","secretary","socialLinks","websiteUrl","m","href","platform","toLowerCase","target","rel","Array","Downloads","FAQs","GoogleReCaptchaProvider","reCaptchaKey","RECAPTCHA_SITE_KEY","ContactForm","fields","allowAnonymous","mapStateToProps","createStructuredSelector","selectIsReady","isError","selectIsError","selectItems","compose","connect","dispatch","getItems","Component","reducerRegistry","register","REDUCER_NAME","reducer"],"sourceRoot":""}