{"version":3,"file":"js/48184-5207d64bccf521e4934c.js","mappings":"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","sources":["webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/ActivityPublicContext.js","webpack://StravaModern/./app/javascript/apps/activities/MapElevationChartWrapper/styles.scss?a6e5","webpack://StravaModern/./app/javascript/apps/activities/MapElevationChartWrapper/index.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/CTA/CTA.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/CTA/index.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/AthleteBanner/styles.scss?345b","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/AthleteBanner/index.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/Comments/styles.scss?144d","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/Comments/index.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/Summary/styles.scss?e04d","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/Summary/index.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/MoreActivities/styles.scss?c4d3","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/MoreActivities/index.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/Photos/styles.scss?5c47","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/Photos/index.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/Upsell/styles.scss?8b05","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/components/Upsell/index.js","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/styles.scss?1ca5","webpack://StravaModern/./app/javascript/apps/activities/ActivityPublic/index.js","webpack://StravaModern/./app/javascript/components/FooterUpsell/styles.scss?69d3","webpack://StravaModern/./app/javascript/components/FooterUpsell/index.js","webpack://StravaModern/./app/javascript/utils/analytics.js"],"sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nconst ActivityPublicContext = createContext(undefined);\nActivityPublicContext.displayName = 'ActivityPublicContext';\n\nexport const useActivityPublicContext = () => {\n const context = useContext(ActivityPublicContext);\n\n // Fail fast if hook is used outside the provider\n if (!context) {\n throw new Error(\n 'useActivityPublicContext must be used within the ActivityPublicContextProvider'\n );\n }\n\n return context;\n};\n\nexport const ActivityPublicContextProvider = ({\n children,\n openSignUpModal,\n registerUrl, // `/register?activity_id=`, param is required for the post-onboarding redirect to the activity page\n track,\n athletePageUrl\n}) => {\n const providerState = useMemo(\n () => ({\n openSignUpModal,\n track,\n registerUrl,\n athletePageUrl\n }),\n [athletePageUrl, openSignUpModal, registerUrl, track]\n );\n\n return (\n \n {children}\n \n );\n};\n\nActivityPublicContextProvider.propTypes = {\n children: PropTypes.node.isRequired,\n openSignUpModal: PropTypes.func.isRequired,\n registerUrl: PropTypes.string.isRequired,\n track: PropTypes.func.isRequired,\n athletePageUrl: PropTypes.string.isRequired\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"map\":\"MapElevationChartWrapper--map--Ba8AH\",\"marker\":\"MapElevationChartWrapper--marker--U2gwr\"};","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\n// Components\nimport Map from '@strava/ui/Map';\nimport Polyline from '@strava/ui/Map/Polyline';\nimport Marker from '@strava/ui/Map/Marker';\nimport ElevationChart from '@strava/ui/ElevationChart';\nimport I18n from 'utils/I18n';\n\n// Static Assets\nimport startMarker from '@strava/ui/Map/images/map-marker-start.png';\nimport rabbitMarker from '@strava/ui/Map/images/map-marker-rabbit.png';\nimport endMarker from '@strava/ui/Map/images/map-marker-end.png';\n\n// Stylesheets\nimport styles from './styles.scss';\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\n/*\nThe purpose of this wrapper is to provide both a Map and ElevationChart component\nand this wrapper component will pass around an index that the user is hovering\non so that we can display the current point on the map based on where they're\nhovering on the elevation chart.\n*/\n\nfunction MapElevationChartWrapper({ streams }) {\n const [rabbitIndex, setRabbitIndex] = useState(null);\n\n return (\n <>\n \n \n\n \n \"Route\n \n\n \n \"Route\n \n\n {rabbitIndex && (\n \n \n \n )}\n \n\n setRabbitIndex(index)}\n onMouseLeave={() => setRabbitIndex(null)}\n formatters={{\n ElevationFormatter(units) {\n return I18n.elevationFormatter(units);\n },\n DistanceFormatter(units) {\n return I18n.distanceFormatter(units);\n },\n PercentFormatter(units) {\n return I18n.percentFormatter(units);\n }\n }}\n />\n \n );\n}\n\nMapElevationChartWrapper.propTypes = {\n streams: PropTypes.shape({\n latlng: PropTypes.arrayOf(PropTypes.array).isRequired,\n altitude: PropTypes.arrayOf(PropTypes.number).isRequired,\n distance: PropTypes.arrayOf(PropTypes.number).isRequired,\n unitSystem: PropTypes.string.isRequired\n }).isRequired\n};\n\nexport default MapElevationChartWrapper;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@strava/ui/Button';\nimport { typography } from '@strava/ui-tokens/js';\n\nconst CTA = ({ children, onClick, ...props }) => {\n\n return (\n {\n onClick();\n }}\n style={{ fontWeight: typography.fontWeightDemi }}\n {...props}\n >\n {children}\n \n );\n};\n\nCTA.propTypes = {\n children: PropTypes.node.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\n\nexport default CTA;\n","export { default } from './CTA';\n","// extracted by mini-css-extract-plugin\nexport default {\"banner-wrapper\":\"AthleteBanner--banner-wrapper--KnAzG\",\"bannerWrapper\":\"AthleteBanner--banner-wrapper--KnAzG\",\"banner-container\":\"AthleteBanner--banner-container--SQeWp\",\"bannerContainer\":\"AthleteBanner--banner-container--SQeWp\",\"details-wrapper\":\"AthleteBanner--details-wrapper--2y+IQ\",\"detailsWrapper\":\"AthleteBanner--details-wrapper--2y+IQ\",\"follow-button-wrapper\":\"AthleteBanner--follow-button-wrapper--G5hBJ\",\"followButtonWrapper\":\"AthleteBanner--follow-button-wrapper--G5hBJ\",\"stats-wrapper\":\"AthleteBanner--stats-wrapper--zqZX+\",\"statsWrapper\":\"AthleteBanner--stats-wrapper--zqZX+\",\"avatar-wrapper\":\"AthleteBanner--avatar-wrapper--thpmF\",\"avatarWrapper\":\"AthleteBanner--avatar-wrapper--thpmF\",\"avatar\":\"AthleteBanner--avatar--skl8+\",\"name\":\"AthleteBanner--name--vBcz9\",\"location\":\"AthleteBanner--location--Kjp+m\",\"stat-label\":\"AthleteBanner--stat-label--PwMnN\",\"statLabel\":\"AthleteBanner--stat-label--PwMnN\",\"banner-stats\":\"AthleteBanner--banner-stats--s3Sa0\",\"bannerStats\":\"AthleteBanner--banner-stats--s3Sa0\"};","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport Avatar from '@strava/ui/Avatar';\nimport Stats from '@strava/ui/Stats';\nimport Stat from '@strava/ui/Stat';\nimport I18n from 'utils/I18n';\nimport { useActivityPublicContext } from '../../ActivityPublicContext';\nimport CTA from '../CTA';\n\nimport styles from './styles.scss';\n\nconst AthleteBanner = ({\n name,\n firstName,\n avatarUrl,\n location,\n followersCount,\n totalDistance,\n totalActivities,\n unitSystem\n}) => {\n const { openSignUpModal, track, athletePageUrl } = useActivityPublicContext();\n\n const trackClick = useCallback(\n (element) => {\n track({\n element,\n action: 'click'\n });\n },\n [track]\n );\n\n const handleFollowAthleteClick = () => {\n trackClick('follow_on_strava');\n openSignUpModal({\n variant: 'follow_athlete',\n redirectUrl: athletePageUrl,\n customHeader: { entityName: firstName, entityImgSrc: avatarUrl }\n });\n };\n\n return (\n
\n
\n
\n {\n trackClick('profile_picture');\n openSignUpModal({ variant: 'generic', redirectUrl: window.location.href });\n }}\n />\n
\n
\n

