{"version":3,"file":"static/components/6404-db1a582fa2062d1fc112.mjs?cv=7","mappings":"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","sources":["webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/BottomBar/BottomBar.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/BottomBar/index.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/allPages/FeedbackButton.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/apiHook.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/authentication/hooks.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/OpenGraphTags.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/presidentielle2027/components/SoutienPage/SoutienProgressBar.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/presidentielle2027/components/SoutienPage/soutien.api.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/hooks/useAppLoader.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/errorPage/ErrorPage.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Redirect.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/notFoundPage/NotFoundPage.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/CounterBadge.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/useTracking.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/ConnectivityWarning.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Footer/index.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/presidentielle2027/components/SoutienPage/SoutienBanner.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Layout/MobileLayout.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/Announcement.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Announcements.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/FacebookLoginAd.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/SideBar/SecondaryMenu.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/SideBar/SideBar.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/SideBar/index.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Layout/DesktopLayout.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Layout/Layout.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Layout/index.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/ErrorBoundary.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/activity/components/BannerAnnouncements/useBannerAnnouncements.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/Spinner.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/activity/components/BannerAnnouncements/BannerAnnouncement.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Page.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/ModalMissingNewsletter.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Router.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/activity/components/common/hooks.js"],"sourcesContent":["import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport CONFIG from \"@agir/front/app/Navigation/navigation.config\";\n\nimport CounterBadge from \"@agir/front/app/Navigation/CounterBadge\";\nimport Link from \"@agir/front/app/Link\";\nimport { RawFeatherIcon } from \"@agir/front/genericComponents/FeatherIcon\";\n\nconst Title = styled.span``;\nconst MenuLink = styled(Link)`\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  text-align: center;\n  height: 70px;\n  font-size: 11px;\n  font-weight: 500;\n  color: ${({ $active, theme }) => ($active ? theme.primary500 : \"inherit\")};\n  border-top: 2px solid\n    ${({ $active, theme }) => ($active ? theme.primary500 : \"transparent\")};\n\n  &:hover,\n  &:focus {\n    color: ${({ $active, theme }) => ($active ? theme.primary500 : \"inherit\")};\n    text-decoration: none;\n  }\n\n  ${RawFeatherIcon} {\n    display: block;\n  }\n\n  ${Title} {\n    font-size: 10px;\n    overflow: hidden;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n\n    @media (max-width: 340px) {\n      font-size: 8px;\n    }\n  }\n\n  ${CounterBadge} {\n    position: absolute;\n    top: 7px;\n    right: 14px;\n\n    @media (max-width: 340px) {\n      top: 9px;\n    }\n  }\n`;\n\nconst StyledBottomBar = styled.nav`\n  background-color: ${(props) => props.theme.background0};\n  position: fixed;\n  bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom));\n  left: 0;\n  right: 0;\n  box-shadow: inset 0 1px 0 ${(props) => props.theme.text50};\n  height: var(--bottom-bar-height);\n  padding: 0 0.5rem;\n  z-index: ${(props) => props.theme.zindexBottomBar};\n  isolation: isolate;\n  overflow: hidden;\n\n  ul {\n    padding: 0;\n    max-width: 600px;\n    margin: auto;\n    display: flex;\n    justify-content: space-around;\n    list-style: none;\n\n    li {\n      flex: 1 1 auto;\n      max-width: 70px;\n      min-width: 1px;\n    }\n  }\n`;\n\nconst LINKS = CONFIG.menuLinks.filter(({ mobile }) => !!mobile);\n\nconst BottomBar = ({ active, unreadMessageCount, unreadActivityCount }) => (\n  <StyledBottomBar>\n    <ul>\n      {LINKS.map((link) => (\n        <li key={link.id}>\n          <MenuLink route={link.route} $active={active === link.id}>\n            {link.unreadMessageBadge && (\n              <CounterBadge value={unreadMessageCount} />\n            )}\n            {link.unreadActivityBadge && (\n              <CounterBadge value={unreadActivityCount} />\n            )}\n            {link.icon?.includes(\"fa-\") ? (\n              <i\n                className={`fa-regular ${link.icon}`}\n                style={{\n                  fontSize: \"2.2em\",\n                  fontWeight: 300,\n                  paddingBottom: \"2px\",\n                }}\n              />\n            ) : (\n              <RawFeatherIcon name={link.icon} inline />\n            )}\n            <Title>{link.title}</Title>\n          </MenuLink>\n        </li>\n      ))}\n    </ul>\n  </StyledBottomBar>\n);\n\nBottomBar.propTypes = {\n  active: PropTypes.string,\n  unreadActivityCount: PropTypes.number,\n  unreadMessageCount: PropTypes.number,\n};\nexport default BottomBar;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useUnreadMessageCount } from \"@agir/msgs/common/hooks\";\nimport { useUnreadActivityCount } from \"@agir/activity/common/hooks\";\n\nimport BottomBar from \"./BottomBar\";\n\nconst ConnectedBottomBar = (props) => {\n  const unreadActivityCount = useUnreadActivityCount();\n  const unreadMessageCount = useUnreadMessageCount();\n\n  return (\n    <BottomBar\n      {...props}\n      unreadActivityCount={unreadActivityCount}\n      unreadMessageCount={unreadMessageCount}\n    />\n  );\n};\n\nexport default ConnectedBottomBar;\n","import React from \"react\";\n\nimport { useSelector } from \"@agir/front/globalContext/GlobalContext\";\nimport { getRoutes } from \"@agir/front/globalContext/reducers\";\nimport { useMobileApp } from \"@agir/front/app/hooks/useMobileApp\";\n\nimport background from \"./life-ring.svg\";\nimport ConnectedFloatButton from \"@agir/front/allPages/FloatButton\";\n\nfunction FeedbackButton() {\n  const routes = useSelector(getRoutes);\n  const href = routes && routes.feedbackForm;\n  const { isMobileApp } = useMobileApp();\n\n  return (\n    <ConnectedFloatButton\n      background={background}\n      href={href}\n      content={\n        <>\n          <strong>Aidez-nous !</strong>\n          {isMobileApp ? (\n            <span>\n              Donnez votre avis sur l'application Action Populaire&nbsp;→\n            </span>\n          ) : (\n            <span>Donnez votre avis sur le site Action Populaire&nbsp;→</span>\n          )}\n        </>\n      }\n    />\n  );\n}\n\nexport default FeedbackButton;\n","import React, { useState } from \"react\";\n\nexport const useMutate = (funcApi, onSuccess) => {\n  const [error, setError] = useState();\n  const [data, setData] = useState();\n  const [isLoading, setIsLoading] = useState(false);\n\n  async function mutate(...args) {\n    setIsLoading(true);\n\n    let statusCode = 0;\n    try {\n      const response = await funcApi(...args);\n      setError(undefined);\n      setData(response.data);\n      onSuccess?.();\n      return [true, response.status];\n    } catch (e) {\n      if (e.response?.status === 500) {\n        setError({\n          error: \"Une erreur est survenue, merci de réessayer plus tard\",\n        });\n      } else {\n        setError(e.response && e.response.data) || e.message;\n      }\n      statusCode = e.response.status;\n    } finally {\n      setIsLoading(false);\n    }\n\n    return [false, statusCode];\n  }\n\n  return { mutate, error, data, isLoading };\n};\n","import { useEffect, useCallback, useState } from \"react\";\n\nimport { useSelector } from \"@agir/front/globalContext/GlobalContext\";\nimport * as selector from \"@agir/front/globalContext/reducers\";\n\nimport {\n  getBookmarkedEmails,\n  bookmarkEmails,\n  bookmarkEmail,\n  AUTHENTICATION,\n} from \"./common\";\n\nexport const useAuthentication = (route) => {\n  const isSessionLoaded = useSelector(selector.getIsSessionLoaded);\n  const authentication = useSelector(selector.getAuthentication);\n\n  if (route.neededAuthentication === AUTHENTICATION.NONE) {\n    return true;\n  }\n\n  if (!isSessionLoaded) {\n    return null;\n  }\n\n  return authentication >= route.neededAuthentication;\n};\n\nexport const useBookmarkedEmails = () => {\n  const isSessionLoaded = useSelector(selector.getIsSessionLoaded);\n  const legacyBookmarkedEmails = useSelector(selector.getBookmarkedEmails);\n  const [bookmarkedEmails, setBookmarkedEmails] = useState(\n    getBookmarkedEmails(),\n  );\n\n  useEffect(() => {\n    if (\n      isSessionLoaded &&\n      legacyBookmarkedEmails.length > 0 &&\n      bookmarkedEmails.length === 0\n    ) {\n      setBookmarkedEmails(bookmarkEmails(legacyBookmarkedEmails));\n    }\n  }, [bookmarkedEmails.length, isSessionLoaded, legacyBookmarkedEmails]);\n\n  const addBookmarkedEmail = useCallback((email) => {\n    setBookmarkedEmails(bookmarkEmail(email));\n  }, []);\n\n  return [bookmarkedEmails, addBookmarkedEmail];\n};\n","import PropTypes from \"prop-types\";\nimport React, { useEffect } from \"react\";\nimport Helmet from \"react-helmet\";\n\nimport { useDispatch } from \"@agir/front/globalContext/GlobalContext\";\nimport { setPageTitle } from \"@agir/front/globalContext/actions\";\n\nconst DEFAULT_TYPE = \"website\";\nconst DEFAULT_TITLE = \"Action Populaire\";\nconst DEFAULT_DESCRIPTION =\n  \"Action Populaire est le réseau social d'action de la France insoumise.\";\nconst DEFAULT_URL = \"https://actionpopulaire.fr/\";\nconst DEFAULT_IMAGE = \"/static/front/assets/og_image_NSP.jpg\";\n\nexport const usePageTitle = (title) => {\n  const dispatch = useDispatch();\n\n  useEffect(() => {\n    title && dispatch(setPageTitle(title));\n  }, [dispatch, title]);\n};\n\nconst OpenGraphTags = (props) => {\n  const {\n    title,\n    description = DEFAULT_DESCRIPTION,\n    type = DEFAULT_TYPE,\n    url = DEFAULT_URL,\n    image = DEFAULT_IMAGE,\n  } = props;\n\n  const pageTitle = title ? `${title} — ${DEFAULT_TITLE}` : DEFAULT_TITLE;\n\n  return (\n    <Helmet title={pageTitle}>\n      <meta property=\"og:locale\" content=\"fr_FR\" />\n      <meta property=\"og:site_name\" content=\"Action Populaire\" />\n      <meta property=\"fb:app\" content=\"399717914004198\" />\n      <meta name=\"twitter:card\" content=\"summary_large_image\" />\n\n      <meta name=\"title\" content={pageTitle} />\n      <meta property=\"og:title\" content={pageTitle} />\n      <meta name=\"twitter:title\" content={pageTitle} />\n\n      <meta name=\"description\" content={description} />\n      <meta property=\"og:description\" content={description} />\n      <meta name=\"twitter:description\" content={description} />\n\n      <meta property=\"og:url\" content={url} />\n\n      <meta property=\"og:type\" content={type} />\n\n      <meta property=\"og:image\" content={image} />\n      <meta property=\"og:image:secure_url\" content={image} />\n      <meta name=\"twitter:image\" content={image} />\n    </Helmet>\n  );\n};\n\nOpenGraphTags.propTypes = {\n  type: PropTypes.string,\n  title: PropTypes.string,\n  description: PropTypes.string,\n  url: PropTypes.string,\n  image: PropTypes.string,\n};\n\nexport default OpenGraphTags;\n","import React, { useEffect, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { useSoutienCounter } from \"@agir/presidentielle2027/SoutienPage/soutien.api\";\n\nconst barHeight = 30;\n\nexport const SoutienProgressBarContainer = styled.div`\n  margin-top: 1.2rem;\n\n  width: 100%;\n  p {\n    text-align: center;\n  }\n`;\n\nconst CounterContainer = styled.div`\n  text-align: center;\n  color: ${({ theme }) => theme.white};\n`;\n\nconst ProgressBar = styled.div`\n  width: 100%;\n  height: ${barHeight + 1}px;\n  border: 1px solid ${({ theme }) => theme.soutienPrimary};\n  background-color: ${({ theme }) => theme.background0};\n  border-radius: 10px;\n\n  position: relative;\n  box-shadow: -3px -4px 0 1px ${({ theme }) => theme.soutienLight};\n`;\n\nconst ProgressBarStep = styled.div`\n  height: ${barHeight}px;\n  width: 10px;\n  border-top-left-radius: 9px;\n  border-bottom-left-radius: 9px;\n\n  background-color: ${({ theme }) => theme.soutienPrimary};\n  transition: width 0.4s ease-in-out;\n`;\n\nconst goal = 300000;\n\nexport default function SoutienProgressBar({ title }) {\n  const { data: soutienCounter } = useSoutienCounter();\n  const barStepRef = useRef();\n\n  useEffect(() => {\n    computeProgressBarStep(soutienCounter?.count ?? 0);\n  }, [soutienCounter]);\n\n  function computeProgressBarStep(count) {\n    let currentPercent = Math.ceil((count / goal) * 100);\n\n    const barStep = barStepRef.current;\n    if (barStep) {\n      if (currentPercent > 100) {\n        currentPercent = 100;\n      }\n      barStep.style.width = `${currentPercent}%`;\n      if (currentPercent > 95) {\n        barStep.style.borderBottomRightRadius = \"9px\";\n        barStep.style.borderTopRightRadius = \"9px\";\n      }\n    } else {\n      console.error(\"Cannot find bar step div\");\n    }\n  }\n\n  return (\n    <SoutienProgressBarContainer>\n      {title && title}\n      {!title && (\n        <p>\n          <b>Valider votre signature</b> pour rejoindre les{\" \"}\n          <b>{soutienCounter?.count ?? 0} soutiens</b> à la candidature de\n          Jean-Luc Mélenchon\n        </p>\n      )}\n      <CounterContainer>\n        <ProgressBar>\n          <ProgressBarStep ref={barStepRef} />\n        </ProgressBar>\n      </CounterContainer>\n    </SoutienProgressBarContainer>\n  );\n}\n","import axios from \"@agir/lib/utils/axios\";\nimport useSWR from \"swr\";\n\nexport const postFinalizeCode = (code) =>\n  axios.post(\"/api/soutien/f/\", { code });\n\nexport const useSoutienCounter = (opts) =>\n  useSWR(\"/api/soutien/count/\", { refreshInterval: 2500 });\n\nexport const initializeValidation = async (formData) =>\n  axios.post(`/api/soutien/validation/`, formData);\n\nexport const postSoutienData = async (formData, turnstileToken) =>\n  axios.post(`/api/soutien/initialiser/`, formData, {\n    headers: {\n      \"cf-turnstile-response\": turnstileToken,\n    },\n  });\n\nexport const finalizeSoutien = async (\n  verificationCode,\n  operationToken,\n  turnstileToken,\n) =>\n  axios.post(\n    \"/api/soutien/finaliser/\",\n    { verificationCode, operationToken },\n    {\n      headers: {\n        \"cf-turnstile-response\": turnstileToken,\n      },\n    },\n  );\n","import { useState, useEffect } from \"react\";\n\n/**\n * Custom React hook to hide the application loader\n * @param  {Boolean} [isReady=true]               whether the loader can be hidden or not\n */\n\nexport const useAppLoader = (isReady = true) => {\n  const [loader, setLoader] = useState(\n    isReady ? document.getElementById(\"app_loader\") : null\n  );\n\n  useEffect(() => {\n    isReady !== null && setLoader(document.getElementById(\"app_loader\"));\n  }, [isReady]);\n\n  useEffect(() => {\n    if (!loader) {\n      return;\n    }\n\n    loader.addEventListener(\"transitionend\", () => {\n      const loader = document.getElementById(\"app_loader\");\n      loader && loader.remove();\n    });\n    loader.style.opacity = \"0\";\n    loader.style.zIndex = -1;\n\n    setLoader(null);\n  }, [loader]);\n};\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { useAppLoader } from \"@agir/front/app/hooks/useAppLoader\";\n\nimport Button from \"@agir/front/genericComponents/Button\";\nimport Link from \"@agir/front/app/Link\";\nimport { RawFeatherIcon } from \"@agir/front/genericComponents/FeatherIcon\";\nimport Spacer from \"@agir/front/genericComponents/Spacer\";\nimport TopBar from \"@agir/front/app/Navigation/TopBar\";\n\nimport background from \"@agir/front/genericComponents/images/illustration-404.svg\";\n\nconst StyledIcon = styled.div`\n  width: 3.5rem;\n  height: 3.5rem;\n  border-radius: 3.5rem;\n  font-size: 2rem;\n  background-color: ${(props) => props.theme.secondary500};\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n  font-weight: 500;\n`;\n\nconst StyledContainer = styled.div`\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  min-height: 100vh;\n  position: relative;\n  overflow: auto;\n  background-image: url(\"${background}\");\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 1.5rem 1rem;\n\n  h2 {\n    text-align: center;\n    font-size: 1.5rem;\n  }\n\n  p {\n    width: 100%;\n    max-width: 46.875rem;\n    text-align: center;\n  }\n\n  pre {\n    width: 100%;\n    max-width: 46.875rem;\n    padding: 1.5rem;\n    margin: 0 0 1rem;\n    overflow: auto;\n    background-color: ${(props) => props.theme.text50};\n    border-radius: ${(props) => props.theme.borderRadius};\n    text-align: center;\n  }\n\n  ${Button} {\n    max-width: 28.125rem;\n  }\n`;\n\nconst StyledPage = styled.div`\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n`;\n\nexport const ErrorPage = (props) => {\n  const {\n    title = \"Une erreur est survenue\",\n    subtitle = \"Notre équipe a été prévenue du problème\",\n    errorMessage,\n    hasReload = true,\n    hasTopBar = true,\n    icon,\n    children,\n  } = props;\n\n  useAppLoader();\n\n  return (\n    <StyledPage>\n      {hasTopBar && (\n        <>\n          <TopBar hasTopBar />\n          <Spacer size=\"4.625rem\" />\n        </>\n      )}\n      {children ? (\n        <StyledContainer>{children}</StyledContainer>\n      ) : (\n        <StyledContainer>\n          <StyledIcon>{icon || <RawFeatherIcon name=\"x\" />}</StyledIcon>\n          <h2>{title}</h2>\n          <p>{subtitle}</p>\n          <Spacer size=\"1rem\" />\n          {errorMessage && <pre>{errorMessage}</pre>}\n          <Spacer size=\"1rem\" />\n          <Button link route=\"events\" color=\"primary\" block>\n            Revenir à l'accueil\n          </Button>\n          {hasReload ? (\n            <>\n              <Spacer size=\"1rem\" />\n              <Button onClick={() => window.location.reload()} block>\n                Recharger la page\n              </Button>\n            </>\n          ) : null}\n          <Spacer size=\"1rem\" />\n          <span>\n            ou consulter le <Link route=\"helpIndex\">centre d'aide</Link>\n          </span>\n        </StyledContainer>\n      )}\n    </StyledPage>\n  );\n};\nErrorPage.propTypes = {\n  errorMessage: PropTypes.string,\n  title: PropTypes.string,\n  subtitle: PropTypes.string,\n  hasReload: PropTypes.bool,\n  hasTopBar: PropTypes.bool,\n  icon: PropTypes.node,\n  children: PropTypes.node,\n};\nexport default ErrorPage;\n","import PropTypes from \"prop-types\";\nimport React, { useMemo } from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { useEffectOnce } from \"react-use\";\n\nimport { routeConfig } from \"@agir/front/app/routes.config\";\nimport { addQueryStringParams } from \"@agir/lib/utils/url\";\nimport { useRoute } from \"./hooks/useRoute\";\nimport { useToast } from \"@agir/front/globalContext/hooks\";\n\nconst ExternalRedirect = (props) => {\n  const { params } = props;\n  const href = params ? addQueryStringParams(props.href, params) : props.href;\n\n  window.location.replace(href);\n\n  return null;\n};\nExternalRedirect.propTypes = {\n  href: PropTypes.string.isRequired,\n  params: PropTypes.object,\n};\n\nconst InternalRedirect = (props) => {\n  const { to, params, state, backLink, toast, ...rest } = props;\n\n  const sendToast = useToast();\n\n  useEffectOnce(() => {\n    if (!toast) {\n      return;\n    }\n    if (typeof toast === \"string\") {\n      return sendToast(toast, \"SUCCESS\");\n    }\n    if (Array.isArray(toast)) {\n      return sendToast(...toast);\n    }\n    if (typeof toast === \"object\") {\n      return sendToast(undefined, undefined, toast);\n    }\n  }, [sendToast, toast]);\n\n  const next = useMemo(() => {\n    const url = params\n      ? addQueryStringParams(to?.pathname || to, params, true)\n      : to?.pathname || to;\n\n    let nextState = { ...state };\n\n    if (backLink) {\n      nextState = nextState || {};\n      if (typeof backLink !== \"string\") {\n        nextState.backLink = backLink;\n      } else if (routeConfig[backLink]) {\n        nextState.backLink = { route: backLink };\n      } else {\n        nextState.backLink = { href: backLink };\n      }\n    }\n\n    return nextState\n      ? {\n          pathname: url.split(\"?\")[0],\n          search: url.split(\"?\")[1] && \"?\" + url.split(\"?\")[1],\n          state: nextState,\n        }\n      : url;\n  }, [to, params, state, backLink]);\n\n  return <Redirect {...rest} to={next} />;\n};\nInternalRedirect.propTypes = {\n  to: PropTypes.string.isRequired,\n  state: PropTypes.object,\n  params: PropTypes.object,\n  backLink: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n  toast: PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.array,\n    PropTypes.object,\n  ]),\n};\n\nconst RouteRedirect = (props) => {\n  const { route, routeParams, ...rest } = props;\n  const { url, isInternal } = useRoute(route, routeParams);\n\n  return isInternal ? (\n    <InternalRedirect {...rest} to={url} />\n  ) : (\n    <ExternalRedirect {...rest} href={url} />\n  );\n};\nRouteRedirect.propTypes = {\n  route: PropTypes.string.isRequired,\n  routeParams: PropTypes.object,\n};\n\nconst AppRedirect = (props) => {\n  const { route, href, to } = props;\n\n  if (route) {\n    return <RouteRedirect {...props} />;\n  }\n  if (to) {\n    return <InternalRedirect to={to} {...props} />;\n  }\n  if (href) {\n    return <ExternalRedirect {...props} />;\n  }\n\n  return null;\n};\nAppRedirect.propTypes = {\n  route: PropTypes.string,\n  href: PropTypes.string,\n  to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n};\nexport default AppRedirect;\n","import PropTypes from \"prop-types\";\nimport React, { useEffect } from \"react\";\nimport { usePrevious } from \"react-use\";\nimport styled from \"styled-components\";\n\nimport { useIsOffline } from \"@agir/front/offline/hooks\";\nimport { useAppLoader } from \"@agir/front/app/hooks/useAppLoader\";\n\nimport illustration from \"./illustration.svg\";\nimport ErrorPage from \"@agir/front/errorPage/ErrorPage\";\n\nconst OfflineBlock = styled.div`\n  text-align: center;\n\n  & > * {\n    margin: 0 auto;\n    padding: 0 1rem;\n  }\n\n  & > h1 {\n    font-size: 1.25rem;\n  }\n`;\n\nexport const NotFoundPage = ({\n  hasTopBar = true,\n  title = \"Page\",\n  subtitle = \"Cette page\",\n  reloadOnReconnection = true,\n}) => {\n  const isOffline = useIsOffline();\n  const wasOffline = usePrevious(isOffline);\n\n  useAppLoader();\n\n  useEffect(() => {\n    reloadOnReconnection &&\n      wasOffline &&\n      !isOffline &&\n      window.location.reload();\n  }, [reloadOnReconnection, isOffline, wasOffline]);\n\n  if (isOffline === null) return null;\n\n  if (isOffline) {\n    return (\n      <ErrorPage hasTopBar={hasTopBar}>\n        <OfflineBlock>\n          <img\n            src={illustration}\n            width=\"163\"\n            height=\"175\"\n            style={{ marginBottom: \"2rem\" }}\n          />\n          <h2 style={{ marginBottom: \".5rem\" }}>Pas de connexion</h2>\n          <p>\n            Connectez-vous à un\n            <br />\n            réseau Wi-Fi ou mobile\n          </p>\n        </OfflineBlock>\n      </ErrorPage>\n    );\n  }\n\n  return (\n    <ErrorPage\n      icon=\"?\"\n      title={`${title} introuvable`.trim()}\n      subtitle={`${subtitle} n’existe pas ou plus`.trim()}\n      hasReload={false}\n      hasTopBar={hasTopBar}\n    />\n  );\n};\n\nNotFoundPage.propTypes = {\n  hasTopBar: PropTypes.bool,\n  title: PropTypes.string,\n  subtitle: PropTypes.string,\n  reloadOnReconnection: PropTypes.bool,\n};\n\nexport default NotFoundPage;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nconst Counter = ({ value, ...rest }) =>\n  !!value ? (\n    <svg\n      {...rest}\n      width=\"16\"\n      height=\"16\"\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"inherit\" stroke=\"none\" />\n      <text\n        x=\"8\"\n        y=\"8\"\n        dominantBaseline=\"central\"\n        textAnchor=\"middle\"\n        fontSize={String(value).length > 1 ? \"8px\" : \"10px\"}\n        fontWeight=\"700\"\n        fill=\"#FFFFFF\"\n      >\n        {!isNaN(value) && parseInt(value) > 20 ? \"+20\" : value}\n      </text>\n    </svg>\n  ) : null;\n\nCounter.propTypes = {\n  value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\n\nconst CounterBadge = styled(Counter)`\n  fill: ${(props) =>\n    props.$background\n      ? props.theme[props.$background] || props.$background\n      : props.theme.error500};\n  z-index: ${(props) => props.theme.zindexNavigationCounter};\n\n  circle {\n    stroke: ${(props) => props.$border || \"none\"};\n  }\n\n  text {\n    fill: ${(props) =>\n      props.$color\n        ? props.theme[props.$color] || props.$color\n        : props.theme.white};\n  }\n`;\n\nexport default CounterBadge;\n","import { setUser as sentrySetUser } from \"@sentry/browser\";\nimport { useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { useSelector } from \"@agir/front/globalContext/GlobalContext\";\nimport { getUser } from \"@agir/front/globalContext/reducers\";\n\nconst useTracking = () => {\n  const location = useLocation();\n  const { pathname } = location;\n  const previous = useRef(null);\n  const user = useSelector(getUser);\n  const userId = user?.id || null;\n\n  useEffect(() => {\n    if (typeof window !== \"undefined\" && window._paq) {\n      sentrySetUser({ id: userId, ip_address: \"{{auto}}\" });\n      userId\n        ? window._paq.push([\"setUserId\", userId])\n        : window._paq.push([\"resetUserId\"]);\n    }\n  }, [userId]);\n\n  useEffect(() => {\n    if (typeof window !== \"undefined\" && window._paq) {\n      if (previous.current) {\n        window._paq.push([\"setReferrerUrl\", previous.current]);\n      }\n      previous.current = pathname;\n      window._paq.push([\"setCustomUrl\", pathname]);\n      window._paq.push([\"trackPageView\"]);\n      window._paq.push([\"HeatmapSessionRecording::enable\"]);\n    }\n\n    return () => {\n      if (typeof window !== \"undefined\" && window._paq) {\n        window._paq.push([\"HeatmapSessionRecording::disable\"]);\n      }\n    };\n  }, [pathname]);\n};\n\nexport default useTracking;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { animated, useTransition } from \"@react-spring/web\";\nimport styled from \"styled-components\";\n\nimport { useIsOffline } from \"@agir/front/offline/hooks\";\nimport { useDownloadBanner } from \"@agir/front/app/hooks/useDownloadBanner\";\nimport logger from \"@agir/lib/utils/logger\";\n\nconst log = logger(__filename);\n\nconst StyledWarning = styled(animated.div)`\n  position: fixed;\n  top: ${({ $hasTopBar }) => ($hasTopBar ? \"72px\" : \"0\")};\n  width: 100%;\n  z-index: ${(props) => props.theme.zindexTopBar};\n  color: ${(props) => props.theme[props.color]};\n  background: ${(props) => props.theme[props.backgroundCOlor]};\n\n  @media (max-width: ${(props) => props.theme.collapse}px) {\n    top: ${({ $hasTopBar, $hasDownloadBanner }) => {\n      if ($hasTopBar && $hasDownloadBanner) {\n        return \"136px\";\n      }\n      if ($hasTopBar) {\n        return \"56px\";\n      }\n      return \"0\";\n    }};\n  }\n\n  & > div {\n    overflow: hidden;\n    text-transform: uppercase;\n    font-weight: 600;\n    text-align: center;\n    font-size: 10px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    height: 100%;\n  }\n`;\n\nconst ConnectivityWarning = ({ hasTopBar }) => {\n  const [hasDownloadBanner] = useDownloadBanner();\n  const offline = useIsOffline();\n  log.debug(`Offline ${offline}`);\n  const [display, setDisplay] = useState(offline);\n  log.debug(`Display ${display}`);\n\n  const [backgroundColor, color, warning] = useMemo(() => {\n    switch (offline) {\n      case false:\n        return [\"success500\", \"success100\", \"Connexion rétablie\"];\n      case true:\n        return [\"error500\", \"error100\", \"Aucune connexion internet\"];\n      default:\n        return [\"primary500\", \"primary100\", \"Connexion en cours...\"];\n    }\n  }, [offline]);\n\n  useEffect(() => {\n    let timeout = setTimeout(() => setDisplay(!!offline), offline ? 0 : 5000);\n    return () => clearTimeout(timeout);\n  }, [offline]);\n\n  const transitions = useTransition(display, {\n    initial: null,\n    enter: { height: 30 },\n    leave: { height: 0 },\n  });\n\n  return transitions(\n    (style, item) =>\n      item && (\n        <StyledWarning\n          color\n          backgroundColor\n          style={style}\n          $hasTopBar={hasTopBar}\n          $hasDownloadBanner={hasDownloadBanner}\n        >\n          <div>{warning}</div>\n        </StyledWarning>\n      ),\n  );\n};\n\nexport default ConnectivityWarning;\n","import PropTypes from \"prop-types\";\nimport React, { Suspense, useMemo } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { lazy } from \"@agir/front/app/utils\";\nimport {\n  getIsSessionLoaded,\n  getIsConnected,\n} from \"@agir/front/globalContext/reducers\";\nimport routes from \"@agir/front/app/routes.config\";\nimport { useMobileApp } from \"@agir/front/app/hooks/useMobileApp\";\nimport { useSelector } from \"@agir/front/globalContext/GlobalContext\";\n\nconst Footer = lazy(() => import(\"./Footer\"));\n\nconst ConnectedFooter = () => {\n  const { pathname } = useLocation();\n  const isSessionLoaded = useSelector(getIsSessionLoaded);\n  const isConnected = useSelector(getIsConnected);\n  const { isMobileApp } = useMobileApp();\n\n  const route = useMemo(\n    () => routes.find((route) => route.match(pathname)),\n    [pathname],\n  );\n\n  if (!isSessionLoaded) {\n    return null;\n  }\n  if (!route || route.hideFooter) {\n    return null;\n  }\n  if (isMobileApp && !route.displayFooterOnMobileApp) {\n    return null;\n  }\n\n  return (\n    <Suspense fallback={<div />}>\n      <Footer\n        isSignedIn={isConnected}\n        isMobileApp={isMobileApp}\n        hasBanner={!route.hideFooterBanner && !isConnected}\n      />\n    </Suspense>\n  );\n};\n\nexport default ConnectedFooter;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport SoutienProgressBar, {\n  SoutienProgressBarContainer,\n} from \"./SoutienProgressBar\";\nimport Button from \"@agir/front/genericComponents/Button\";\nimport { useSelector } from \"@agir/front/globalContext/GlobalContext\";\nimport { getUser } from \"@agir/front/globalContext/reducers\";\n\nconst SoutienBannerButton = styled.div``;\n\nconst SoutienBannerContainer = styled.div`\n  display: flex;\n  justify-content: space-around;\n\n  border: 1px solid #232323;\n  border-radius: 8px;\n  align-items: center;\n    \n    ${SoutienProgressBarContainer} {\n        margin-top: 0;\n    }\n\n  @media (max-width: ${(props) => props.theme.collapse}px) {\n    flex-direction: column;\n    gap: 10px;\n    border: none;\n    border-bottom: 1px solid #232323;\n    border-radius: 0;\n    padding: 0 1rem 10px 1rem;\n    margin-bottom: 10px;\n\n    ${SoutienProgressBarContainer} {\n        margin-top: 0;\n    }\n  }\n\n  padding: 20px;\n\n  ${SoutienBannerButton} {\n    min-width: 250px;\n    display: flex;\n    justify-content: center;\n  }\n\n  a {\n    background-color: ${({ theme }) => theme.LFIsecondary500};\n    color: white;\n    border-radius: 0;\n    font-weight: bold;\n    border: none;\n\n    &:hover {\n      background-color: ${({ theme }) => theme.LFIsecondary500}99;\n      color: white;\n    }\n  }\n`;\n\nexport default function SoutienBanner() {\n  const user = useSelector(getUser);\n\n  if (!window?.apConfig?.soutien?.enabledFront) {\n    return null;\n  }\n\n  return !user?.soutien2027 ? (\n    <SoutienBannerContainer>\n      <SoutienProgressBar\n        title={\n          <p style={{ marginBottom: \"1rem\" }}>\n            Soutenez la candidature de <b>Jean-Luc Mélenchon</b> pour l'élection{\" \"}\n            présidentielle de <b>2027</b> !\n          </p>\n        }\n      />\n      <SoutienBannerButton>\n        <Button link route=\"/soutien\">\n          Je soutiens <i className=\"fa fa-paper-plane\" />\n        </Button>\n      </SoutienBannerButton>\n    </SoutienBannerContainer>\n  ) : null;\n}\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport BottomBar from \"@agir/front/app/Navigation/BottomBar\";\nimport SoutienBanner from \"@agir/presidentielle2027/SoutienPage/SoutienBanner\";\n\nconst StyledContainer = styled.div`\n  padding-top: 24px;\n  padding-bottom: 24px;\n  background-color: ${(props) =>\n    props.$smallBackgroundColor\n      ? props.theme[props.$smallBackgroundColor] || props.$smallBackgroundColor\n      : \"transparent\"};\n`;\n\nconst MobileLayout = (props) => {\n  const { children } = props;\n\n  return (\n    <StyledContainer {...props}>\n      <SoutienBanner />\n      <section>{children}</section>\n      <BottomBar {...props} />\n    </StyledContainer>\n  );\n};\n\nexport default MobileLayout;\n\nMobileLayout.propTypes = {\n  children: PropTypes.node,\n};\n","import PropTypes from \"prop-types\";\nimport React, { useCallback, useRef } from \"react\";\nimport styled from \"styled-components\";\n\nconst Image = styled.div`\n  flex: 0 0 130px;\n  width: 100%;\n  background-repeat: no-repeat;\n  background-size:\n    0 0,\n    cover;\n  background-position: center center;\n  border-radius: ${(props) => props.theme.borderRadius};\n\n  @media (max-width: ${(props) => props.theme.collapse}px) {\n    flex: 0 0 80px;\n    height: 80px;\n    border-radius: 0;\n    background-size:\n      cover,\n      0 0;\n  }\n`;\n\nconst Container = styled.article`\n  display: flex;\n  flex-flow: column nowrap;\n  align-items: stretch;\n  justify-content: flex-start;\n  max-width: 255px;\n  cursor: ${({ $isClickable }) => ($isClickable ? \"pointer\" : \"default\")};\n\n  & + & {\n    margin-top: 1.5rem;\n  }\n\n  div + div {\n    margin-top: 1rem;\n  }\n\n  h3,\n  p {\n    line-height: 1.45;\n    overflow: hidden;\n    font-size: 0.875rem;\n  }\n\n  h3 {\n    display: block;\n    margin: 0;\n    margin-bottom: 0.125rem;\n    font-weight: 700;\n    color: ${(props) => props.theme.primary500};\n\n    a,\n    span {\n      color: inherit;\n    }\n  }\n\n  @media (max-width: ${(props) => props.theme.collapse}px) {\n    flex-flow: row nowrap;\n    border: 1px solid ${(props) => props.theme.primary500};\n    padding: 1rem;\n    border-radius: 4px;\n    max-width: 100%;\n    height: 112px;\n    box-shadow: 0px 3px 2px rgba(0, 35, 44, 0.05);\n\n    & + & {\n      margin-top: 0;\n    }\n\n    div {\n      max-height: 72px;\n      overflow: hidden;\n    }\n\n    div + div {\n      margin-top: 0;\n      margin-left: 1rem;\n    }\n\n    h3,\n    a {\n      color: ${(props) => props.theme.primary500};\n    }\n\n    p {\n      font-size: 0.75rem;\n    }\n  }\n`;\n\nconst Announcement = (props) => {\n  const { title, content, image, link } = props;\n  const linkRef = useRef(null);\n  const handleClick = useCallback(() => {\n    linkRef.current && linkRef.current.click();\n  }, []);\n  return (\n    <Container $isClickable={!!link} onClick={handleClick}>\n      {image && image.mobile && image.desktop ? (\n        <Image\n          aria-label={title}\n          style={{\n            backgroundImage: `url(${image.mobile}), url(${image.desktop})`,\n          }}\n        />\n      ) : null}\n      <div>\n        <h3>\n          {link ? (\n            <a ref={linkRef} href={link}>\n              {title}\n            </a>\n          ) : (\n            <span>{title}</span>\n          )}\n        </h3>\n        <p dangerouslySetInnerHTML={{ __html: content }} />\n      </div>\n    </Container>\n  );\n};\n\nAnnouncement.propTypes = {\n  title: PropTypes.string.isRequired,\n  content: PropTypes.string.isRequired,\n  image: PropTypes.shape({\n    desktop: PropTypes.string,\n    mobile: PropTypes.string,\n  }),\n  link: PropTypes.string,\n};\n\nexport default Announcement;\n","import React from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport useSWR from \"swr\";\n\nimport { routeConfig } from \"@agir/front/app/routes.config\";\n\nimport Announcement from \"@agir/front/genericComponents/Announcement\";\n\nconst Announcements = () => {\n  const { pathname } = useLocation();\n\n  const markAsDisplayed = routeConfig.activities.match(pathname) ? \"0\" : \"1\";\n\n  const { data: announcements } = useSWR(\n    \"/api/announcements/?mark_as_displayed=\" + markAsDisplayed,\n  );\n\n  if (!Array.isArray(announcements) || announcements.length === 0) return null;\n\n  return announcements.map((announcement) => (\n    <Announcement key={announcement.id} {...announcement} />\n  ));\n};\n\nexport default Announcements;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport useSWR from \"swr\";\n\nimport Button from \"@agir/front/genericComponents/Button\";\n\nimport { useCustomAnnouncement } from \"@agir/activity/common/hooks\";\nimport { useMobileApp } from \"@agir/front/app/hooks/useMobileApp\";\n\nimport facebookLogo from \"@agir/front/genericComponents/logos/facebook.svg\";\nimport facebookWhiteLogo from \"@agir/front/genericComponents/logos/facebook_white.svg\";\n\nconst FacebookLoginContainer = styled.div`\n  background-color: ${(props) => props.theme.facebookLight};\n  color: ${(props) => props.theme.black};\n  max-width: 15.9375rem;\n  border-radius: ${(props) => props.theme.borderRadius};\n  padding: 1.5rem;\n  font-size: 0.875rem;\n  margin-bottom: 1rem;\n\n  h6 {\n    color: inherit;\n  }\n`;\n\nconst DismissMessage = styled.a`\n  color: ${(props) => props.theme.black};\n  text-decoration: underline;\n  margin-top: 1rem;\n\n  &:hover {\n    color: ${(props) => props.theme.black};\n  }\n`;\n\nconst FacebookLoginAd = () => {\n  const [announcement, dismissCallback] =\n    useCustomAnnouncement(\"facebook-login-ad\");\n\n  const { data: session } = useSWR(\"/api/session/\");\n  const { isIOS } = useMobileApp();\n\n  return session && !session.facebookLogin && !isIOS && announcement ? (\n    <FacebookLoginContainer>\n      <img\n        src={facebookLogo}\n        width=\"32\"\n        height=\"32\"\n        style={{ height: \"32px\", marginBottom: \"6px\" }}\n        alt=\"Facebook\"\n      />\n      <h6>Facilitez vos prochaines connexions</h6>\n      <p>\n        Connectez votre compte à Facebook maintenant pour ne pas avoir à taper\n        de code la prochaine fois.\n      </p>\n      <Button\n        style={{ margin: \"16px 0\" }}\n        small\n        color=\"facebook\"\n        link\n        route=\"facebookLogin\"\n      >\n        <img\n          style={{ height: \"16px\", marginRight: \"5px\" }}\n          src={facebookWhiteLogo}\n          width=\"16\"\n          height=\"16\"\n        />\n        Connecter le compte\n      </Button>\n      <DismissMessage href=\"#\" onClick={dismissCallback}>\n        Ne plus afficher ce message\n      </DismissMessage>\n    </FacebookLoginContainer>\n  ) : null;\n};\n\nexport default FacebookLoginAd;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport Link from \"@agir/front/app/Link\";\n\nconst StyledLink = styled(Link)``;\n\nconst StyledMenu = styled.ul`\n  width: 100%;\n  margin-top: 0;\n  margin-bottom: 1rem;\n  list-style-type: none;\n  font-weight: 400;\n  color: ${(props) => props.theme.text500};\n\n  h6 {\n    font-size: 12px;\n    line-height: 15px;\n    color: ${(props) => props.theme.text500};\n    margin-bottom: 0.5rem;\n    font-weight: bold;\n    overflow-wrap: break-word;\n  }\n\n  li {\n    display: block;\n    line-height: 1.2;\n    margin: 0 0 0.5rem;\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: 100%;\n    text-overflow: ellipsis;\n\n    ${StyledLink} {\n      &,\n      &:hover,\n      &:focus,\n      &:active {\n        color: ${(props) => props.theme.text700};\n        font-weight: 400;\n        font-size: 13px;\n        line-height: inherit;\n      }\n    }\n  }\n`;\n\nconst SecondaryMenu = ({ title, links, ...rest }) =>\n  Array.isArray(links) && links.length > 0 ? (\n    <StyledMenu {...rest}>\n      {title ? <h6>{title}</h6> : null}\n      {links.map((link) => (\n        <li key={link.id}>\n          <StyledLink\n            href={link.href || undefined}\n            route={link.route || undefined}\n            to={link.to || undefined}\n            title={link.title || link.label}\n          >\n            {link.title || link.label}\n          </StyledLink>\n        </li>\n      ))}\n    </StyledMenu>\n  ) : null;\n\nSecondaryMenu.propTypes = {\n  title: PropTypes.string,\n  links: PropTypes.arrayOf(\n    PropTypes.shape({\n      href: PropTypes.string,\n      route: PropTypes.string,\n      to: PropTypes.string,\n      title: PropTypes.string,\n      label: PropTypes.string,\n    }),\n  ),\n};\n\nexport default SecondaryMenu;\n","import PropTypes from \"prop-types\";\nimport React, { useMemo } from \"react\";\nimport styled from \"styled-components\";\n\nimport CONFIG from \"@agir/front/app/Navigation/navigation.config\";\n\nimport CounterBadge from \"@agir/front/app/Navigation/CounterBadge\";\nimport Link from \"@agir/front/app/Link\";\nimport { RawFeatherIcon } from \"@agir/front/genericComponents/FeatherIcon\";\nimport SecondaryMenu from \"./SecondaryMenu\";\n\nconst MenuLink = styled(Link)`\n  position: relative;\n  display: flex;\n  flex-flow: row nowrap;\n  align-items: center;\n  height: 1.5rem;\n\n  font-size: 1rem;\n  line-height: 1.5;\n  font-weight: 600;\n  color: ${({ $active, theme }) => ($active ? theme.primary500 : \"inherit\")};\n\n  &:hover,\n  &:focus {\n    color: ${({ $active, theme }) => ($active ? theme.primary500 : \"inherit\")};\n    text-decoration: none;\n  }\n\n  ${CounterBadge} {\n    position: absolute;\n    left: 14px;\n    top: -5px;\n  }\n\n  ${RawFeatherIcon} {\n    display: inline-block;\n    line-height: 0;\n    color: ${({ $active, theme }) =>\n      $active ? theme.primary500 : theme.text500};\n    margin-right: 1rem;\n  }\n\n  ${RawFeatherIcon}:last-child {\n    align-self: baseline;\n    margin-right: 0;\n    margin-left: 0.5rem;\n  }\n\n  i {\n    margin-right: 1rem;\n    font-size: 1.3em;\n\n    color: ${({ $active, theme }) =>\n      $active ? theme.primary500 : theme.text500};\n  }\n`;\n\nconst LINKS = CONFIG.menuLinks.filter(({ desktop }) => !!desktop);\n\nconst NavigationLink = ({\n  link,\n  active,\n  routes,\n  unreadMessageCount = 0,\n  unreadActivityCount = 0,\n}) => {\n  const secondaryLinks = useMemo(() => {\n    if (!routes) {\n      return null;\n    }\n    if (Array.isArray(link.secondaryLinks)) {\n      return link.secondaryLinks;\n    }\n\n    return routes[link.secondaryLinks];\n  }, [routes, link.secondaryLinks]);\n\n  return (\n    <li style={{ marginBottom: \"1.5rem\" }}>\n      <MenuLink route={link.route} $active={active === link.id}>\n        {link.unreadMessageBadge && <CounterBadge value={unreadMessageCount} />}\n        {link.unreadActivityBadge && (\n          <CounterBadge value={unreadActivityCount} />\n        )}\n        {link.icon?.includes(\"fa-\") ? (\n          <i className={`fa-regular ${link.icon}`} />\n        ) : (\n          <RawFeatherIcon name={link.icon} />\n        )}\n        <span>{link.title}</span>\n        {link.external && (\n          <RawFeatherIcon\n            name=\"external-link\"\n            inline\n            strokeWidth={1.33}\n            width=\"1rem\"\n            height=\"1rem\"\n          />\n        )}\n      </MenuLink>\n      <SecondaryMenu style={{ marginTop: \".5rem\" }} links={secondaryLinks} />\n    </li>\n  );\n};\n\nconst Navigation = (props) => {\n  return (\n    <ul style={{ listStyle: \"none\", padding: 0 }}>\n      {LINKS.map((link) => (\n        <NavigationLink key={link.id} {...props} link={link} />\n      ))}\n    </ul>\n  );\n};\n\nNavigation.propTypes = {\n  active: PropTypes.string,\n  unreadActivityCount: PropTypes.number,\n  unreadMessageCount: PropTypes.number,\n  routes: PropTypes.object,\n};\nexport default Navigation;\n","import PropTypes from \"prop-types\";\nimport React, { useMemo } from \"react\";\n\nimport CONFIG from \"@agir/front/app/Navigation/navigation.config\";\n\nimport { useSelector } from \"@agir/front/globalContext/GlobalContext\";\nimport { getRoutes, getUser } from \"@agir/front/globalContext/reducers\";\nimport { useUnreadMessageCount } from \"@agir/msgs/common/hooks\";\nimport { useUnreadActivityCount } from \"@agir/activity/common/hooks\";\n\nimport SideBar from \"./SideBar\";\nimport SecondaryMenu from \"./SecondaryMenu\";\n\nexport const SecondarySideBar = () => (\n  <SecondaryMenu\n    title=\"LIENS\"\n    links={CONFIG.secondaryLinks}\n    style={{ padding: 0 }}\n  />\n);\n\nconst ConnectedSideBar = (props) => {\n  const unreadActivityCount = useUnreadActivityCount();\n  const unreadMessageCount = useUnreadMessageCount();\n  const routes = useSelector(getRoutes);\n  const user = useSelector(getUser);\n\n  const userRoutes = useMemo(\n    () =>\n      user && user?.groups.length > 0\n        ? {\n            ...routes,\n            userGroups: user.groups.map((group) => ({\n              id: group.id,\n              label: group.name,\n              to: group.link,\n            })),\n          }\n        : routes,\n    [user, routes],\n  );\n\n  return (\n    <SideBar\n      {...props}\n      unreadActivityCount={unreadActivityCount}\n      unreadMessageCount={unreadMessageCount}\n      routes={userRoutes}\n    />\n  );\n};\n\nexport default ConnectedSideBar;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport useSWR from \"swr\";\n\nimport ActionButtons from \"@agir/front/app/ActionButtons/ActionButtons\";\nimport Announcements from \"@agir/front/app/Announcements\";\nimport FacebookLoginAd from \"@agir/front/app/FacebookLoginAd\";\nimport { LayoutTitle, LayoutSubtitle } from \"./StyledComponents\";\nimport SideBar, { SecondarySideBar } from \"@agir/front/app/Navigation/SideBar\";\nimport Spacer from \"@agir/front/genericComponents/Spacer\";\nimport UpcomingEvents from \"@agir/events/common/UpcomingEvents\";\nimport SoutienBanner from \"../../../../presidentielle2027/components/SoutienPage/SoutienBanner\";\n\nconst LeftColumn = styled.aside`\n  position: sticky;\n  top: 3rem;\n  z-index: ${(props) => props.theme.zindexMainContent};\n`;\nconst MainColumn = styled.div``;\nconst RightColumn = styled.aside``;\n\nconst MainContainer = styled.div`\n  width: 100%;\n  max-width: 1442px;\n  margin: 0 auto;\n  padding: 0 50px 3rem;\n  display: flex;\n  align-items: flex-start;\n  justify-content: space-between;\n\n  ${LeftColumn} {\n    padding: 3rem 2rem 0 0;\n    flex: 0 0 255px;\n    min-width: 1px;\n\n    @media (max-width: ${(props) => props.theme.collapseTablet}px) {\n      display: none;\n    }\n  }\n\n  ${RightColumn} {\n    padding: 3rem 0 0 2rem;\n    flex: 0 0 255px;\n\n    h4 {\n      margin: 0 0 0.5rem;\n      line-height: 1.5;\n    }\n  }\n\n  ${MainColumn} {\n    padding: 1rem 0 0;\n    flex: 0 1 725px;\n    margin: 0 auto;\n\n    @media (max-width: ${(props) => props.theme.collapseTablet}px) {\n      flex-grow: 1;\n    }\n  }\n`;\n\nconst Layout = (props) => {\n  const { title, subtitle, children } = props;\n\n  const { data: events } = useSWR(\"/api/evenements/rsvped/\");\n\n  return (\n    <MainContainer {...props}>\n      <LeftColumn>\n        <SideBar {...props} />\n      </LeftColumn>\n      <MainColumn>\n        <section>\n          <SoutienBanner />\n          {props.title ? (\n            <header>\n              <LayoutTitle>{title}</LayoutTitle>\n              <LayoutSubtitle>{subtitle}</LayoutSubtitle>\n            </header>\n          ) : null}\n          {children}\n        </section>\n      </MainColumn>\n      <RightColumn>\n        <div>\n          <h4>Moyens d'action</h4>\n          <ActionButtons />\n        </div>\n        <Spacer size=\"1.5rem\" />\n        {Array.isArray(events) && events.length > 0 ? (\n          <>\n            <div>\n              <h4>Mes événements prévus</h4>\n              <UpcomingEvents orientation=\"vertical\" events={events} />\n            </div>\n            <Spacer size=\"2rem\" />\n          </>\n        ) : null}\n        <FacebookLoginAd />\n        <Announcements />\n        <SecondarySideBar />\n      </RightColumn>\n    </MainContainer>\n  );\n};\n\nexport default Layout;\n\nLayout.propTypes = {\n  title: PropTypes.string,\n  subtitle: PropTypes.string,\n  children: PropTypes.node,\n};\n","import React from \"react\";\n\nimport { useResponsiveMemo } from \"@agir/front/genericComponents/grid\";\n\nimport MobileLayout from \"./MobileLayout\";\nimport DesktopLayout from \"./DesktopLayout\";\n\nconst Layout = (props) => {\n  const Component = useResponsiveMemo(MobileLayout, DesktopLayout);\n  return <Component {...props} />;\n};\n\nexport default Layout;\n","import Layout from \"./Layout\";\n\nexport default Layout;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { ErrorBoundary as SentryErrorBoundary } from \"@sentry/react\";\n\nimport ErrorPage from \"@agir/front/errorPage/ErrorPage\";\n\nimport generateLogger from \"@agir/lib/utils/logger\";\n\nconst logger = generateLogger(__filename);\n\nclass DevErrorBoundary extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      errorMessage: \"\",\n    };\n  }\n\n  static getDerivedStateFromError(error) {\n    return {\n      errorMessage: error !== undefined ? error.toString() : `Une erreur s'est produite`,\n    };\n  }\n\n  componentDidCatch(error, info) {\n    logger.debug(error, info);\n  }\n\n  render() {\n    const { children, Fallback: CustomFallback } = this.props;\n    const { errorMessage } = this.state;\n\n    if (!errorMessage) {\n      return children;\n    }\n\n    if (CustomFallback) {\n      return <CustomFallback {...this.props} errorMessage={errorMessage} />;\n    }\n\n    return <ErrorPage errorMessage={errorMessage} />;\n  }\n}\n\nconst ProdErrorBoundary = (props) => {\n  const { children, Fallback: CustomFallback } = props;\n\n  const fallback = ({ error }) =>\n    CustomFallback ? (\n      <CustomFallback {...props} errorMessage={error.toString()} />\n    ) : (\n      <ErrorPage />\n    );\n\n  return (\n    <SentryErrorBoundary fallback={fallback}>{children}</SentryErrorBoundary>\n  );\n};\n\nDevErrorBoundary.propTypes = ProdErrorBoundary.propTypes = {\n  children: PropTypes.node,\n  Fallback: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n};\n\nconst ErrorBoundary =\n  process.env.NODE_ENV === \"production\" ? ProdErrorBoundary : DevErrorBoundary;\n\nexport default ErrorBoundary;\n","import useSWR from \"swr\";\nimport axios from \"@agir/lib/utils/axios\";\n\n\nexport const useActiveBannerAnnouncement = () =>\n    useSWR(\"/api/activite/bannerannouncements/\")\n\nexport const answerToBannerAnnouncement = (announcementId, answerId) =>\n    axios.put(`/api/activite/bannerannouncements/${announcementId}/answer/${answerId}`)\n\nexport const closeBannerAnnouncement = (announcementId) => axios.get(`/api/activite/bannerannouncements/${announcementId}/close`)","import React from \"react\"\nimport styled, {keyframes} from \"styled-components\";\n\nconst SpinnerAnimation = keyframes`\n    from {\n        transform: rotate(0deg);\n    }\n    to {\n        transform: rotate(360deg);\n    }\n`\nconst Loader = styled.i`\n    font-size: 1.6em;\n    animation-name: ${SpinnerAnimation};\n    animation-duration: 2s;\n    animation-timing-function: ease;\n    animation-iteration-count: infinite;\n`\n\nexport default function Spinner() {\n    return <Loader className=\"fa fa-solid fa-loader\"/>\n}","import styled, {keyframes} from \"styled-components\";\nimport {\n    answerToBannerAnnouncement, closeBannerAnnouncement,\n    useActiveBannerAnnouncement\n} from \"@agir/activity/BannerAnnouncements/useBannerAnnouncements\";\nimport React, {useEffect, useState} from \"react\"\nimport Button from \"@agir/front/genericComponents/Button\";\nimport {useMutate} from \"@agir/front/app/apiHook\";\nimport Spinner from \"@agir/front/genericComponents/Spinner\";\nimport {useTransition, animated} from \"@react-spring/web\";\n\nconst BackgroundAnimation = keyframes`\n    from {\n        opacity: 0;\n    }\n    to {\n        opacity: 1;\n    }\n`\n\nconst Banner = styled.div`\n    position: relative;\n    width: 100vw;\n    min-height: 150px;\n    background-color: ${(props) => props.theme.primary500};\n    color: ${(props) => props.theme.text25};\n    flex-direction: column;\n    align-items: center;\n    align-content: center;\n    text-align: center;\n    \n    animation-name: ${BackgroundAnimation};\n    animation-duration: 1.4s;\n    animation-timing-function: ease;\n    animation-fill-mode: forwards;\n    \n    h3 {\n        font-weight: bold;\n    }\n    h2, h3, h4 {\n        text-align: center;\n        color: ${(props) => props.theme.text25};\n        margin-bottom: 0.7em;\n        font-size: 1.2em;\n        margin-top: 0;\n        padding-top: 0.7em; \n    }\n    span {\n        max-width: 800px;\n        a {\n            color: ${(props) => props.theme.text25};\n            text-decoration: underline;\n        }\n    }\n\n    @media (max-width: 700px) {\n        p {\n            text-align: center;\n            padding-top: 2px;\n            padding-right: 12px;\n            padding-left: 12px;\n        }\n        h2, h3, h4 {\n            margin-bottom: 0.2em;\n\n        }\n    }\n`\nconst Answers = styled.div`\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    margin-bottom: 0.5em;\n    height: 2.8em;\n    padding-top: 0.1em;\n    padding-bottom: 0.5em;\n    justify-content: center;\n\n    @media (max-width: 600px) {\n        flex-direction: column;\n        margin-bottom: 0.7em;\n        height: auto;\n    }\n`\nconst BannerAnnouncementDone = styled.div`\n    width: 100vw;\n    min-height: 150px;\n    background-color: #17a460;\n    \n    animation-name: ${BackgroundAnimation};\n    animation-duration: 1.4s;\n    animation-timing-function: ease;\n    animation-fill-mode: forwards;\n`\n\nconst Close = styled.div`\n    position: absolute;\n    top: 8px;\n    right: 15px;\n    \n    cursor: pointer;\n    \n    font-size: 1.5em;\n`\n\nexport default function BannerAnnouncement() {\n    const [currentAnnouncement, setCurrentAnnouncement] = useState()\n    const [done, setDone] = useState(false);\n    const [selectedAnswer, setSelectedAnswer] = useState()\n\n    const [announcementsHandled, setAnnouncementsHandled] = useState([])\n\n    const {data: announcements, mutate: refresh} = useActiveBannerAnnouncement()\n    const {mutate: mutateAnswer, isLoading, error} = useMutate(answerToBannerAnnouncement, () => {\n        setDone(true)\n    })\n\n    const transitions = useTransition(announcements?.length > 0 || !!currentAnnouncement, {\n        from: { opacity: 0 },\n        enter: { opacity: 1 },\n        leave: { opacity: 0 },\n        config: {duration: 1300}\n    });\n\n    useEffect(() => {\n        const announcement = announcements?.[0]\n        if (announcement && !announcementsHandled.includes(announcement?.id) && !done) {\n            setCurrentAnnouncement(announcement)\n        }\n    }, [announcementsHandled, announcements, done]);\n\n    async function userAnswer(answer) {\n        setSelectedAnswer(answer)\n        await mutateAnswer(currentAnnouncement.id, answer.id)\n        await refresh()\n    }\n\n    function AnnouncementDone() {\n        return <BannerAnnouncementDone>\n                <h4>{currentAnnouncement.question} {selectedAnswer.name} <i className=\"fa fa-circle-check\"/></h4>\n                <p dangerouslySetInnerHTML={{__html: currentAnnouncement.afterMessage}}/>\n\n                <Button small onClick={nextAnnouncement}>Fermer</Button>\n            </BannerAnnouncementDone>\n    }\n\n    async function nextAnnouncement() {\n        await refresh()\n        setAnnouncementsHandled((prev) => {\n            return [...prev, currentAnnouncement.id];\n        })\n        setCurrentAnnouncement(undefined)\n        setDone(false)\n    }\n\n    async function closeAnnouncement() {\n        if (currentAnnouncement) {\n            const result = await closeBannerAnnouncement(currentAnnouncement.id);\n            if (result.status === 204) {\n                await nextAnnouncement()\n            }\n        }\n    }\n\n    const hasAnswers = !!currentAnnouncement?.answers?.length\n    return <>\n        {transitions((style, item) => {\n                return item && (\n                    <animated.div style={style}>\n                        <Banner>\n                            {!currentAnnouncement ? <Spinner/> : done ? <AnnouncementDone/> : <>\n                                <h3>{currentAnnouncement.title}</h3>\n                                {isLoading ? <Spinner/> : hasAnswers && <Answers>\n                                    {currentAnnouncement.question && <h4>{currentAnnouncement.question}</h4>}\n                                    {\n                                        currentAnnouncement.answers?.map((answer) => {\n                                            return <Button small onClick={() => userAnswer(answer)}\n                                                           key={answer.name}>{answer.name}</Button>\n                                        })\n                                    }\n                                </Answers>}\n                                {!isLoading &&\n                                    <span dangerouslySetInnerHTML={{__html: currentAnnouncement.description}}/>}\n                            </>}\n                            {!hasAnswers && <Close onClick={closeAnnouncement}><i className=\"fa fa-xmark\"/></Close>}\n                        </Banner>\n                    </animated.div>\n                );\n            }\n        )}\n    </>\n}\n","import PropTypes from \"prop-types\";\nimport React, { Suspense, useEffect, useMemo } from \"react\";\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport {\n  setAdminLink,\n  setBackLink,\n  setPageTitle,\n  setTopBarRightLink,\n} from \"@agir/front/globalContext/actions\";\nimport {\n  useDispatch,\n  useSelector,\n} from \"@agir/front/globalContext/GlobalContext\";\nimport { getIsSessionLoaded } from \"@agir/front/globalContext/reducers\";\n\nimport Layout from \"@agir/front/app/Layout\";\n\nimport logger from \"@agir/lib/utils/logger\";\nimport ErrorBoundary from \"./ErrorBoundary\";\n\nimport Redirect from \"./Redirect\";\nimport BannerAnnouncement from \"@agir/activity/BannerAnnouncements/BannerAnnouncement\";\nimport FloatButton from \"@agir/front/allPages/FloatButton\";\nimport HelpButton from \"@agir/front/allPages/HelpButton\";\nimport FeedbackButton from \"@agir/front/allPages/FeedbackButton\";\n\nconst log = logger(__filename);\n\nconst StyledPage = styled.div`\n  isolation: isolate;\n  padding-top: ${({ $hasTopBar }) => ($hasTopBar ? \"calc(var(--safe-area-inset-top, env(safe-area-inset-top)) + var(--top-bar-height))\" : \"0\")};\n`;\n\nconst Page = (props) => {\n  const { Component, routeConfig, hasTopBar, ...rest } = props;\n\n  const dispatch = useDispatch();\n  const isSessionLoaded = useSelector(getIsSessionLoaded);\n\n  const history = useHistory();\n  const routeParams = useParams();\n  const { pathname } = useLocation();\n\n  useMemo(() => {\n    if (!routeConfig.isPartial) {\n      dispatch(setBackLink(null));\n      dispatch(setTopBarRightLink(null));\n      dispatch(setAdminLink(null));\n      dispatch(setPageTitle(routeConfig?.label || null));\n    }\n    //eslint-disable-next-line\n  }, [pathname, routeConfig]);\n\n  useMemo(() => {\n    if (!isSessionLoaded || !routeConfig.backLink) {\n      return;\n    }\n    let link = routeConfig.backLink;\n    if (typeof link === \"object\" && !Array.isArray(link)) {\n      link.routeParams = {\n        ...routeParams,\n        ...(link.routeParams || {}),\n      };\n    }\n    dispatch(setBackLink(link));\n\n    //eslint-disable-next-line\n  }, [pathname, isSessionLoaded, dispatch, routeConfig]);\n\n  useMemo(() => {\n    if (!isSessionLoaded || !routeConfig.topBarRightLink) {\n      return;\n    }\n    let link = routeConfig.backLink;\n    if (typeof link === \"object\" && !Array.isArray(link)) {\n      link.routeParams = {\n        ...routeParams,\n        ...(link.routeParams || {}),\n      };\n    }\n    dispatch(setTopBarRightLink(routeConfig.topBarRightLink));\n    //eslint-disable-next-line\n  }, [pathname, isSessionLoaded, dispatch, routeConfig]);\n\n  useEffect(() => {\n    let unlisten = history.listen((location, action) => {\n      log.debug(\n        `Navigate ${action} ${location.pathname}${location.search}${location.hash}`,\n        JSON.stringify(history, null, 2),\n      );\n    });\n\n    return () => unlisten();\n  }, [history]);\n\n  useMemo(() => {\n    if (!routeConfig.keepScroll) {\n      typeof window !== \"undefined\" &&\n        !!window.scrollTo &&\n        window.scrollTo(0, 0);\n    }\n  }, [routeConfig]);\n\n  if (typeof routeConfig.redirectTo === \"function\") {\n    const redirectProps = routeConfig.redirectTo(pathname, routeParams);\n    return typeof redirectProps === \"string\" ? (\n      <Redirect route={redirectProps} />\n    ) : (\n      <Redirect {...redirectProps} />\n    );\n  }\n\n  if (routeConfig.isPartial) {\n    return (\n      <ErrorBoundary>\n        <Suspense fallback={<div />}>\n          <Component route={routeConfig} {...routeParams} {...rest} />\n        </Suspense>\n      </ErrorBoundary>\n    );\n  }\n\n  if (!routeConfig.hasLayout) {\n    return (\n      <ErrorBoundary>\n        <StyledPage $hasTopBar={hasTopBar}>\n          <Suspense fallback={<div style={{ minHeight: \"100vh\" }} />}>\n            <Component route={routeConfig} {...routeParams} {...rest} />\n            {!routeConfig.hideFeedbackButton && <HelpButton />}\n          </Suspense>\n        </StyledPage>\n      </ErrorBoundary>\n    );\n  }\n\n  return (\n    <ErrorBoundary>\n      <StyledPage $hasTopBar={hasTopBar}>\n        <BannerAnnouncement />\n        <Layout {...(routeConfig?.layoutProps || {})} active={routeConfig.id}>\n          <Suspense fallback={<div style={{ minHeight: \"100vh\" }} />}>\n            <Component route={routeConfig} {...routeParams} {...rest} />\n            {!routeConfig.hideFeedbackButton && <HelpButton />}\n          </Suspense>\n        </Layout>\n      </StyledPage>\n    </ErrorBoundary>\n  );\n};\nPage.propTypes = {\n  Component: PropTypes.elementType,\n  routeConfig: PropTypes.object.isRequired,\n  hasTopBar: PropTypes.bool,\n};\n\nexport default Page;\n","import ModalConfirmation from \"@agir/front/genericComponents/ModalConfirmation\";\nimport React, {useEffect, useMemo, useState} from \"react\";\nimport {useLocalStorage} from \"@agir/lib/utils/hooks\";\nimport styled from \"styled-components\";\nimport useSWR from \"swr\";\nimport {getNewsletterStatus} from \"@agir/notifications/common/notifications.config\";\nimport {updateProfile} from \"@agir/front/authentication/api\";\n\nconst StyledTitle = styled.div`\n    color: ${(props) => props.theme.primary500};\n    text-align: center;\n    \n    span {\n        margin-bottom: 25px;\n    }\n`\nconst StyledModalContent = styled.div`\n    text-align: center;\n    padding: 10px;\n`\n\n\nexport default function ModalMissingNewsletter() {\n    const [alreadyShowNewsletterModal, setAlreadyShowNewsletterModal] = useLocalStorage(\"AP_show_newsletter_modal\", false)\n    const {data: profile, mutate: mutateProfile, isLoading} = useSWR(\"/api/user/profile/\");\n    const [isLoadingUpdateProfile, setIsLoadingUpdateProfile] = useState(false);\n    const newsletterOptions = useMemo(() => getNewsletterStatus(profile?.newsletters), [profile]);\n\n    function userRegisteredToReguliere() {\n        return newsletterOptions?.[\"LFI_reguliere\"]?.email ?? false\n    }\n\n    async function inscription() {\n        setIsLoadingUpdateProfile(true)\n        const updatedProfile = await updateProfile({\"newsletters\": [\"LFI_reguliere\"]});\n        await mutateProfile(() => updatedProfile?.data)\n\n        setIsLoadingUpdateProfile(false);\n        setAlreadyShowNewsletterModal(true)\n    }\n\n    function userOldEnough() {\n        const dateLessOneMonth = new Date()\n        dateLessOneMonth.setMonth(dateLessOneMonth.getMonth() - 1)\n        return new Date(profile?.created) < dateLessOneMonth;\n    }\n\n    useEffect(() => {\n        if (userRegisteredToReguliere() && !alreadyShowNewsletterModal) {\n            setAlreadyShowNewsletterModal(true)\n        }\n    }, [newsletterOptions, alreadyShowNewsletterModal]);\n\n    const show = !alreadyShowNewsletterModal && !isLoading && !userRegisteredToReguliere() && userOldEnough()\n\n    return <ModalConfirmation\n        shouldShow={show}\n        title={<StyledTitle>\n            <span className=\"fa-regular fa-envelope fa-2xl\"/><br/>\n            NE MANQUEZ PAS NOS ACTUALITÉS !\n            </StyledTitle>}\n        dismissLabel=\"Non merci\"\n        confirmationLabel=\"Je m'inscris\"\n        onConfirm={inscription}\n        onClose={() => setAlreadyShowNewsletterModal(true)}\n        shouldDismissOnClick={false}\n        isConfirming={isLoadingUpdateProfile}\n    >\n        <StyledModalContent>\n\n            <p>Cela fait un moment que vous utilisez Action populaire, mais vous n'êtes toujours pas inscrit⸱e à la\n                lettre d'information de la France Insoumise.</p>\n            <p>Inscrivez-vous dès maintenant pour suivre de près par e-mail toutes les actualités du mouvement !</p>\n        </StyledModalContent>\n    </ModalConfirmation>\n}","import PropTypes from \"prop-types\";\nimport React, { useEffect } from \"react\";\nimport {\n  BrowserRouter,\n  Redirect,\n  Route,\n  Switch,\n  useLocation,\n} from \"react-router-dom\";\nimport ScrollMemory from \"react-router-scroll-memory\";\n\nimport { useAppLoader } from \"@agir/front/app/hooks/useAppLoader\";\nimport { useMobileApp } from \"@agir/front/app/hooks/useMobileApp\";\nimport { useAuthentication } from \"@agir/front/authentication/hooks\";\nimport routes, { BASE_PATH, routeConfig } from \"./routes.config\";\nimport useTracking from \"./useTracking\";\n\nimport ConnectivityWarning from \"@agir/front/app/ConnectivityWarning\";\nimport Footer from \"@agir/front/app/Footer\";\nimport TopBar from \"@agir/front/app/Navigation/TopBar\";\nimport OpenGraphTags from \"@agir/front/app/OpenGraphTags\";\nimport NotFoundPage from \"@agir/front/notFoundPage/NotFoundPage\";\nimport Page from \"./Page\";\n\nimport logger from \"@agir/lib/utils/logger\";\nimport ModalMissingNewsletter from \"@agir/front/app/ModalMissingNewsletter\";\n\nconst log = logger(__filename);\n\nexport const ProtectedComponent = (props) => {\n  const { route, ...rest } = props;\n  const { Component, AnonymousComponent = null } = route;\n\n  const location = useLocation();\n  const isAuthorized = useAuthentication(route);\n\n  useAppLoader(isAuthorized !== null);\n  useEffect(() => {\n    if (isAuthorized === null) {\n      return;\n    }\n    const PreloadedComponent = isAuthorized ? Component : AnonymousComponent;\n    if (\n      PreloadedComponent &&\n      typeof PreloadedComponent.preload === \"function\"\n    ) {\n      log.debug(\"Preloading\", PreloadedComponent);\n      PreloadedComponent.preload();\n    }\n  }, [isAuthorized, AnonymousComponent, Component]);\n\n  if (isAuthorized === null) {\n    return null;\n  }\n\n  if (isAuthorized === true) {\n    return <Page Component={Component} routeConfig={route} {...rest} />;\n  }\n\n  if (AnonymousComponent) {\n    const routeConfig = route.anonymousConfig\n      ? {\n          ...route,\n          ...route.anonymousConfig,\n        }\n      : route;\n    return (\n      <Page\n        Component={AnonymousComponent}\n        routeConfig={routeConfig}\n        {...rest}\n      />\n    );\n  }\n\n  return (\n    <Redirect\n      to={{\n        pathname: routeConfig.login.getLink(),\n        state: { next: location.pathname },\n      }}\n    />\n  );\n};\nProtectedComponent.propTypes = {\n  route: PropTypes.object.isRequired,\n};\n\nconst TrackingComponent = () => {\n  useTracking();\n  return null;\n};\nconst Router = ({ children }) => {\n  const { isMobileApp } = useMobileApp();\n  return (\n    <BrowserRouter basename={BASE_PATH}>\n      <ModalMissingNewsletter />\n      <TrackingComponent />\n      <ScrollMemory />\n      <TopBar />\n      <Switch>\n        {routes.map((route) => {\n          const hasTopBar =\n            !route.hideTopBar && (!route.appOnlyTopBar || isMobileApp);\n          return (\n            <Route key={route.id} path={route.path} exact={!!route.exact}>\n              <OpenGraphTags\n                title={route.label}\n                description={route.description}\n              />\n              {!route.hideConnectivityWarning && (\n                <ConnectivityWarning hasTopBar={hasTopBar} />\n              )}\n              <ProtectedComponent route={route} hasTopBar={hasTopBar} />\n            </Route>\n          );\n        })}\n        <Route key=\"not-found\">\n          <NotFoundPage />\n        </Route>\n      </Switch>\n      {children}\n      <Footer />\n    </BrowserRouter>\n  );\n};\n\nRouter.propTypes = {\n  children: PropTypes.node,\n};\nexport default Router;\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useSessionStorage } from \"react-use\";\nimport useSWR from \"swr\";\nimport useSWRImmutable from \"swr/immutable\";\nimport useSWRInfinite from \"swr/infinite\";\n\nimport {\n  setActivityAsInteracted,\n  getActivityEndpoint,\n} from \"@agir/activity/common/api\";\nimport { ACTIVITY_STATUS } from \"@agir/activity/common/helpers\";\n\nconst ACTIVITY_PAGE_SIZE = 10;\n\nexport const useActivities = () => {\n  const { data, error, mutate, size, setSize, isValidating } = useSWRInfinite(\n    (index) =>\n      getActivityEndpoint(\"activities\", {\n        page: index + 1,\n        pageSize: ACTIVITY_PAGE_SIZE,\n      }),\n  );\n\n  const activities = useMemo(() => {\n    const activities = {};\n    const activityIds = [];\n    if (Array.isArray(data)) {\n      data.forEach(({ results }) => {\n        if (Array.isArray(results)) {\n          results.forEach((activity) => {\n            if (!activities[activity.id]) {\n              activities[activity.id] = activity;\n              activityIds.push(activity.id);\n            }\n          });\n        }\n      });\n    }\n    return activityIds.map((id) => activities[id]);\n  }, [data]);\n\n  const isLoadingInitialData = !data && !error;\n\n  const isLoadingMore =\n    isLoadingInitialData ||\n    (size > 0 && data && typeof data[size - 1] === \"undefined\");\n\n  const activityCount = (data && data[data.length - 1]?.count) || 0;\n  const isEmpty = activityCount === 0;\n  const isReachingEnd =\n    isEmpty ||\n    activities.length === activityCount ||\n    (data && data[data.length - 1]?.results?.length < ACTIVITY_PAGE_SIZE);\n  const isRefreshing = isValidating && data && data.length === size;\n\n  const loadMore = useCallback(() => setSize(size + 1), [setSize, size]);\n\n  return {\n    activities,\n    error,\n    isLoadingInitialData,\n    isLoadingMore,\n    isRefreshing,\n    loadMore: isEmpty || isReachingEnd ? undefined : loadMore,\n    mutate,\n  };\n};\n\nexport const useUnreadActivityCount = () => {\n  const [isReady, setIsReady] = useState(false);\n  const { data: session } = useSWR(\"/api/session/\");\n  const { data } = useSWR(\n    isReady && getActivityEndpoint(\"unreadActivityCount\"),\n    {\n      dedupingInterval: 10000,\n      focusThrottleInterval: 10000,\n    },\n  );\n\n  useEffect(() => {\n    if (session?.user) {\n      setIsReady(true);\n    }\n  }, [session]);\n\n  return data?.unreadActivityCount || 0;\n};\n\nexport const useCustomAnnouncement = (slug, shouldPause = true) => {\n  const [wasPaused, setIsPaused] = useSessionStorage(`AP__${slug}__p`);\n  const { data: session } = useSWR(\"/api/session/\");\n\n  const isPaused = shouldPause && wasPaused;\n  const { data, mutate, error } = useSWRImmutable(\n    !isPaused && session?.user && slug\n      ? getActivityEndpoint(\"customAnnouncement\", { slug })\n      : null,\n  );\n  const errorStatus = error?.response?.status;\n  const announcement =\n    !data?.id || data?.status === ACTIVITY_STATUS.STATUS_INTERACTED\n      ? null\n      : data;\n\n  const activityId = announcement?.activityId;\n  const dismissCallback = useCallback(async () => {\n    if (!activityId) {\n      return;\n    }\n    await setActivityAsInteracted(activityId);\n\n    mutate(\n      (announcement) => ({\n        ...announcement,\n        status: ACTIVITY_STATUS.STATUS_INTERACTED,\n      }),\n      false,\n    );\n  }, [activityId, mutate]);\n\n  useEffect(() => {\n    shouldPause && errorStatus === 404 && setIsPaused(true);\n  }, [shouldPause, setIsPaused, errorStatus]);\n\n  const isLoading =\n    !isPaused && errorStatus !== 404 && typeof data === \"undefined\";\n\n  return [announcement, dismissCallback, isLoading];\n};\n"],"names":["Title","styled","span","MenuLink","Link","_ref","$active","theme","primary500","_ref2","_ref3","RawFeatherIcon","CounterBadge","StyledBottomBar","nav","props","background0","text50","zindexBottomBar","LINKS","CONFIG","filter","_ref4","mobile","_ref5","active","unreadMessageCount","unreadActivityCount","React","map","link","_link$icon","key","id","route","unreadMessageBadge","value","unreadActivityBadge","icon","includes","className","concat","style","fontSize","fontWeight","paddingBottom","name","inline","title","useUnreadActivityCount","useUnreadMessageCount","BottomBar","_extends","routes","useSelector","getRoutes","href","feedbackForm","isMobileApp","useMobileApp","ConnectedFloatButton","background","content","useMutate","funcApi","onSuccess","_useState","useState","_useState2","_slicedToArray","error","setError","_useState3","_useState4","data","setData","_useState5","_useState6","isLoading","setIsLoading","_mutate","_asyncToGenerator","_regeneratorRuntime","_callee","statusCode","response","_e$response","_args","arguments","_context","prev","next","apply","sent","undefined","abrupt","status","t0","message","finish","stop","mutate","useAuthentication","isSessionLoaded","selector","authentication","neededAuthentication","AUTHENTICATION","NONE","useBookmarkedEmails","legacyBookmarkedEmails","getBookmarkedEmails","bookmarkedEmails","setBookmarkedEmails","useEffect","length","bookmarkEmails","addBookmarkedEmail","useCallback","email","bookmarkEmail","DEFAULT_TITLE","_props$description","description","_props$type","type","_props$url","url","_props$image","image","pageTitle","Helmet","property","SoutienProgressBarContainer","div","CounterContainer","white","ProgressBar","barHeight","soutienPrimary","soutienLight","ProgressBarStep","goal","SoutienProgressBar","_ref6","_soutienCounter$count2","soutienCounter","useSoutienCounter","barStepRef","useRef","_soutienCounter$count","count","currentPercent","barStep","Math","ceil","current","width","borderBottomRightRadius","borderTopRightRadius","console","ref","postFinalizeCode","code","axios","post","opts","useSWR","refreshInterval","initializeValidation","formData","_x","postSoutienData","_callee2","turnstileToken","_context2","headers","_x2","_x3","finalizeSoutien","_callee3","verificationCode","operationToken","_context3","_x4","_x5","_x6","useAppLoader","isReady","document","getElementById","loader","setLoader","addEventListener","remove","opacity","zIndex","StyledIcon","secondary500","StyledContainer","borderRadius","Button","StyledPage","_props$title","_props$subtitle","subtitle","errorMessage","_props$hasReload","hasReload","_props$hasTopBar","hasTopBar","children","TopBar","Spacer","size","color","block","onClick","window","location","reload","ExternalRedirect","params","addQueryStringParams","replace","propTypes","PropTypes","isRequired","InternalRedirect","to","state","backLink","toast","rest","_objectWithoutProperties","_excluded","sendToast","useToast","useEffectOnce","Array","isArray","_toConsumableArray","_typeof","useMemo","pathname","nextState","_objectSpread","routeConfig","split","search","Redirect","RouteRedirect","routeParams","_excluded2","_useRoute","useRoute","isInternal","OfflineBlock","_ref$hasTopBar","_ref$title","_ref$subtitle","_ref$reloadOnReconnec","reloadOnReconnection","isOffline","useIsOffline","wasOffline","usePrevious","ErrorPage","src","illustration","height","marginBottom","trim","Counter","viewBox","fill","xmlns","cx","cy","r","stroke","x","y","dominantBaseline","textAnchor","String","isNaN","parseInt","$background","error500","zindexNavigationCounter","$border","$color","useLocation","previous","user","getUser","userId","_paq","sentrySetUser","ip_address","push","log","logger","StyledWarning","animated","$hasTopBar","zindexTopBar","backgroundCOlor","collapse","$hasDownloadBanner","_useDownloadBanner","useDownloadBanner","hasDownloadBanner","offline","debug","display","setDisplay","_useMemo","_useMemo2","warning","timeout","setTimeout","clearTimeout","useTransition","initial","enter","leave","transitions","item","backgroundColor","Footer","lazy","getIsSessionLoaded","isConnected","getIsConnected","find","match","hideFooter","displayFooterOnMobileApp","Suspense","fallback","isSignedIn","hasBanner","hideFooterBanner","SoutienBannerButton","SoutienBannerContainer","LFIsecondary500","SoutienBanner","_window","apConfig","soutien","enabledFront","soutien2027","$smallBackgroundColor","Image","Container","article","$isClickable","linkRef","handleClick","click","desktop","backgroundImage","dangerouslySetInnerHTML","__html","markAsDisplayed","activities","announcements","announcement","Announcement","FacebookLoginContainer","facebookLight","black","DismissMessage","a","_useCustomAnnouncemen","useCustomAnnouncement","_useCustomAnnouncemen2","dismissCallback","session","isIOS","facebookLogin","facebookLogo","alt","margin","small","marginRight","facebookWhiteLogo","StyledLink","StyledMenu","ul","text500","text700","links","label","NavigationLink","_ref6$unreadMessageCo","_ref6$unreadActivityC","secondaryLinks","external","strokeWidth","SecondaryMenu","marginTop","listStyle","padding","SecondarySideBar","userRoutes","groups","userGroups","group","SideBar","LeftColumn","aside","zindexMainContent","MainColumn","RightColumn","MainContainer","collapseTablet","events","LayoutTitle","LayoutSubtitle","ActionButtons","UpcomingEvents","orientation","FacebookLoginAd","Announcements","Component","useResponsiveMemo","MobileLayout","DesktopLayout","generateLogger","CustomFallback","Fallback","SentryErrorBoundary","toString","answerToBannerAnnouncement","announcementId","answerId","put","SpinnerAnimation","keyframes","Loader","i","Spinner","BackgroundAnimation","Banner","text25","Answers","BannerAnnouncementDone","Close","BannerAnnouncement","_currentAnnouncement$","currentAnnouncement","setCurrentAnnouncement","done","setDone","selectedAnswer","setSelectedAnswer","_useState7","_useState8","announcementsHandled","setAnnouncementsHandled","_useActiveBannerAnnou","refresh","_useMutate","mutateAnswer","from","config","duration","_userAnswer","answer","AnnouncementDone","question","afterMessage","nextAnnouncement","_nextAnnouncement","closeAnnouncement","_closeAnnouncement","get","hasAnswers","answers","_currentAnnouncement$2","userAnswer","dispatch","useDispatch","history","useHistory","useParams","isPartial","setBackLink","setTopBarRightLink","setAdminLink","setPageTitle","topBarRightLink","unlisten","listen","action","hash","JSON","stringify","keepScroll","scrollTo","redirectTo","redirectProps","ErrorBoundary","hasLayout","Layout","layoutProps","minHeight","hideFeedbackButton","HelpButton","StyledTitle","StyledModalContent","ModalMissingNewsletter","_useLocalStorage","useLocalStorage","_useLocalStorage2","alreadyShowNewsletterModal","setAlreadyShowNewsletterModal","_useSWR","profile","mutateProfile","isLoadingUpdateProfile","setIsLoadingUpdateProfile","newsletterOptions","getNewsletterStatus","newsletters","userRegisteredToReguliere","_newsletterOptions$LF","_newsletterOptions$LF2","_inscription","updatedProfile","updateProfile","dateLessOneMonth","show","Date","setMonth","getMonth","created","ModalConfirmation","shouldShow","dismissLabel","confirmationLabel","onConfirm","onClose","shouldDismissOnClick","isConfirming","ProtectedComponent","_route$AnonymousCompo","AnonymousComponent","isAuthorized","PreloadedComponent","preload","Page","anonymousConfig","login","getLink","TrackingComponent","useTracking","BrowserRouter","basename","BASE_PATH","ScrollMemory","Switch","hideTopBar","appOnlyTopBar","Route","path","exact","OpenGraphTags","hideConnectivityWarning","ConnectivityWarning","NotFoundPage","useActivities","_data","_data2","_useSWRInfinite","useSWRInfinite","index","getActivityEndpoint","page","pageSize","setSize","isValidating","activityIds","forEach","results","activity","isLoadingInitialData","isLoadingMore","activityCount","isEmpty","isReachingEnd","isRefreshing","loadMore","setIsReady","dedupingInterval","focusThrottleInterval","slug","_error$response","shouldPause","_useSessionStorage","useSessionStorage","_useSessionStorage2","wasPaused","setIsPaused","isPaused","_useSWRImmutable","useSWRImmutable","errorStatus","ACTIVITY_STATUS","STATUS_INTERACTED","activityId","setActivityAsInteracted"],"sourceRoot":""}