{name}

\n {location}\n
\n
\n \n {I18n.t('strava.activities.show_public.follow_on_strava_v2', {\n firstName\n })}\n \n
\n \n \n {totalDistance && (\n \n )}\n {totalActivities ? (\n \n ) : null}\n \n
\n
\n );\n};\n\nAthleteBanner.defaultProps = {\n totalDistance: null,\n totalActivities: null\n};\n\nAthleteBanner.propTypes = {\n name: PropTypes.string.isRequired,\n firstName: PropTypes.string.isRequired,\n location: PropTypes.string.isRequired,\n avatarUrl: PropTypes.string.isRequired,\n followersCount: PropTypes.number.isRequired,\n unitSystem: PropTypes.string.isRequired,\n totalDistance: PropTypes.string,\n totalActivities: PropTypes.number\n};\n\nexport default AthleteBanner;\n","// extracted by mini-css-extract-plugin\nexport default {\"comments-container\":\"Comments--comments-container--O5fNA\",\"commentsContainer\":\"Comments--comments-container--O5fNA\",\"comment\":\"Comments--comment--PMgPS\",\"avatar-wrapper\":\"Comments--avatar-wrapper--MHzlH\",\"avatarWrapper\":\"Comments--avatar-wrapper--MHzlH\",\"comment-wrapper\":\"Comments--comment-wrapper--FveeV\",\"commentWrapper\":\"Comments--comment-wrapper--FveeV\",\"avatar\":\"Comments--avatar--NQL-J\",\"comment-author\":\"Comments--comment-author--xUY1Z\",\"commentAuthor\":\"Comments--comment-author--xUY1Z\",\"comment-body\":\"Comments--comment-body--di1xp\",\"commentBody\":\"Comments--comment-body--di1xp\",\"comments-list\":\"Comments--comments-list--Rs59D\",\"commentsList\":\"Comments--comments-list--Rs59D\",\"empty\":\"Comments--empty--bCV+V\",\"sign-up-button\":\"Comments--sign-up-button--+0-jJ\",\"signUpButton\":\"Comments--sign-up-button--+0-jJ\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Avatar from '@strava/ui/Avatar';\nimport I18n from 'utils/I18n';\nimport CTA from '../CTA';\nimport { useActivityPublicContext } from '../../ActivityPublicContext';\n\nimport styles from './styles.scss';\n\nfunction CommentBody({ body }) {\n const { track } = useActivityPublicContext();\n if (typeof body === 'string') {\n return body;\n }\n\n // The order of these tokens will never change, so\n // it's ok to use `index` as a key.\n const formattedTokens = body.map((token, index) => {\n const key = index;\n if (token.type === 'mention_token') {\n return (\n {\n track({\n element: 'comment_mention',\n action: 'click'\n });\n }}\n >\n {token.text}\n \n );\n }\n\n return {token.text};\n });\n\n return <>{formattedTokens};\n}\n\nCommentBody.propTypes = {\n body: PropTypes.oneOfType([PropTypes.string, PropTypes.array]).isRequired\n};\n\nconst Comment = ({\n body,\n displayName,\n avatar,\n athleteLink,\n hideAthleteLink\n}) => {\n const { track } = useActivityPublicContext();\n return (\n
\n
\n {\n track({\n element: 'comment_profile_picture',\n action: 'click'\n });\n }}\n />\n
\n\n
\n
\n {hideAthleteLink ? (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n {\n track({\n element: 'comment_profile',\n action: 'click'\n });\n }}\n >\n {displayName}\n
\n ) : (\n {\n track({\n element: 'comment_profile',\n action: 'click'\n });\n }}\n >\n {displayName}\n \n )}\n
\n
\n \n
\n
\n \n );\n};\n\nComment.propTypes = {\n body: PropTypes.oneOfType([PropTypes.string, PropTypes.array]).isRequired,\n displayName: PropTypes.string.isRequired,\n avatar: PropTypes.string.isRequired,\n athleteLink: PropTypes.string.isRequired,\n hideAthleteLink: PropTypes.bool\n};\n\nComment.defaultProps = {\n hideAthleteLink: false\n};\n\nconst Comments = ({ comments, totalCommentCount }) => {\n const { openSignUpModal, track } = useActivityPublicContext();\n\n const handleKudoCommentClick = () => {\n track({ element: 'sign_up_to_comment', action: 'click' })\n openSignUpModal({\n variant: 'kudos_comment',\n redirectUrl: window.location.href\n });\n };\n\n const handleSignupToCommentEmptyStateClick = () => {\n track({ element: 'sign_up_to_comment_empty', action: 'click' })\n openSignUpModal({\n variant: 'kudos_comment',\n redirectUrl: window.location.href\n });\n };\n\n return (\n
\n {totalCommentCount > 0 ? (\n <>\n

\n {I18n.t('strava.activities.show_public.comments_v2', {\n count: totalCommentCount\n })}\n

\n
    \n {comments.map((comment) => (\n
  1. \n \n
  2. \n ))}\n
\n \n {I18n.t('strava.activities.show_public.signup_to_comment')}\n \n \n ) : (\n
\n

{I18n.t('strava.activities.show_public.no_comments')}

\n \n {I18n.t('strava.activities.show_public.signup_to_comment')}\n \n
\n )}\n
\n );\n};\n\nComments.propTypes = {\n comments: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n avatar: PropTypes.string,\n // The comment body could either be a string or array of objects.\n body: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.object)\n ]),\n displayName: PropTypes.string,\n hideAthleteLink: PropTypes.boolean,\n athleteLink: PropTypes.string\n })\n ).isRequired,\n totalCommentCount: PropTypes.number.isRequired\n};\n\nexport default Comments;\n","// extracted by mini-css-extract-plugin\nexport default {\"date-type\":\"Summary--date-type--4V2qi\",\"dateType\":\"Summary--date-type--4V2qi\",\"date\":\"Summary--date--JORm1\",\"summary-wrapper\":\"Summary--summary-wrapper--31f5b\",\"summaryWrapper\":\"Summary--summary-wrapper--31f5b\",\"type-text\":\"Summary--type-text--XqEr4\",\"typeText\":\"Summary--type-text--XqEr4\",\"header-text\":\"Summary--header-text--Cns7R\",\"headerText\":\"Summary--header-text--Cns7R\",\"name\":\"Summary--name--jJQph\",\"type-icon-wrapper\":\"Summary--type-icon-wrapper--Za2dc\",\"typeIconWrapper\":\"Summary--type-icon-wrapper--Za2dc\",\"type-icon\":\"Summary--type-icon--C0Mfk\",\"typeIcon\":\"Summary--type-icon--C0Mfk\",\"icon-list-wrapper\":\"Summary--icon-list-wrapper--rdLWm\",\"iconListWrapper\":\"Summary--icon-list-wrapper--rdLWm\",\"stats-wrapper\":\"Summary--stats-wrapper--USUvF\",\"statsWrapper\":\"Summary--stats-wrapper--USUvF\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Stats from '@strava/ui/Stats';\nimport Stat from '@strava/ui/Stat';\nimport { Markup } from 'interweave';\nimport {\n ActionsKudoNormalSmall,\n ActionsCommentNormalSmall,\n AchievementsTrophyNormalSmall\n} from '@strava/icons';\nimport { color as colorToken } from '@strava/ui-tokens/js';\nimport I18n from 'utils/I18n';\nimport { logError } from 'utils/sentry';\nimport ActivityIcon from 'components/ActivityIcon';\nimport Button from '@strava/ui/Button';\nimport { useActivityPublicContext } from '../../ActivityPublicContext';\n\nimport styles from './styles.scss';\n\nconst ICONS = {\n kudos: {\n Icon: ActionsKudoNormalSmall,\n trackElement: 'kudo',\n modalVariant: 'kudos_comment'\n },\n comments: {\n Icon: ActionsCommentNormalSmall,\n trackElement: 'comment',\n modalVariant: 'kudos_comment'\n },\n achievements: {\n Icon: AchievementsTrophyNormalSmall,\n trackElement: 'achievement_trophy',\n modalVariant: 'generic'\n }\n};\n\nconst Summary = ({\n name,\n date,\n type,\n detailedType,\n kudosCount,\n commentCount,\n achievementsCount,\n distance,\n elevation,\n time,\n calories\n}) => {\n const activityType = type.toLowerCase();\n const translatedActivityType = I18n.t(\n `strava.activities.types_v2.${activityType}`\n );\n\n const { openSignUpModal, track } = useActivityPublicContext();\n const iconFillColor = colorToken.colorExtendedNeutralN2;\n\n const trackClick = (element) => {\n track({\n element,\n action: 'click'\n });\n };\n\n const icon = (key, count) => {\n if (ICONS[key] === undefined) {\n logError(`invalid icon key '${key}'`);\n return null;\n }\n\n const { Icon, trackElement, modalVariant } = ICONS[key];\n const title = I18n.t(`strava.activities.show_public.${key}_icon`);\n\n return (\n {\n trackClick(trackElement);\n openSignUpModal({ variant: modalVariant, redirectUrl: window.location.href});\n }}\n data-cy={`${key}-icon`}\n >\n \n {count}\n \n );\n };\n\n return (\n
\n
\n {translatedActivityType}\n \n
\n\n
\n

{name}

\n
\n \n
\n
\n\n
    \n
  • {icon('kudos', kudosCount)}
  • \n
  • {icon('comments', commentCount)}
  • \n
  • {icon('achievements', achievementsCount)}
  • \n
\n\n \n \n }\n label={I18n.t('strava.activities.show_public.time')}\n type=\"stat-xl\"\n />\n {elevation && (\n \n )}\n {calories && (\n \n )}\n \n
\n );\n};\n\nSummary.defaultProps = {\n elevation: null,\n calories: null\n};\n\nSummary.propTypes = {\n name: PropTypes.string.isRequired,\n date: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n detailedType: PropTypes.string.isRequired,\n kudosCount: PropTypes.number.isRequired,\n commentCount: PropTypes.number.isRequired,\n achievementsCount: PropTypes.number.isRequired,\n distance: PropTypes.string.isRequired,\n time: PropTypes.string.isRequired,\n elevation: PropTypes.string,\n calories: PropTypes.number\n};\n\nexport default Summary;\n","// extracted by mini-css-extract-plugin\nexport default {\"more-activities\":\"MoreActivities--more-activities--4Phq1\",\"moreActivities\":\"MoreActivities--more-activities--4Phq1\",\"header\":\"MoreActivities--header--kTMJT\",\"body\":\"MoreActivities--body--8lgBT\",\"title\":\"MoreActivities--title--ylihx\",\"header-cta\":\"MoreActivities--header-cta--khhDp\",\"headerCta\":\"MoreActivities--header-cta--khhDp\",\"activities-list\":\"MoreActivities--activities-list--ogzzP\",\"activitiesList\":\"MoreActivities--activities-list--ogzzP\",\"activity\":\"MoreActivities--activity--7XE2n\",\"activity-footer\":\"MoreActivities--activity-footer--V5Y4z\",\"activityFooter\":\"MoreActivities--activity-footer--V5Y4z\",\"activity-image\":\"MoreActivities--activity-image--dmpKh\",\"activityImage\":\"MoreActivities--activity-image--dmpKh\",\"activity-details\":\"MoreActivities--activity-details--M64YT\",\"activityDetails\":\"MoreActivities--activity-details--M64YT\",\"activity-header\":\"MoreActivities--activity-header--4fQNZ\",\"activityHeader\":\"MoreActivities--activity-header--4fQNZ\",\"activity-body\":\"MoreActivities--activity-body--4aqed\",\"activityBody\":\"MoreActivities--activity-body--4aqed\",\"activity-title\":\"MoreActivities--activity-title--Hg9dz\",\"activityTitle\":\"MoreActivities--activity-title--Hg9dz\",\"time\":\"MoreActivities--time--A4cEe\",\"activity-icon\":\"MoreActivities--activity-icon--iYRxu\",\"activityIcon\":\"MoreActivities--activity-icon--iYRxu\",\"upsell\":\"MoreActivities--upsell--MxBHf\",\"upsell-container\":\"MoreActivities--upsell-container--I+T+y\",\"upsellContainer\":\"MoreActivities--upsell-container--I+T+y\",\"upsell-cta\":\"MoreActivities--upsell-cta--T9mZJ\",\"upsellCta\":\"MoreActivities--upsell-cta--T9mZJ\",\"activity-icon-image\":\"MoreActivities--activity-icon-image--FABWC\",\"activityIconImage\":\"MoreActivities--activity-icon-image--FABWC\",\"media-body\":\"MoreActivities--media-body--nCnHV\",\"mediaBody\":\"MoreActivities--media-body--nCnHV\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport MediaQuery, { breakpoints } from 'utils/media-query';\nimport ActivityIcon from 'components/ActivityIcon';\nimport CTA from '../CTA';\nimport { useActivityPublicContext } from '../../ActivityPublicContext';\n\nimport styles from './styles.scss';\n\nconst ActivityCard = ({ activity }) => {\n const activityType = activity.type.toLowerCase();\n const translatedActivityType = I18n.t(\n `strava.activities.types_v2.${activityType}`\n );\n\n const { track } = useActivityPublicContext();\n\n return (\n \n track({\n element: `view_this_${activityType}`,\n action: 'click'\n })\n }\n >\n
\n {activity.image.alt}\n
\n\n
\n
\n \n
\n\n
\n

{activity.name}

\n
\n
\n \n
\n
\n
\n\n
\n {I18n.t('strava.activities.show_public.view_this_activity', {\n activity_type: translatedActivityType\n })}\n
\n
\n \n );\n};\n\nActivityCard.propTypes = {\n activity: PropTypes.shape({\n name: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n detailed_type: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n image: PropTypes.shape().isRequired,\n start_date_local: PropTypes.string.isRequired\n }).isRequired\n};\n\nconst Upsell = () => {\n const { track, openSignUpModal } = useActivityPublicContext();\n\n return (\n
\n

{I18n.t('strava.activities.show_public.see_more')}

\n {\n track({\n element: 'signup_to_see_more',\n action: 'click'\n });\n openSignUpModal({\n variant: 'generic',\n redirectUrl: window.location.href\n });\n }}\n >\n {I18n.t('strava.activities.show_public.sign_up')}\n \n
\n );\n};\n\nconst MoreActivities = ({ athlete, activities }) => {\n const { track, openSignUpModal } = useActivityPublicContext();\n\n return (\n
\n
\n
\n
\n

\n {I18n.t(\n 'strava.activities.show_public.more_activities_from_athlete',\n { athlete_name: athlete.name }\n )}\n

\n {\n track({ element: 'signup_to_see_more', action: 'click' });\n openSignUpModal({\n variant: 'generic',\n redirectUrl: window.location.href\n });\n }}\n >\n {I18n.t('strava.activities.show_public.sign_up')}\n \n
\n\n
\n
    \n {activities.map((activity) => (\n
  • \n \n
  • \n ))}\n\n \n
  • \n \n
  • \n
    \n
\n
\n
\n
\n
\n );\n};\n\nMoreActivities.propTypes = {\n athlete: PropTypes.shape({\n name: PropTypes.string.isRequired\n }).isRequired,\n activities: PropTypes.arrayOf(PropTypes.shape()).isRequired\n};\n\nexport default MoreActivities;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Photos--container--e8Tyv\",\"photos-list\":\"Photos--photos-list--mBsRn\",\"photosList\":\"Photos--photos-list--mBsRn\",\"photo-wrapper\":\"Photos--photo-wrapper--I73KX\",\"photoWrapper\":\"Photos--photo-wrapper--I73KX\",\"overflow\":\"Photos--overflow--k2aB7\",\"overflow-count\":\"Photos--overflow-count--d52Aj\",\"overflowCount\":\"Photos--overflow-count--d52Aj\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport { useActivityPublicContext } from '../../ActivityPublicContext';\n\nimport styles from './styles.scss';\n\nexport function photoSrc(photo) {\n return photo.urls && photo.urls[Object.keys(photo.urls)[0]];\n}\n\nexport default function Photos({ photos }) {\n const { openSignUpModal, track } = useActivityPublicContext();\n\n if (photos.length === 0) {\n return null;\n }\n\n const trackPhotoClick = () => track({ element: 'photo', action: 'click' });\n\n const maxPhotos = 4;\n const displayPhotos = photos.slice(0, maxPhotos);\n const overflowCount = photos.length - maxPhotos + 1;\n\n const PhotoButton = ({ children, ...props }) => {\n return (\n {\n trackPhotoClick();\n openSignUpModal({ variant: 'generic', redirectUrl: window.location.href });\n }}\n data-cy=\"photo\"\n {...props}\n >\n {children}\n \n );\n };\n\n PhotoButton.propTypes = { children: PropTypes.node.isRequired };\n\n return (\n
\n

\n {I18n.t('strava.activities.show_public.photos_v2', {\n count: photos.length\n })}\n

\n
    \n {displayPhotos.map((photo) => (\n
  • \n \n {photo.caption}\n \n
  • \n ))}\n\n {overflowCount > 1 && (\n
  • \n \n +{overflowCount}\n \n
  • \n )}\n
\n
\n );\n}\n\nPhotos.propTypes = {\n photos: PropTypes.arrayOf(PropTypes.object).isRequired\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"ride\":\"Upsell--ride--W+SS4\",\"run\":\"Upsell--run--5SSaY\",\"upsell-container\":\"Upsell--upsell-container--ydJsC\",\"upsellContainer\":\"Upsell--upsell-container--ydJsC\",\"upsell-wrapper\":\"Upsell--upsell-wrapper--EotKi\",\"upsellWrapper\":\"Upsell--upsell-wrapper--EotKi\",\"content\":\"Upsell--content--ldWqH\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport { Markup } from 'interweave';\nimport { ActionsLockClosedNormalXsmall } from '@strava/icons';\nimport { color as colorToken } from '@strava/ui-tokens/js';\nimport { useActivityPublicContext } from '../../ActivityPublicContext';\n\nimport styles from './styles.scss';\n\nconst TYPES = {\n RIDE: 'ride',\n RUN: 'run'\n};\n\nconst UpsellCTA = ({ children, type }) => {\n const { openSignUpModal, track } = useActivityPublicContext();\n const trackClick = () => {\n track({ element: `sign_up_${type}`, action: 'click' });\n };\n\n return (\n // deliberately not using @strava/ui/Button here for styling reasons\n {\n trackClick();\n openSignUpModal({ variant: 'generic', redirectUrl: window.location.href });\n }}\n data-cy=\"upsell-cta\"\n >\n {children}\n \n );\n};\n\nUpsellCTA.propTypes = {\n children: PropTypes.node.isRequired,\n type: PropTypes.string.isRequired\n};\n\nconst Upsell = ({ type: _type }) => {\n const type = _type.toLowerCase();\n if (!Object.values(TYPES).includes(type)) {\n return null;\n }\n\n return (\n
\n

\n {I18n.t(\n `strava.activities.show_public.${\n type === TYPES.RIDE ? 'segments' : 'splits'\n }`\n )}\n

\n
\n
\n \n \n \n \n
\n
\n
\n );\n};\n\nUpsell.propTypes = {\n type: PropTypes.string.isRequired\n};\n\nexport default Upsell;\n","// extracted by mini-css-extract-plugin\nexport default {\"row\":\"ActivityPublic--row--yhx5J\",\"activity-data\":\"ActivityPublic--activity-data--GqweJ\",\"activityData\":\"ActivityPublic--activity-data--GqweJ\",\"map-data\":\"ActivityPublic--map-data--uvG7U\",\"mapData\":\"ActivityPublic--map-data--uvG7U\"};","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n SignUpModalContextProvider,\n HIDE_TIME_DELAY_MODAL,\n useSignUpModalContext\n} from '@strava/authentication-ui';\nimport { trackV2 } from 'utils/analytics';\nimport FooterUpsell from '../../../components/FooterUpsell';\nimport { ActivityPublicContextProvider } from './ActivityPublicContext';\nimport MapElevationChartWrapper from '../MapElevationChartWrapper';\nimport AthleteBanner from './components/AthleteBanner';\nimport Comments from './components/Comments';\nimport Summary from './components/Summary';\nimport MoreActivities from './components/MoreActivities';\nimport Photos from './components/Photos';\nimport Upsell from './components/Upsell';\nimport { isDev } from '../../../utils/devUtils';\nimport StravaPackageContextProviders from '../../StravaPackageContextProviders';\nimport styles from './styles.scss';\n\nconst okToOpenModal = () =>\n sessionStorage.getItem(HIDE_TIME_DELAY_MODAL) !== 'true';\n\nconst ActivityPublic = ({\n activity,\n photos,\n analyticsData\n}) => {\n const { streams } = activity;\n\n const track = useCallback(\n (fields) => {\n trackV2({ ...analyticsData, ...fields });\n },\n [analyticsData]\n );\n\n const { openSignUpModal } = useSignUpModalContext();\n\n useEffect(() => {\n let timeout;\n const queryParams = window.location.search;\n const params = new URLSearchParams(queryParams);\n\n // only set timeout if modal has not already been seen\n if (okToOpenModal()) {\n // debugging & QA-tests only - ?fast=true in url will speed up signup modal delay timer\n const signupModalDelay = params.get('fast') === 'true' ? 2000 : 6000;\n\n timeout = setTimeout(() => {\n // check again that modal is ok to open after time delay\n if (okToOpenModal()) {\n openSignUpModal({ variant: 'generic_time_delayed', redirectUrl: window.location.href });\n }\n }, signupModalDelay);\n }\n\n // debugging only - ?reset=true in url will remove HIDE_TIME_DELAY_MODAL from session storage\n if (params.get('reset') === 'true') {\n sessionStorage?.removeItem(HIDE_TIME_DELAY_MODAL);\n }\n\n return () => clearTimeout(timeout);\n }, [openSignUpModal]);\n\n return (\n \n
\n \n
\n
\n
\n {activity.map.present && streams && (\n \n )}\n
\n
\n \n \n \n \n
\n
\n
\n\n \n \n
\n \n );\n};\n\nActivityPublic.defaultProps = {\n photos: []\n};\n\nActivityPublic.propTypes = {\n activity: PropTypes.shape({\n type: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n streams: PropTypes.object.isRequired,\n commentCount: PropTypes.number.isRequired,\n authUrls: PropTypes.object.isRequired,\n map: PropTypes.shape({\n present: PropTypes.any.isRequired,\n src: PropTypes.object.isRequired\n }),\n athlete: PropTypes.shape({\n athletePageUrl: PropTypes.string.isRequired,\n }).isRequired,\n relatedActivities: PropTypes.array.isRequired,\n comments: PropTypes.array.isRequired,\n registerUrl: PropTypes.string.isRequired,\n deeplink: PropTypes.string.isRequired\n }).isRequired,\n photos: PropTypes.arrayOf(PropTypes.object),\n analyticsData: PropTypes.shape({\n category: PropTypes.string.isRequired,\n page: PropTypes.string.isRequired\n }).isRequired\n};\n\nconst ActivityPublicWrapper = ({ useMockData, ...props }) => {\n const [activityPublicProps, setActivityPublicProps] = useState(props);\n const { signUpModalContextData } = props;\n const { authenticationData } = signUpModalContextData;\n\n const {analyticsData} = props;\n\n // because of the limits of developing locally with activities, can use param `use_mock_data=true`\n // to see a nicely fleshed-out logged-out activity detail page\n useEffect(() => {\n if (useMockData && isDev()) {\n import('./mockData.json')\n .then((module) => {\n const { signUpModalProps } = props;\n setActivityPublicProps({ ...module.default, signUpModalProps });\n })\n .catch((err) => {\n // eslint-disable-next-line no-console\n console.error(err);\n });\n }\n // something about this is causing an infinite loop, so this ensures that we only import the mock data once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n \n \n \n \n );\n};\n\nActivityPublicWrapper.propTypes = {\n useMockData: PropTypes.bool.isRequired,\n signUpModalContextData: PropTypes.shape({\n authenticationData: PropTypes.shape({\n authorizationUrls: PropTypes.shape({\n email: PropTypes.string,\n facebook: PropTypes.string,\n google: PropTypes.string\n }),\n honeyPot: PropTypes.string,\n reCaptchaSiteKey: PropTypes.string,\n appleState: PropTypes.string,\n formAuthToken: PropTypes.string\n })\n }).isRequired,\n activity: PropTypes.shape({\n athlete: PropTypes.shape({\n firstName: PropTypes.string.isRequired,\n avatarUrl: PropTypes.string.isRequired,\n athletePageUrl: PropTypes.string.isRequired\n }).isRequired,\n activityPageUrl: PropTypes.string.isRequired\n }).isRequired,\n analyticsData: PropTypes.shape({\n category: PropTypes.string.isRequired,\n page: PropTypes.string.isRequired\n }).isRequired\n};\n\nexport default ActivityPublicWrapper;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"FooterUpsell--container--jVLTy\",\"btn\":\"FooterUpsell--btn--4SVm8\",\"btn-facebook\":\"FooterUpsell--btn-facebook--So5KY\",\"btnFacebook\":\"FooterUpsell--btn-facebook--So5KY\",\"btn-google\":\"FooterUpsell--btn-google--mc6Rn\",\"btnGoogle\":\"FooterUpsell--btn-google--mc6Rn\",\"btn-email\":\"FooterUpsell--btn-email--5hWfi\",\"btnEmail\":\"FooterUpsell--btn-email--5hWfi\",\"desktop\":\"FooterUpsell--desktop--b9P+H\",\"mobile\":\"FooterUpsell--mobile--VFmx8\"};","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport { trackV2 } from 'utils/analytics';\nimport { logError } from 'utils/sentry';\nimport { devLog } from 'utils/devUtils';\nimport styles from './styles.scss';\n\nconst GOOGLE_APP_LINK =\n 'https://play.google.com/store/apps/details?id=com.strava';\nconst APPLE_APP_LINK =\n 'https://itunes.apple.com/app/strava-cycling/id426826309?mt=8';\n\nconst trackClickEvent = (props) => {\n trackV2({\n ...props,\n action: 'click'\n });\n};\n\nconst FooterUpsell = ({ authUrls, analyticsData, deeplink }) => {\n const hardcodedAppLink = (() => {\n const { userAgent } = window.navigator;\n if (userAgent.includes('Android')) {\n return GOOGLE_APP_LINK;\n }\n if (userAgent.includes('iPad') || userAgent.includes('iPhone')) {\n return APPLE_APP_LINK;\n }\n return '/mobile';\n })();\n\n const [appLink, setAppLink] = useState(hardcodedAppLink);\n\n const createAppLink = useCallback(() => {\n // uses `window.branch.link` directly instead of `window.Strava.BranchIO` bc\n // the `window.Strava.BranchIO` object is not enabled after cookies have been\n // accepted until the page has been reloaded\n\n const linkData = {\n channel: 'web',\n feature: `${analyticsData.page} footer upsell`,\n data: {\n strava_deeplink_url: deeplink,\n $desktop_url: `${window.location.origin}/register`,\n logged_out_deeplink: true // https://github.com/strava/android/pull/20088\n }\n };\n\n window.branch.link(linkData, (err, link) => {\n if (err) {\n logError(err, {\n method: 'legacy FooterUpsell window.branch.link',\n linkData: JSON.stringify(linkData),\n ...(linkData?.tags && {\n 'linkData.tags': JSON.stringify(linkData?.tags)\n })\n });\n }\n devLog(`FooterUpsell applink - ${link}`);\n setAppLink(link);\n });\n }, [analyticsData.page, deeplink]);\n\n useEffect(() => {\n if (window.branch) {\n createAppLink();\n } else {\n window.addEventListener('BranchInitialized', createAppLink);\n }\n\n return () => {\n window.removeEventListener('BranchInitialized', createAppLink);\n };\n }, [createAppLink]);\n\n return (\n
\n

{I18n.t('strava.athletes.show_public.bottom_cta_header')}

\n\n
\n \n trackClickEvent({\n ...analyticsData,\n element: 'get_app',\n properties: { cta_copy: 'get_the_app', url: appLink }\n })\n }\n >\n {I18n.t('strava.athletes.show_public.get_the_app_cta')}\n \n
\n\n
\n \n trackClickEvent({ ...analyticsData, element: 'facebook_signup' })\n }\n >\n {I18n.t('strava.athletes.show_public.facebook_cta')}\n \n\n \n trackClickEvent({ ...analyticsData, element: 'google_signup' })\n }\n >\n {I18n.t('strava.athletes.show_public.google_cta')}\n \n\n \n trackClickEvent({\n ...analyticsData,\n element: 'start_signup',\n properties: { signup_copy: 'signup_using_email' }\n })\n }\n >\n {I18n.t('strava.athletes.show_public.email_cta')}\n \n
\n
\n );\n};\n\nFooterUpsell.propTypes = {\n authUrls: PropTypes.shape({\n facebook: PropTypes.string.isRequired,\n google: PropTypes.string.isRequired,\n email: PropTypes.string.isRequired\n }).isRequired,\n analyticsData: PropTypes.shape().isRequired,\n deeplink: PropTypes.string.isRequired\n};\n\nexport default FooterUpsell;\n","import { logMessage } from './sentry';\n\nexport function trackV2({ category, page, action, element, properties = {} }) {\n try {\n window.Strava.ExternalAnalytics.trackV2({\n category,\n page,\n action,\n element,\n properties\n });\n } catch (e) {\n logMessage(\n `Could not execute Strava.ExternalAnalytics.trackV2 event with the category:action ${category}:${action}`\n );\n }\n}\n\nexport default {\n trackV2\n};\n"],"names":["cov_o5psgusl1","ActivityPublicContext","createContext","undefined","displayName","useActivityPublicContext","context","useContext","Error","ActivityPublicContextProvider","_ref","children","openSignUpModal","registerUrl","track","athletePageUrl","providerState","useMemo","React","Provider","value","cov_jah7gight","streams","useState","rabbitIndex","setRabbitIndex","Map","latLng","latlng","className","styles","Polyline","id","Marker","src","startMarker","alt","slice","endMarker","rabbitMarker","ElevationChart","height","units","unitSystem","elevation","altitude","distance","onUpdateMarker","index","s","onMouseLeave","formatters","ElevationFormatter","I18n","elevationFormatter","DistanceFormatter","distanceFormatter","PercentFormatter","percentFormatter","cov_17rfkiyd1e","onClick","props","Button","_extends","variant","style","fontWeight","typography","cov_2kbws7pima","cov_18ww4xtpv2","AthleteBanner","name","firstName","avatarUrl","location","followersCount","totalDistance","totalActivities","trackClick","useCallback","element","action","Avatar","type","redirectUrl","window","href","CTA","handleFollowAthleteClick","customHeader","entityName","entityImgSrc","t","Stats","listClassName","Stat","label","labelClassName","year","Date","getFullYear","defaultProps","cov_2oknamlykt","CommentBody","body","formattedTokens","map","token","key","path","text","Comment","_ref2","avatar","athleteLink","hideAthleteLink","_ref3","comments","totalCommentCount","count","comment","handleKudoCommentClick","handleSignupToCommentEmptyStateClick","cov_26u05mm8to","ICONS","kudos","Icon","ActionsKudoNormalSmall","trackElement","modalVariant","ActionsCommentNormalSmall","achievements","AchievementsTrophyNormalSmall","Summary","date","detailedType","kudosCount","commentCount","achievementsCount","time","calories","activityType","toLowerCase","translatedActivityType","iconFillColor","colorToken","icon","logError","title","fill","dateTime","ActivityIcon","size","Markup","noWrap","content","Math","ceil","cov_12pvt825gr","ActivityCard","activity","activityImage","image","activityDetails","activityHeader","start_date_local","activityBody","activityTitle","activityIconContainer","activityIcon","detailed_type","activityIconImage","activityFooter","activity_type","Upsell","upsellContainer","upsellCta","athlete","activities","moreActivities","header","athlete_name","headerCta","activitiesList","MediaQuery","maxWidth","breakpoints","screenSm","upsell","cov_154disf8m4","photoSrc","photo","urls","Object","keys","Photos","photos","length","maxPhotos","displayPhotos","overflowCount","PhotoButton","unique_id","caption","cov_28q43wswvy","TYPES","RIDE","RUN","UpsellCTA","_type","values","includes","upsellWrapper","ActionsLockClosedNormalXsmall","cov_12q450dmbc","okToOpenModal","sessionStorage","getItem","HIDE_TIME_DELAY_MODAL","ActivityPublic","analyticsData","fields","trackV2","useSignUpModalContext","useEffect","timeout","queryParams","search","params","URLSearchParams","signupModalDelay","get","setTimeout","removeItem","clearTimeout","role","present","MapElevationChartWrapper","Comments","MoreActivities","relatedActivities","FooterUpsell","authUrls","deeplink","useMockData","activityPublicProps","setActivityPublicProps","signUpModalContextData","authenticationData","isDev","then","module","signUpModalProps","default","catch","err","console","error","StravaPackageContextProviders","SignUpModalContextProvider","category","cov_6canz4yhp","GOOGLE_APP_LINK","APPLE_APP_LINK","trackClickEvent","hardcodedAppLink","userAgent","navigator","appLink","setAppLink","createAppLink","linkData","channel","feature","page","data","strava_deeplink_url","$desktop_url","origin","logged_out_deeplink","branch","link","method","JSON","stringify","tags","devLog","addEventListener","removeEventListener","properties","cta_copy","url","facebook","google","email","signup_copy","cov_27awt08n9p","Strava","ExternalAnalytics","e","logMessage"],"sourceRoot":""}