{"version":3,"file":"js/strava_with_framework_and_feed-c6257583c6f08c116323.js","mappings":"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","sources":["webpack://strava-active/./app/javascript/components/EmailVerificationCTA/index.scss?534f","webpack://strava-active/./app/javascript/components/EmailVerificationCTA/index.js","webpack://strava-active/./app/javascript/components/EmailVerificationCTA/placements/NotificationEmailVerificationCTA/index.scss?ffba","webpack://strava-active/./app/javascript/components/EmailVerificationCTA/placements/NotificationEmailVerificationCTA/index.js","webpack://strava-active/./app/javascript/components/Feed/state/FeedContext.js","webpack://strava-active/./app/javascript/components/Feed/state/FeedEntityContext.js","webpack://strava-active/./app/javascript/components/Feed/state/feed-actions.js","webpack://strava-active/./app/javascript/components/Feed/feed.scss?5d97","webpack://strava-active/./app/javascript/components/Feed/components/Activity/styles.scss?e094","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/index.scss?3531","webpack://strava-active/./app/javascript/components/Feed/constants/FeedEntryTypes.js","webpack://strava-active/./app/javascript/components/Feed/props/feed-prop-types.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/PowerAndSegmentGoalAchievements/PowerAndSegmentGoalAchievements.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/PowerAndSegmentGoalAchievements/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/FeaturedSegmentEffortAndBestEffortAchievements/FeaturedSegmentEffortAndBestEffortAchievements.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/FeaturedSegmentEffortAndBestEffortAchievements/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/ActivityStats/ActivityStats.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/ActivityStats/index.js","webpack://strava-active/./app/javascript/components/Feed/state/feed-entity-actions.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/AchievementCount/AchievementCount.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/AchievementCount/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/ActivityTextBody/ActivityTextBody.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/ActivityTextBody/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/CumulativeGoalAchievement/CumulativeGoalAchievement.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/CumulativeGoalAchievement/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/Media/media.scss?6a38","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/Media/Media.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/Media/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaBody/media-body.scss?1807","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaBody/MediaBody.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaBody/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/ActivityEntryBody.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/ActivityEntryBody/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/MapVisPrompt/index.scss?9357","webpack://strava-active/./app/javascript/components/Feed/hooks/useFeedAnalytics.js","webpack://strava-active/./app/javascript/components/Feed/hooks/useFeedRitmoCapping.js","webpack://strava-active/./app/javascript/components/Feed/utils/index.js","webpack://strava-active/./app/javascript/components/Feed/hooks/useFeedIntersectionObserver.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/MapVisPrompt/MapVisPrompt.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/MapVisPrompt/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/MaharajAchievementCelebration/index.scss?ce81","webpack://strava-active/./app/javascript/components/Feed/components/shared/MaharajAchievementCelebration/MaharajAchievementCelebration.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/MaharajAchievementCelebration/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/styles.scss?8410","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/Map/Map.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/Map/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/PhotoGrid/VideoItem/VideoItem.scss?a90e","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/PhotoGrid/VideoItem/VideoItem.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/PhotoGrid/VideoItem/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/PhotoGrid/PhotoGrid.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/PhotoGrid/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/PhotosAndMapImage.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PhotosAndMapImage/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/styles.scss?bbd6","webpack://strava-active/./app/javascript/components/Feed/components/shared/MentionableCommentForm/mentionable_comment.scss?8d1b","webpack://strava-active/./app/javascript/components/StravaMentionsInput/StravaMentionsInput.scss?a9be","webpack://strava-active/./app/javascript/components/StravaMentionsInput/StravaMentionsInput.js","webpack://strava-active/./app/javascript/components/StravaMentionsInput/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/MentionableCommentForm/MentionableCommentForm.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/MentionableCommentForm/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/KudosCommentsAndAchievementsModal/AvatarAndMeta/index.scss?5469","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReaction/styles.scss?b0b6","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReactionIcons/FistBumpNoDashesIconUnfilled.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReactionIcons/FistBumpWithDashesIconFilled.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReactionIcons/FistBumpWithDashesIconUnfilled.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReactionIcons/HeartIconUnfilled.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReactionIcons/HeartIconFilled.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReactionIcons/CommentReactionIcon.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReaction/CommentReaction.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentReaction/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/KudosCommentsAndAchievementsModal/AvatarAndMeta/AvatarAndMeta.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/KudosCommentsAndAchievementsModal/AvatarAndMeta/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/KudosCommentsAndAchievementsModal/styles.scss?2d6f","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/utils.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/KudosCommentsAndAchievementsModal/KudosCommentsAndAchievementsModal.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/KudosCommentsAndAchievementsModal/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentsThread/styles.scss?c7f7","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentsThread/CommentsThread.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/CommentsThread/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaActions/media-actions.scss?0433","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaActions/MediaActions.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaActions/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/KudosAndComments.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/KudosAndComments/index.js","webpack://strava-active/./app/javascript/components/Feed/state/feed-entity-reducer.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/CommentDeleteAlertDialog/CommentDeleteAlertDialog.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/CommentDeleteAlertDialog/index.js","webpack://strava-active/./app/javascript/components/Feed/state/feed-entity-init-state.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/HeaderWithOwnerMetadata/index.scss?64dc","webpack://strava-active/./app/javascript/components/Feed/components/shared/LocationAndTime/index.scss?7424","webpack://strava-active/./app/javascript/components/Feed/components/shared/LocationAndTime/LocationAndTime.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/LocationAndTime/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/SocialShareDropdownActions/styles.scss?1fac","webpack://strava-active/./app/javascript/components/Feed/components/shared/SocialShareDropdownActions/SocialShareDropdownActions.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/SocialShareDropdownActions/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryHeader/entry-header.scss?d8d9","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryHeader/EntryHeader.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryHeader/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaLeft/media-left.scss?1044","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaLeft/MediaLeft.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/MediaLeft/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/HeaderWithOwnerMetadata/HeaderWithOwnerMetadata.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/VisibilityMessage/index.scss?2201","webpack://strava-active/./app/javascript/components/Feed/components/shared/VisibilityMessage/VisibilityMessage.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/VisibilityMessage/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/HiddenStatIndicator/index.scss?f6aa","webpack://strava-active/./app/javascript/components/Feed/components/shared/HiddenStatIndicator/HiddenStatIndicator.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/HiddenStatIndicator/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/Card/card.scss?39d0","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/Card/Card.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/Card/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryBody/entry-body.scss?4042","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryBody/EntryBody.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryBody/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryMedia/entry-media.scss?5130","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryMedia/EntryMedia.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryMedia/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryFooter/entry-footer.scss?89c8","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryFooter/EntryFooter.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryFooter/index.js","webpack://strava-active/./app/javascript/components/Feed/components/Activity/Activity.js","webpack://strava-active/./app/javascript/components/Feed/components/Activity/index.js","webpack://strava-active/./app/javascript/components/Feed/components/Post/styles.scss?ff7c","webpack://strava-active/./app/javascript/components/Feed/components/Post/Post.js","webpack://strava-active/./app/javascript/components/Feed/components/Post/index.js","webpack://strava-active/./app/javascript/components/Feed/components/FancyPromo/styles.scss?8b0d","webpack://strava-active/./app/javascript/components/Feed/components/shared/PromoEntry/index.scss?71c9","webpack://strava-active/./app/javascript/components/Feed/components/shared/PromoEntry/PromoEntry.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PromoEntry/index.js","webpack://strava-active/./app/javascript/components/Feed/components/FancyPromo/FancyPromo.js","webpack://strava-active/./app/javascript/components/Feed/components/FancyPromo/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PerformanceGoalSingleView/index.scss?31d4","webpack://strava-active/./app/javascript/components/Feed/components/shared/PerformanceGoalSingleView/PerformanceGoalSingleView.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PerformanceGoalSingleView/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PerformanceGoalMultiView/index.scss?12b1","webpack://strava-active/./app/javascript/components/Feed/components/shared/GoalEntry/index.scss?b240","webpack://strava-active/./app/javascript/components/Feed/components/shared/GoalEntry/GoalEntry.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/GoalEntry/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PerformanceGoalMultiView/PerformanceGoalMultiView.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/PerformanceGoalMultiView/index.js","webpack://strava-active/./app/javascript/components/Feed/components/PerformanceGoalCreated/PerformanceGoalCreated.js","webpack://strava-active/./app/javascript/components/Feed/components/PerformanceGoalCreated/index.js","webpack://strava-active/./app/javascript/components/Feed/components/ChallengeJoin/styles.scss?817e","webpack://strava-active/./app/javascript/components/Feed/components/shared/AthleteJoinEntry/index.scss?810e","webpack://strava-active/./app/javascript/components/Feed/components/shared/FeedEntryAgeGate/actions.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/FeedEntryAgeGate/reducers.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/FeedEntryAgeGate/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/AthleteJoinEntry/AthleteJoinEntry.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/AthleteJoinEntry/index.js","webpack://strava-active/./app/javascript/components/Feed/components/ChallengeJoin/ChallengeJoin.js","webpack://strava-active/./app/javascript/components/Feed/components/ChallengeJoin/index.js","webpack://strava-active/./app/javascript/components/Feed/components/SimplePromo/styles.scss?a8b4","webpack://strava-active/./app/javascript/components/Feed/components/SimplePromo/SimplePromo.js","webpack://strava-active/./app/javascript/components/Feed/components/SimplePromo/index.js","webpack://strava-active/./app/javascript/components/Feed/components/GroupActivity/styles.scss?9dad","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryBlock/entry-block.scss?32d3","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryBlock/EntryBlock.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/EntryBlock/index.js","webpack://strava-active/./app/javascript/components/Feed/components/GroupActivity/GroupActivity.js","webpack://strava-active/./app/javascript/components/Feed/components/GroupActivity/index.js","webpack://strava-active/./app/javascript/components/Feed/components/ClubJoin/styles.scss?e380","webpack://strava-active/./app/javascript/components/Feed/components/ClubJoin/ClubJoin.js","webpack://strava-active/./app/javascript/components/Feed/components/ClubJoin/index.js","webpack://strava-active/./app/javascript/components/Feed/state/feed-reducer.js","webpack://strava-active/./app/javascript/components/Feed/hooks/useFetchFeedEntries.js","webpack://strava-active/./app/javascript/components/Feed/hooks/useFeedScrollRestoration.js","webpack://strava-active/./app/javascript/components/Feed/Feed.js","webpack://strava-active/./app/javascript/components/Feed/FeedRouter.js","webpack://strava-active/./app/javascript/components/Feed/index.js","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/feed-media-showcase.scss?7449","webpack://strava-active/./app/javascript/components/Feed/components/shared/media/FeedMediaShowCase.js","webpack://strava-active/./app/javascript/packs/strava_with_framework_and_feed.js","webpack://strava-active/ignored|/usr/src/app/node_modules/global|min-document"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"cta\":\"EmailVerificationCTA--cta--oTXkG\",\"dialog\":\"EmailVerificationCTA--dialog--QyyTh\",\"modal\":\"EmailVerificationCTA--modal--Lg4o7\",\"close-button\":\"EmailVerificationCTA--close-button--50iQm\",\"closeButton\":\"EmailVerificationCTA--close-button--50iQm\",\"confirm-email-icon\":\"EmailVerificationCTA--confirm-email-icon--zCSY9\",\"confirmEmailIcon\":\"EmailVerificationCTA--confirm-email-icon--zCSY9\",\"email-text\":\"EmailVerificationCTA--email-text--1aDgC\",\"emailText\":\"EmailVerificationCTA--email-text--1aDgC\",\"wrong-email-text\":\"EmailVerificationCTA--wrong-email-text--iT4r+\",\"wrongEmailText\":\"EmailVerificationCTA--wrong-email-text--iT4r+\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport I18n from 'utils/I18n';\nimport createNetworkingClient from 'utils/networking-client';\n\nimport Modal from 'components/shared/Modal';\n\nimport styles from './index.scss';\n\nconst I18nCloseModal = 'strava.settings.email_verification.close_modal';\nconst I18nHeadline = 'strava.settings.email_verification.headline';\nconst I18nPrompt = 'strava.settings.email_verification.prompt_html';\nconst I18nResendEmail = 'strava.settings.email_verification.resend_email_cta';\nconst I18nWrongEmail = 'strava.settings.email_verification.wrong_email_html';\n\nconst UrlResendVerificationEmail = '/athlete/resend_email';\nconst UrlChangeEmail = '/settings/email_change';\n\nclass EmailVerificationCTA extends React.Component {\n state = {\n modalIsOpen: false,\n resendEmailInProgress: false\n };\n\n componentDidMount() {\n if (this.props.resendOnMount) {\n this.resendEmail();\n }\n }\n\n /**\n * resendEmail will attempt to send another verification email to the athlete\n * and pop the success modal.\n *\n * - there is a lock around the operation.\n * - if the request fails the lock is removed but the modal is not popped\n */\n resendEmail = () => {\n const { resendEmailInProgress } = this.state;\n\n if (resendEmailInProgress) return;\n this.setState({ resendEmailInProgress: true });\n createNetworkingClient()\n .post(UrlResendVerificationEmail)\n .then(() =>\n this.setState({ modalIsOpen: true, resendEmailInProgress: false })\n )\n .catch(() => {\n this.setState({ resendEmailInProgress: false });\n }); // set here instead of finally due to FF polyfill issue\n };\n\n closeModal = () => {\n this.setState({ modalIsOpen: false });\n };\n\n render() {\n const { modalIsOpen } = this.state;\n const { children, className, email, optionalExplanation } = this.props;\n\n const cta = children ? (\n \n ) : (\n \n {I18n.t(I18nResendEmail)}\n \n );\n\n return (\n <>\n {cta}\n \n
\n \n
\n \n
\n
\n

{I18n.t(I18nHeadline)}

\n {optionalExplanation && (\n

\n {optionalExplanation}\n

\n )}\n

\n {I18n.t_html(I18nPrompt, {\n pending_email: email,\n class_name: styles.emailText\n })}\n

\n
\n

\n {I18n.t_html(I18nWrongEmail, {\n email_settings_path: UrlChangeEmail\n })}\n

\n
\n
\n \n \n );\n }\n}\n\nEmailVerificationCTA.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n email: PropTypes.string.isRequired,\n resendOnMount: PropTypes.bool,\n optionalExplanation: PropTypes.string\n};\n\nEmailVerificationCTA.defaultProps = {\n children: null,\n className: '',\n resendOnMount: false,\n optionalExplanation: ''\n};\n\nexport default EmailVerificationCTA;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"NotificationEmailVerificationCTA--wrapper--oW7Ds\",\"text-caption\":\"NotificationEmailVerificationCTA--text-caption--maR6G\",\"textCaption\":\"NotificationEmailVerificationCTA--text-caption--maR6G\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport EmailVerificationCTA from 'components/EmailVerificationCTA';\n\nimport styles from './index.scss';\n\nfunction NotificationEmailVerificationCTA({ className, email, iconURL, text }) {\n return (\n \n \n
{text}
\n \n );\n}\n\nNotificationEmailVerificationCTA.propTypes = {\n className: PropTypes.string,\n email: PropTypes.string.isRequired,\n iconURL: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired\n};\n\nNotificationEmailVerificationCTA.defaultProps = {\n className: ''\n};\n\nexport default NotificationEmailVerificationCTA;\n","import React from 'react';\n\nconst FeedContext = React.createContext();\n// Context object accepts a displayName string property.\n// React DevTools uses this string to determine what to display for the context.\nFeedContext.displayName = 'FeedContext';\n\nexport function useFeedContext() {\n return React.useContext(FeedContext);\n}\n\nexport default FeedContext;\n","import React from 'react';\n\nconst FeedEntityContext = React.createContext();\n// Context object accepts a displayName string property.\n// React DevTools uses this string to determine what to display for the context.\nFeedEntityContext.displayName = 'FeedEntityContext';\n\nexport function useFeedEntityContext() {\n return React.useContext(FeedEntityContext);\n}\n\nexport default FeedEntityContext;\n","export const UPDATE_NUM_ENTRIES = 'UPDATE_LAST_ENTITY_TO_ENTER';\nexport const UPDATE_IS_RESTORING_SCROLL_POSITION =\n 'UPDATE_IS_RESTORING_SCROLL_POSITION';\nexport const TOGGLE_IS_ACTIVITY_VIDEO_MUTED = 'TOGGLE_IS_ACTIVITY_VIDEO_MUTED';\n\nexport default {\n UPDATE_NUM_ENTRIES,\n UPDATE_IS_RESTORING_SCROLL_POSITION,\n TOGGLE_IS_ACTIVITY_VIDEO_MUTED\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"Feed--card--hCBTv\",\"card-image-top\":\"Feed--card-image-top--52BdF\",\"cardImageTop\":\"Feed--card-image-top--52BdF\",\"card-block\":\"Feed--card-block--YcAda\",\"cardBlock\":\"Feed--card-block--YcAda\",\"card-header\":\"Feed--card-header--UPL0t\",\"cardHeader\":\"Feed--card-header--UPL0t\",\"card-body\":\"Feed--card-body--shfRq\",\"cardBody\":\"Feed--card-body--shfRq\",\"card-footer\":\"Feed--card-footer--NgI8R\",\"cardFooter\":\"Feed--card-footer--NgI8R\",\"card-icon\":\"Feed--card-icon--RBqGF\",\"cardIcon\":\"Feed--card-icon--RBqGF\",\"app-icon-wrapper\":\"Feed--app-icon-wrapper--FAPpa\",\"appIconWrapper\":\"Feed--app-icon-wrapper--FAPpa\",\"media\":\"Feed--media--rK+x1\",\"media-content\":\"Feed--media-content--xjZrS\",\"mediaContent\":\"Feed--media-content--xjZrS\",\"media-body\":\"Feed--media-body--yZWDa\",\"mediaBody\":\"Feed--media-body--yZWDa\",\"media-object\":\"Feed--media-object--iSRe6\",\"mediaObject\":\"Feed--media-object--iSRe6\",\"media-left\":\"Feed--media-left--tXoX6\",\"mediaLeft\":\"Feed--media-left--tXoX6\",\"media-object-left\":\"Feed--media-object-left--Dyw+y\",\"mediaObjectLeft\":\"Feed--media-object-left--Dyw+y\",\"media-object-right\":\"Feed--media-object-right--c+59F\",\"mediaObjectRight\":\"Feed--media-object-right--c+59F\",\"media-right\":\"Feed--media-right--RaY-k\",\"mediaRight\":\"Feed--media-right--RaY-k\",\"media-actions\":\"Feed--media-actions--9uUeU\",\"mediaActions\":\"Feed--media-actions--9uUeU\",\"media-center\":\"Feed--media-center--qUp+l\",\"mediaCenter\":\"Feed--media-center--qUp+l\",\"media-middle\":\"Feed--media-middle--AdjBH\",\"mediaMiddle\":\"Feed--media-middle--AdjBH\",\"media-bottom\":\"Feed--media-bottom--CrL4F\",\"mediaBottom\":\"Feed--media-bottom--CrL4F\",\"list-media\":\"Feed--list-media--68ISv\",\"listMedia\":\"Feed--list-media--68ISv\",\"comments\":\"Feed--comments--FXW9W\",\"comment\":\"Feed--comment--Okqn4\",\"thread\":\"Feed--thread--9b1gk\",\"feed-pagination\":\"Feed--feed-pagination--yh121\",\"feedPagination\":\"Feed--feed-pagination--yh121\",\"spinner\":\"Feed--spinner--db1n0\",\"no-entries\":\"Feed--no-entries--ARKOk\",\"noEntries\":\"Feed--no-entries--ARKOk\",\"entry-container\":\"Feed--entry-container--ntrEd\",\"entryContainer\":\"Feed--entry-container--ntrEd\",\"feed-entry\":\"Feed--feed-entry--RxVw3\",\"feedEntry\":\"Feed--feed-entry--RxVw3\",\"entry-inset\":\"Feed--entry-inset--mTSiN\",\"entryInset\":\"Feed--entry-inset--mTSiN\",\"entry-header\":\"Feed--entry-header--L-jpF\",\"entryHeader\":\"Feed--entry-header--L-jpF\",\"entry-body\":\"Feed--entry-body--5b+dm\",\"entryBody\":\"Feed--entry-body--5b+dm\",\"entry-media\":\"Feed--entry-media--FIN-7\",\"entryMedia\":\"Feed--entry-media--FIN-7\",\"entry-footer\":\"Feed--entry-footer--xXEx0\",\"entryFooter\":\"Feed--entry-footer--xXEx0\",\"entry-block\":\"Feed--entry-block--ms6sN\",\"entryBlock\":\"Feed--entry-block--ms6sN\",\"avatar\":\"Feed--avatar--o4Way\",\"avatar-img\":\"Feed--avatar-img--s3Sfc\",\"avatarImg\":\"Feed--avatar-img--s3Sfc\",\"card-margin\":\"Feed--card-margin--NEIB1\",\"cardMargin\":\"Feed--card-margin--NEIB1\",\"btn\":\"Feed--btn--rHBmM\",\"btn-link\":\"Feed--btn-link--jLpej\",\"btnLink\":\"Feed--btn-link--jLpej\",\"fadeIn\":\"Feed--fadeIn--ydtkj\",\"newKudo\":\"Feed--newKudo--vafgE\",\"enterFadeOut\":\"Feed--enterFadeOut--TDuu8\"};","// extracted by mini-css-extract-plugin\nexport default {\"entry-icon\":\"Activity--entry-icon--RlkFx\",\"entryIcon\":\"Activity--entry-icon--RlkFx\",\"activity-icon\":\"Activity--activity-icon--Z4Pej\",\"activityIcon\":\"Activity--activity-icon--Z4Pej\",\"entry-footer\":\"Activity--entry-footer--ncAnm\",\"entryFooter\":\"Activity--entry-footer--ncAnm\"};","// extracted by mini-css-extract-plugin\nexport default {\"activity-entry-container\":\"ActivityEntryBody--activity-entry-container--iYy-k\",\"activityEntryContainer\":\"ActivityEntryBody--activity-entry-container--iYy-k\",\"activity-name\":\"ActivityEntryBody--activity-name--AGMA5\",\"activityName\":\"ActivityEntryBody--activity-name--AGMA5\",\"icon-wrapper\":\"ActivityEntryBody--icon-wrapper--XZ50L\",\"iconWrapper\":\"ActivityEntryBody--icon-wrapper--XZ50L\",\"description-body\":\"ActivityEntryBody--description-body--hbylJ\",\"descriptionBody\":\"ActivityEntryBody--description-body--hbylJ\",\"wrapper\":\"ActivityEntryBody--wrapper--kkT4-\",\"description-read-more\":\"ActivityEntryBody--description-read-more--9QA5l\",\"descriptionReadMore\":\"ActivityEntryBody--description-read-more--9QA5l\",\"stats\":\"ActivityEntryBody--stats--G90hq\",\"stat-label\":\"ActivityEntryBody--stat-label--47Ktd\",\"statLabel\":\"ActivityEntryBody--stat-label--47Ktd\",\"stat-value\":\"ActivityEntryBody--stat-value--A-j2-\",\"statValue\":\"ActivityEntryBody--stat-value--A-j2-\",\"stat\":\"ActivityEntryBody--stat--a2Yp6\",\"stat-text\":\"ActivityEntryBody--stat-text--iB8+e\",\"statText\":\"ActivityEntryBody--stat-text--iB8+e\",\"stat-subtext\":\"ActivityEntryBody--stat-subtext--Vo0Ha\",\"statSubtext\":\"ActivityEntryBody--stat-subtext--Vo0Ha\",\"trophy-count-btn\":\"ActivityEntryBody--trophy-count-btn--Ju8za\",\"trophyCountBtn\":\"ActivityEntryBody--trophy-count-btn--Ju8za\",\"text-right\":\"ActivityEntryBody--text-right--89j0P\",\"textRight\":\"ActivityEntryBody--text-right--89j0P\",\"app-icon-wrapper\":\"ActivityEntryBody--app-icon-wrapper--oIZvr\",\"appIconWrapper\":\"ActivityEntryBody--app-icon-wrapper--oIZvr\",\"achievements-trophy\":\"ActivityEntryBody--achievements-trophy--8Xvo3\",\"achievementsTrophy\":\"ActivityEntryBody--achievements-trophy--8Xvo3\",\"count\":\"ActivityEntryBody--count--xCez9\",\"achievements-summary\":\"ActivityEntryBody--achievements-summary--bsU2g\",\"achievementsSummary\":\"ActivityEntryBody--achievements-summary--bsU2g\",\"achievements-link\":\"ActivityEntryBody--achievements-link--CZvjJ\",\"achievementsLink\":\"ActivityEntryBody--achievements-link--CZvjJ\",\"performance-goals-more\":\"ActivityEntryBody--performance-goals-more--K47xr\",\"performanceGoalsMore\":\"ActivityEntryBody--performance-goals-more--K47xr\",\"list-stats\":\"ActivityEntryBody--list-stats--jzcv5\",\"listStats\":\"ActivityEntryBody--list-stats--jzcv5\"};","export const ACTIVITY = 'activity';\nexport const POST = 'post';\nexport const FANCY_PROMO = 'fancy_promo';\nexport const PERFORMANCE_GOAL_CREATED = 'performance_goal_created';\nexport const CHALLENGE = 'challenge';\nexport const SIMPLE_PROMO = 'simple_promo';\nexport const GROUP_ACTIVITY = 'group_activity';\nexport const CLUB = 'club';\n","import PropTypes from 'prop-types';\nimport { ACTIVITY, GROUP_ACTIVITY, POST } from '../constants/FeedEntryTypes';\n\nexport const cursorDataProps = PropTypes.shape({\n updated_at: PropTypes.number.isRequired,\n rank: PropTypes.number // can be null when viewing feed type with a filter on athlete id\n});\n\nexport const timeAndLocationProps = PropTypes.shape({\n displayDate: PropTypes.string,\n displayDateAtTime: PropTypes.string,\n location: PropTypes.string,\n timestampFormat: PropTypes.string\n});\n\nexport const entityOwnerProps = PropTypes.shape({\n displayImage: PropTypes.string,\n memberType: PropTypes.string,\n name: PropTypes.string.isRequired,\n profileUrl: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n id: PropTypes.string\n});\n\nexport const entityAthleteProps = PropTypes.shape({\n avatarUrl: PropTypes.string,\n athleteId: PropTypes.string.isRequired,\n memberType: PropTypes.string,\n athleteName: PropTypes.string.isRequired,\n sex: PropTypes.string,\n firstName: PropTypes.string.isRequired\n});\n\nexport const indexProps = PropTypes.number;\n\nexport const cumulativeGoalAchievementProps = PropTypes.shape({\n type: PropTypes.string,\n amount: PropTypes.string\n});\n\nexport const powerAndSegmentGoalAchievementsProps = PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n })\n);\n\nexport const segAndBestEffortAchievementsProps = PropTypes.arrayOf(\n PropTypes.shape({\n id_string: PropTypes.string,\n name: PropTypes.string,\n description: PropTypes.string,\n elapsed_time: PropTypes.string,\n featured: PropTypes.bool,\n hidden: PropTypes.bool,\n distance_based_best_effort: PropTypes.bool\n })\n);\n\nexport const statsProps = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n description: PropTypes.string\n })\n);\n\nexport const mapProps = PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string\n});\n\nexport const photoProps = PropTypes.shape({\n large: PropTypes.string.isRequired,\n caption_escaped: PropTypes.string,\n photo_id: PropTypes.string.isRequired,\n viewing_athlete_id: PropTypes.string,\n owner_id: PropTypes.string,\n editable: PropTypes.bool\n});\n\nexport const viewingAthleteProps = PropTypes.shape({\n avatarUrl: PropTypes.string,\n id: PropTypes.string.isRequired,\n memberType: PropTypes.string,\n name: PropTypes.string.isRequired,\n location: PropTypes.string,\n dateOfBirth: PropTypes.string\n});\n\nexport const pageProps = PropTypes.oneOf(['dashboard', 'club', 'profile']);\n\nexport const feedTypeProps = PropTypes.oneOf([\n 'my_activity',\n 'club',\n 'following',\n 'profile',\n 'club'\n]);\n\nexport const analyticsContextProps = PropTypes.shape({\n track: PropTypes.func.isRequired,\n props: PropTypes.shape({\n category: PropTypes.oneOf(['feed']).isRequired,\n page: pageProps.isRequired\n }).isRequired\n});\n\nexport const photoListProps = PropTypes.arrayOf(photoProps);\n\nexport const commentsProps = PropTypes.arrayOf(\n PropTypes.shape({\n comment_id: PropTypes.number.isRequired,\n deletable: PropTypes.bool.isRequired,\n reportable: PropTypes.bool.isRequired,\n quarantinable: PropTypes.bool.isRequired,\n athlete: PropTypes.shape({\n name: PropTypes.string.isRequired,\n avatar_url: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n member_type: PropTypes.string\n })\n })\n);\n\nexport const highlightedKudosersProps = PropTypes.arrayOf(\n PropTypes.shape({\n avatar_url: PropTypes.string.isRequired,\n destination_url: PropTypes.string.isRequired,\n display_name: PropTypes.string.isRequired,\n show_name: PropTypes.bool.isRequired\n })\n);\n\nexport const kudosAndCommentsProps = PropTypes.shape({\n canKudo: PropTypes.bool.isRequired,\n kudosCount: PropTypes.number.isRequired,\n highlightedKudosers: highlightedKudosersProps.isRequired,\n comments: commentsProps.isRequired,\n commentsEnabled: PropTypes.bool, // only applies to `Post` entities\n reactionsEnabled: PropTypes.bool\n});\n\nexport const entitiesWithKudosAndComments = PropTypes.oneOf([\n ACTIVITY,\n GROUP_ACTIVITY,\n POST\n]);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Markup } from 'interweave';\nimport I18n from 'utils/I18n';\n\nimport styles from '../index.scss';\nimport { powerAndSegmentGoalAchievementsProps } from '../../../../props/feed-prop-types';\n\nconst PowerAndSegmentGoalAchievements = ({\n powerAndSegmentGoalAchievements,\n activityId\n}) => (\n <>\n {powerAndSegmentGoalAchievements.length > 0 && (\n
  • \n \n {powerAndSegmentGoalAchievements[0].description}\n \n {powerAndSegmentGoalAchievements.length > 1 && (\n \n \n
  • \n )}\n \n )}\n \n);\n\nPowerAndSegmentGoalAchievements.propTypes = {\n powerAndSegmentGoalAchievements: powerAndSegmentGoalAchievementsProps,\n activityId: PropTypes.string.isRequired\n};\n\nPowerAndSegmentGoalAchievements.defaultProps = {\n powerAndSegmentGoalAchievements: []\n};\n\nexport default PowerAndSegmentGoalAchievements;\n","export { default } from './PowerAndSegmentGoalAchievements';\n","import React from 'react';\nimport { Markup } from 'interweave';\n\nimport styles from '../index.scss';\nimport { segAndBestEffortAchievementsProps } from '../../../../props/feed-prop-types';\n\nconst FeaturedBestEffortAchievements = ({ segAndBestEffortAchievements }) => {\n // Display the first two featured best effort achievements\n return segAndBestEffortAchievements\n .filter((elem) => elem && elem.featured && !elem.hidden)\n .slice(0, 2)\n .map((achievement) => {\n const entry = [];\n if (!achievement.distance_based_best_effort) {\n entry.push(\n \n {achievement.name}\n \n );\n }\n entry.push(\n
    \n \n {achievement.description}\n \n \n \n \n
    \n );\n\n return (\n \n {entry}\n \n );\n });\n};\n\nFeaturedBestEffortAchievements.propTypes = {\n segAndBestEffortAchievements: segAndBestEffortAchievementsProps\n};\n\nFeaturedBestEffortAchievements.defaultProps = {\n segAndBestEffortAchievements: []\n};\n\nexport default FeaturedBestEffortAchievements;\n","export { default } from './FeaturedSegmentEffortAndBestEffortAchievements';\n","import React from 'react';\nimport { chunk } from 'lodash-es';\nimport { Markup } from 'interweave';\nimport Stats from '@strava/ui/Stats';\nimport Stat from '@strava/ui/Stat';\nimport styles from '../index.scss';\nimport { statsProps } from '../../../../props/feed-prop-types';\n\nconst ActivityStats = ({ stats }) => (\n \n {chunk(stats, 2).map((stat) => {\n return (\n }\n labelClassName={styles.statLabel}\n label={stat[1].value}\n key={stat[1].value}\n />\n );\n })}\n \n);\n\nActivityStats.propTypes = {\n stats: statsProps\n};\n\nActivityStats.defaultProps = {\n stats: []\n};\n\nexport default ActivityStats;\n","export { default } from './ActivityStats';\n","// Kudos And Comments Modal (with Kudos, Comments, Achievement, Other Athletes tabs)\nexport const OPEN_MODAL_COMMENTS_TAB = 'OPEN_MODAL_COMMENTS_TAB';\nexport const OPEN_MODAL_KUDOS_TAB = 'OPEN_MODAL_KUDOS_TAB';\nexport const OPEN_MODAL_ACHIEVEMENTS_TAB = 'OPEN_MODAL_ACHIEVEMENTS_TAB';\nexport const OPEN_MODAL_OTHER_ATHLETES_TAB = 'OPEN_MODAL_OTHER_ATHLETES_TAB';\nexport const CLOSE_MODAL = 'CLOSE_MODAL';\nexport const OPEN_COMMENT_REACTION_LIST = 'OPEN_COMMENT_REACTION_LIST';\nexport const CLOSE_COMMENT_REACTION_LIST = 'CLOSE_COMMENT_REACTION_LIST';\n\n// Give Kudos (entity card, Kudos And Comments Modal)\nexport const ADD_KUDO = 'ADD_KUDO';\n\n// Delete Comment\nexport const DELETE_COMMENT_CANCEL = 'DELETE_COMMENT_CANCEL';\nexport const DELETE_COMMENT_COMPLETE = 'DELETE_COMMENT_COMPLETE';\nexport const DELETE_COMMENT_START = 'DELETE_COMMENT_START';\n\n// Add new comment\nexport const ADD_COMMENT_START = 'ADD_COMMENT_START';\nexport const ADD_COMMENT_COMPLETE = 'ADD_COMMENT_COMPLETE';\nexport const ADD_COMMENT_FAILED = 'ADD_COMMENT_FAILED';\nexport const ADD_COMMENT_REACTION = 'ADD_COMMENT_REACTION';\n\nexport const SET_AUTOPLAY_VIDEO = 'SET_AUTOPLAY_VIDEO';\nexport const SET_AUTOPLAY_VIDEO_IN_VIEW = 'SET_AUTOPLAY_VIDEO_IN_VIEW';\n\nexport default {\n ADD_KUDO,\n ADD_COMMENT_REACTION,\n ADD_COMMENT_START,\n ADD_COMMENT_COMPLETE,\n ADD_COMMENT_FAILED,\n DELETE_COMMENT_CANCEL,\n DELETE_COMMENT_COMPLETE,\n DELETE_COMMENT_START,\n CLOSE_MODAL,\n OPEN_MODAL_COMMENTS_TAB,\n OPEN_MODAL_KUDOS_TAB,\n OPEN_MODAL_ACHIEVEMENTS_TAB,\n OPEN_MODAL_OTHER_ATHLETES_TAB,\n SET_AUTOPLAY_VIDEO,\n SET_AUTOPLAY_VIDEO_IN_VIEW,\n OPEN_COMMENT_REACTION_LIST,\n CLOSE_COMMENT_REACTION_LIST\n};\n","import React from 'react';\nimport I18n from 'utils/I18n';\nimport SvgAchievementsTrophyNormalSmall from '@strava/icons/AchievementsTrophyNormalSmall';\nimport Button from '@strava/ui/Button';\nimport PropTypes from 'prop-types';\nimport Cldr from 'utils/Cldr';\nimport { segAndBestEffortAchievementsProps } from '../../../../props/feed-prop-types';\n\nimport styles from '../index.scss';\nimport { useFeedEntityContext } from '../../../../state/FeedEntityContext';\nimport { OPEN_MODAL_ACHIEVEMENTS_TAB } from '../../../../state/feed-entity-actions';\n\n// Segment Effort And Best Effort Achievements Count\nconst AchievementCount = ({ segAndBestEffortAchievements, entityId }) => {\n const { dispatch } = useFeedEntityContext();\n\n return (\n \n
    \n {I18n.t('components.feed.social.achievements')}\n
    \n \n \n dispatch({\n type: OPEN_MODAL_ACHIEVEMENTS_TAB,\n payload: {\n element: 'achievements_trophy',\n selectedEntityId: entityId\n }\n })\n }\n >\n \n \n \n \n \n \n {Cldr.formatDecimal(segAndBestEffortAchievements.length)}\n \n \n \n
    \n );\n};\n\nAchievementCount.propTypes = {\n segAndBestEffortAchievements: segAndBestEffortAchievementsProps,\n entityId: PropTypes.string.isRequired\n};\n\nAchievementCount.defaultProps = {\n segAndBestEffortAchievements: []\n};\n\nexport default AchievementCount;\n","export { default } from './AchievementCount';\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ActionsFlagHighlightedXsmall from '@strava/icons/ActionsFlagHighlightedXsmall';\nimport Button from '@strava/ui/Button';\nimport colors from '@strava/ui/colors';\nimport { Markup } from 'interweave';\nimport { useFeedEntityContext } from '../../../../state/FeedEntityContext';\n\nimport styles from '../index.scss';\n\nconst ELLIPSIS = '•••';\nconst MAX_LENGTH = 350;\n\nconst ActivityTextBody = ({\n activityId,\n activityName,\n ownedByCurrentAthlete,\n flagged,\n description\n}) => {\n const { entityState } = useFeedEntityContext();\n const [readMore, setReadMore] = useState(false);\n\n const isExpandable = description && description.length > MAX_LENGTH;\n\n const splitDescription = (() => {\n if (description) {\n const cleanDescription = description.trim();\n\n if (cleanDescription.length < MAX_LENGTH) {\n return [cleanDescription, ''];\n }\n // trim the string to the maximum length\n let firstSection = cleanDescription.substr(0, MAX_LENGTH);\n // re-trim if we are in the middle of a word\n firstSection = firstSection.substr(\n 0,\n Math.min(firstSection.length, firstSection.lastIndexOf(' '))\n );\n // retrim if in the middle of a link\n if (\n firstSection.lastIndexOf('= 0 &&\n (!(firstSection.lastIndexOf('') > 0) ||\n firstSection.lastIndexOf('') < firstSection.lastIndexOf(' {\n const athleteId = e.target.href.match(/\\/([^/]+)$/)[1];\n entityState.trackAnalytics({\n action: 'click',\n element: 'mention',\n properties: {\n clicked_athlete_id: athleteId\n }\n });\n };\n\n /** This is a transform function for an Interweave Markup element.\n * It adds click tracking to mentions. https://interweave.dev/docs/\n * @returns {JSX.Element|undefined}\n */\n const addMentionClickTracking = (elem) => {\n if (elem.nodeName === 'A' && elem.className === 'mention') {\n return (\n \n {elem.innerText}\n \n );\n }\n\n // Don't modify the element.\n return undefined;\n };\n\n const content = readMore ? splitDescription.join('') : splitDescription[0];\n\n return (\n <>\n {/* Title Text */}\n

    \n {\n entityState.trackAnalytics({\n action: 'click',\n properties: { element_source: 'title' }\n });\n }}\n >\n {activityName}\n \n {ownedByCurrentAthlete && flagged && (\n \n \n \n )}\n

    \n\n {/* Activity Description */}\n {description && (\n
    \n \n \n
    \n {isExpandable && (\n
    \n {\n setReadMore(!readMore);\n }}\n >\n {ELLIPSIS}\n \n
    \n )}\n \n )}\n \n );\n};\n\nActivityTextBody.propTypes = {\n activityId: PropTypes.string.isRequired,\n activityName: PropTypes.string.isRequired,\n ownedByCurrentAthlete: PropTypes.bool,\n flagged: PropTypes.bool,\n description: PropTypes.string\n};\n\nActivityTextBody.defaultProps = {\n ownedByCurrentAthlete: false,\n flagged: false,\n description: PropTypes.string\n};\n\nexport default ActivityTextBody;\n","export { default } from './ActivityTextBody';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\n\nconst ACTIVITY_LIST = [\n 'ebikeride',\n 'ride',\n 'run',\n 'swim',\n 'virtualrun',\n 'virtualride'\n];\n\n// 4/26 - On web, 3 types of cumulative goals can be set from the athletes profile\n// Swim, Run, Ride - time and distance\n// (eg of cumulative goal achievement- Strava Athlete accomplished their swimming goal)\nconst CumulativeGoalAchievement = ({\n cumulativeGoalAchievement,\n sportType,\n athleteFirstName\n}) => {\n // Generate translation key for achievement summary - cumulative goal\n const displayKey = (() => {\n const prefix =\n 'components.feed.activity_goal_accomplished.goal_accomplished.without_popup';\n const lowercaseType = sportType.toLowerCase();\n return `${prefix}.${lowercaseType}.neutral_html`;\n })();\n\n return (\n <>\n {cumulativeGoalAchievement &&\n ACTIVITY_LIST.includes(sportType.toLowerCase()) && (\n
  • \n {I18n.t(displayKey, {\n athlete: athleteFirstName\n })}\n
  • \n )}\n \n );\n};\n\nCumulativeGoalAchievement.propTypes = {\n cumulativeGoalAchievement: PropTypes.shape({\n activityType: PropTypes.string,\n amount: PropTypes.string\n }),\n sportType: PropTypes.string,\n athleteFirstName: PropTypes.string\n};\n\nCumulativeGoalAchievement.defaultProps = {\n cumulativeGoalAchievement: null,\n sportType: '',\n athleteFirstName: ''\n};\n\nexport default CumulativeGoalAchievement;\n","export { default } from './CumulativeGoalAchievement';\n","// extracted by mini-css-extract-plugin\nexport default {\"media\":\"Media--media--K1ODc\",\"media-center\":\"Media--media-center--ZqXuB\",\"mediaCenter\":\"Media--media-center--ZqXuB\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './media.scss';\n\nconst Media = ({ children, centered, className, ...options }) => {\n const classNames = [styles.media];\n if (centered) {\n classNames.push(styles.mediaCenter);\n }\n if (className) {\n classNames.push(className);\n }\n\n return (\n
    \n {children}\n
    \n );\n};\n\nMedia.propTypes = {\n children: PropTypes.node.isRequired,\n centered: PropTypes.bool,\n className: PropTypes.string\n};\n\nMedia.defaultProps = {\n centered: false,\n className: null\n};\n\nexport default Media;\n","export { default } from './Media';\n","// extracted by mini-css-extract-plugin\nexport default {\"media-body\":\"MediaBody--media-body--uT-hq\",\"mediaBody\":\"MediaBody--media-body--uT-hq\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './media-body.scss';\n\nconst MediaBody = ({ children, className, ...options }) => {\n const classNames = [styles.mediaBody];\n if (className) {\n classNames.push(className);\n }\n\n return (\n
    \n {children}\n
    \n );\n};\n\nMediaBody.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string\n};\n\nMediaBody.defaultProps = {\n className: null\n};\n\nexport default MediaBody;\n","export { default } from './MediaBody';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { isEmpty } from 'lodash-es';\nimport PowerAndSegmentGoalAchievements from './PowerAndSegmentGoalAchievements';\nimport FeaturedSegmentEffortAndBestEffortAchievements from './FeaturedSegmentEffortAndBestEffortAchievements';\nimport ActivityStats from './ActivityStats';\nimport AchievementCount from './AchievementCount';\nimport ActivityTextBody from './ActivityTextBody';\nimport CumulativeGoalAchievement from './CumulativeGoalAchievement';\nimport {\n powerAndSegmentGoalAchievementsProps,\n segAndBestEffortAchievementsProps,\n statsProps,\n cumulativeGoalAchievementProps\n} from '../../../props/feed-prop-types';\n\nimport styles from './index.scss';\nimport Media from '../media/Media';\nimport MediaBody from '../media/MediaBody';\n\nconst ActivityEntryBody = ({\n activityName,\n activityId,\n ownedByCurrentAthlete,\n flagged,\n description,\n stats,\n segAndBestEffortAchievements,\n powerAndSegmentGoalAchievements,\n cumulativeGoalAchievement,\n sportType,\n athleteFirstName\n}) => {\n return (\n \n {/* Header and Description */}\n \n\n {/* Activity Stats */}\n \n \n \n \n\n {/* Segment Effort And Best Effort Achievements Count */}\n {segAndBestEffortAchievements.length > 0 && (\n \n )}\n \n\n {/* Achievements Summary */}\n \n {/* Power-Goal and Segment-Goal Achievements\n eg. \n - Accomplished a goal of 9:00 on South Pearl Street << Segment-Goal\n - Accomplished a goal of 1W for 5 seconds (309 W) << Power-Goal\n */}\n {!isEmpty(powerAndSegmentGoalAchievements) && (\n \n )}\n\n {/* Cumulative Goal Achievement - (eg. Strava Athlete accomplished his swimming goal) */}\n {!isEmpty(cumulativeGoalAchievement) && (\n \n )}\n\n {/* Featured Segment Effort and Best Effort Achievements \n eg. \n - Bridge to Bridge N on Platte to Lee Gulch PR (4:08)\n - anti-clockwise loop around the lake CR (10:43)\n */}\n {!isEmpty(segAndBestEffortAchievements) && (\n \n )}\n \n \n );\n};\n\nActivityEntryBody.propTypes = {\n activityId: PropTypes.string.isRequired,\n activityName: PropTypes.string.isRequired,\n ownedByCurrentAthlete: PropTypes.bool,\n flagged: PropTypes.bool,\n description: PropTypes.string,\n anchor_container_click_data: PropTypes.shape({\n self: PropTypes.string\n }),\n stats: statsProps,\n segAndBestEffortAchievements: segAndBestEffortAchievementsProps,\n powerAndSegmentGoalAchievements: powerAndSegmentGoalAchievementsProps,\n cumulativeGoalAchievement: cumulativeGoalAchievementProps,\n sportType: PropTypes.string.isRequired,\n athleteFirstName: PropTypes.string\n};\n\nActivityEntryBody.defaultProps = {\n ownedByCurrentAthlete: false,\n flagged: false,\n description: '',\n anchor_container_click_data: {},\n stats: [],\n segAndBestEffortAchievements: [],\n powerAndSegmentGoalAchievements: [],\n cumulativeGoalAchievement: {},\n athleteFirstName: ''\n};\n\nexport default ActivityEntryBody;\n","export { default } from './ActivityEntryBody';\n","// extracted by mini-css-extract-plugin\nexport default {\"map-vis-prompt\":\"MapVisPrompt--map-vis-prompt--Tec+5\",\"mapVisPrompt\":\"MapVisPrompt--map-vis-prompt--Tec+5\",\"description\":\"MapVisPrompt--description--lTuzI\",\"button\":\"MapVisPrompt--button--5WSed\"};","import { useCallback, useEffect, useRef } from 'react';\nimport { isNil, snakeCase } from 'lodash-es';\n\nimport { trackV2 } from 'utils/analytics';\nimport { devLog } from 'utils/dev-utils';\nimport {\n ACTIVITY,\n CHALLENGE,\n CLUB,\n FANCY_PROMO,\n GROUP_ACTIVITY,\n PERFORMANCE_GOAL_CREATED,\n POST,\n SIMPLE_PROMO\n} from '../constants/FeedEntryTypes';\nimport { useFeedContext } from '../state/FeedContext';\n\nconst useFeedAnalytics = ({\n page,\n entity,\n entityId,\n athleteProfileId,\n feedType,\n index,\n clubId,\n viewingAthleteId,\n activityIds,\n element = null,\n properties,\n inView\n}) => {\n if (isNil(inView)) {\n devLog(\n `useIntersectionObserver#inView is required for analytics tracking. entity - ${entity}`\n );\n }\n\n const { entityState } = useFeedContext() || {\n entityState: { isRestoringScrollPosition: false }\n };\n\n const { isRestoringScrollPosition } = entityState;\n /**\n * Top-level {properties} - These belong to the main feed card entries eg. Activity, Post,\n * ChallengeJoin, GroupActivity etc...\n *\n * These values are shared with all the children elements eg Map inside of Activity will automatically have\n * these values.\n */\n const parentLevelProperties = (() => {\n const entityName = snakeCase(entity);\n const inGroup = entityName === GROUP_ACTIVITY;\n const source =\n feedType === 'club' && page === 'club' ? 'club_detail' : feedType;\n const hash = {\n in_group: inGroup,\n source,\n viewing_athlete_id: viewingAthleteId,\n rank: index + 1\n };\n if (feedType === 'club' || feedType === 'clubs_feed') {\n hash.club_id = clubId;\n }\n if (feedType === 'profile') {\n hash.profile_athlete = athleteProfileId;\n }\n if (entityName === ACTIVITY) {\n hash.activity_id = entityId;\n }\n if (entityName === POST) {\n hash.post_id = entityId;\n }\n if (entityName === CLUB) {\n hash.club_id = entityId;\n }\n if (entityName === CHALLENGE) {\n hash.challenge_id = entityId;\n }\n if (entityName === GROUP_ACTIVITY) {\n hash.headline_activity_id = entityId;\n hash.group_activity_ids = activityIds;\n }\n if (entityName === FANCY_PROMO || entityName === SIMPLE_PROMO) {\n // note: promos do not have entity id and instead are using trackable id as a unique identifier (also see Feed.js)\n hash.trackable_id = entityId;\n }\n if (entityName === PERFORMANCE_GOAL_CREATED) {\n hash.performance_goal_id = entityId;\n }\n return { ...hash, ...properties };\n })();\n\n /**\n * Function used by all feed components to track analytics.\n * When an element uses this function, all the props defined by its parent will\n * automatically be tracked on top of the element specific props.\n */\n const trackAnalytics = useCallback(\n (childElementFields) => {\n const feedAnalyticsCommonFields = {\n category: 'feed',\n page: snakeCase(entity)\n };\n trackV2({\n ...feedAnalyticsCommonFields,\n ...childElementFields,\n properties: {\n ...parentLevelProperties,\n ...childElementFields.properties\n }\n });\n },\n [entity, parentLevelProperties]\n );\n\n // only report inView status for any re-renders after the initial\n // component mount\n const isFirstRenderRef = useRef(true);\n\n // report screen enter/exit when the inView status of an entry changes\n useEffect(() => {\n if (!isFirstRenderRef.current) {\n if (!isRestoringScrollPosition) {\n // do not track analytics during scroll position restoration\n trackAnalytics({\n element,\n action: inView ? 'screen_enter' : 'screen_exit'\n });\n }\n } else {\n // component has now been mounted. Any changes to inViewStatus will now\n // log enter/exit analytics events\n isFirstRenderRef.current = false;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inView, entityId, element]);\n\n return {\n isFirstRenderRef,\n trackAnalytics\n };\n};\n\nexport default useFeedAnalytics;\n","import { isNil } from 'lodash-es';\nimport createNetworkingClient from 'utils/networking-client';\nimport { devLog } from 'utils/dev-utils';\nimport { useCallback } from 'react';\n\nimport { useFeedContext } from '../state/FeedContext';\n\nconst client = createNetworkingClient();\n\nconst cache = [];\n\nconst useFeedRitmoCapping = () => {\n const { entityState } = useFeedContext() || {\n entityState: {\n isRestoringScrollPosition: false\n }\n };\n const { isRestoringScrollPosition } = entityState;\n\n const errorState = (e) => {\n devLog(e);\n // TODO remove devLog and instead log error in sentry [monorepo]\n };\n\n const updateRitmo = useCallback(\n ({ elementId, path, promo, inView = true }) => {\n // do not track impressions for elements that are not in view and during feed scroll position restoration\n if (!inView || isRestoringScrollPosition) {\n return;\n }\n\n if (isNil(promo)) {\n errorState(new Error('promo name is required'));\n return;\n }\n if (isNil(elementId)) {\n errorState(new Error('element id is required'));\n return;\n }\n if (isNil(path)) {\n errorState(new Error('impression path is required'));\n return;\n }\n\n const key = `${promo}-${elementId}`;\n if (cache.includes(key)) {\n return;\n }\n\n client\n .post(path, {\n promo\n })\n .then((response) => {\n if (response.status === 200) {\n cache.push(key);\n } else {\n errorState(response.error);\n }\n })\n .catch((e) => {\n errorState(e);\n });\n },\n [isRestoringScrollPosition]\n );\n\n return { updateRitmo, cache };\n};\n\nexport default useFeedRitmoCapping;\n","import I18n from 'utils/I18n';\n\n// eg. given,\n// \"urls\": {\n// \"100\": \"https://photo_url_1\",\n// \"1800\": \"https://photo_url_2\"\n// }\n// returns https://photo_url_2\nexport const getPhotoWithMaxDimension = (photoUrlHash) => {\n const key = Object.keys(photoUrlHash).reduce((a, b) => (a > b ? a : b));\n return photoUrlHash[key];\n};\n\n// Takes Time Tag and converts displayed time to time ago from current time\n// ex) \n// returns \nexport const buildTimeAgoTimestamp = (timestamp) => {\n const timestampParsed = new DOMParser()\n .parseFromString(timestamp, 'text/html')\n .body.querySelector('time')\n .getAttribute('datetime');\n const timeToReplace = new DOMParser()\n .parseFromString(timestamp, 'text/html')\n .body.querySelector('time').innerHTML;\n const timeAgo = I18n.timespanFormatter().constructor.timeago(\n Date.parse(timestampParsed)\n );\n return timestamp.replace(timeToReplace, timeAgo);\n};\n\n// plus 10 entries and then round up to nearest 10\nexport const roundUpNearest10 = (num) => {\n const n = num < 1 ? 10 : num + 10;\n return Math.ceil(n / 10) * 10;\n};\n\nexport default {\n getPhotoWithMaxDimension,\n buildTimeAgoTimestamp\n};\n","import { useEffect } from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { useFeedContext } from '../state/FeedContext';\n\nimport { UPDATE_NUM_ENTRIES } from '../state/feed-actions';\nimport { roundUpNearest10 } from '../utils';\n\nconst useFeedIntersectionObserver = ({ index, isParentFeedEntry }) => {\n // intersectionObserverRef is a tag placed on any feed entry to keep track of\n // its inView status\n const [intersectionObserverRef, inView] = useInView({\n threshold: 0.5 // same as android (50%)\n });\n\n const { dispatch: dispatchFeed } = useFeedContext() || { dispatch: () => {} }; // TODO remove dummy dispatch for feed without container\n\n useEffect(() => {\n if (isParentFeedEntry && inView) {\n dispatchFeed({\n type: UPDATE_NUM_ENTRIES,\n payload: { numEntries: roundUpNearest10(index) } // fetches extra rows on page load for scroll restoration\n });\n }\n }, [dispatchFeed, inView, index, isParentFeedEntry]);\n\n return {\n inView,\n intersectionObserverRef\n };\n};\n\nexport default useFeedIntersectionObserver;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport I18n from 'utils/I18n';\n\nimport ActivityDistanceNormalXsmall from '@strava/icons/ActivityDistanceNormalXsmall';\nimport Button from '@strava/ui/Button';\nimport styles from './index.scss';\nimport useFeedAnalytics from '../../../hooks/useFeedAnalytics';\nimport useFeedRitmoCapping from '../../../hooks/useFeedRitmoCapping';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport useFeedIntersectionObserver from '../../../hooks/useFeedIntersectionObserver';\n\nfunction MapVisPrompt({ hideAnywhereSetting, paths, experimentVar, entityId }) {\n const units = I18n.measurementUnits();\n const i18nPrefix = `components.feed.map_vis_prompt.${hideAnywhereSetting}.`;\n const { analyticProps } = useFeedEntityContext();\n\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n isParentFeedEntry: false\n });\n\n const { updateRitmo } = useFeedRitmoCapping();\n\n const analyticsProperties = {\n cta:\n experimentVar === 'variant-a'\n ? 'hide_start_end_opt_in'\n : 'hide_start_end_opt_out',\n hide_anywhere: hideAnywhereSetting\n };\n const { trackAnalytics } = useFeedAnalytics({\n ...analyticProps,\n inView,\n element: 'map_visibility_activity_row_prompt',\n properties: analyticsProperties\n });\n\n useEffect(() => {\n updateRitmo({\n elementId: entityId,\n path: paths.promptImpression,\n promo: 'map_visibility_row_reinforcement_impression',\n inView\n });\n }, [entityId, inView, paths.promptImpression, updateRitmo]);\n\n const onButtonClick = () => {\n trackAnalytics({\n action: 'click',\n element: 'map_visibility_activity_row_prompt'\n });\n\n updateRitmo({\n path: paths.promptImpression,\n promo: 'map_visibility_row_reinforcement_dismissed',\n elementId: entityId\n });\n window.location.href = paths.hideAnywhere;\n };\n\n return (\n
    \n
    \n \n
    \n \n {hideAnywhereSetting === 'meters_200'\n ? I18n.t(`${i18nPrefix}description_${units}`)\n : I18n.t(`${i18nPrefix}description`)}\n
    \n \n {I18n.t(`${i18nPrefix}button`)}\n \n \n );\n}\n\nMapVisPrompt.propTypes = {\n hideAnywhereSetting: PropTypes.string.isRequired,\n paths: PropTypes.shape({\n promptImpression: PropTypes.string,\n hideAnywhere: PropTypes.string\n }).isRequired,\n experimentVar: PropTypes.string.isRequired,\n entityId: PropTypes.string.isRequired\n};\n\nexport default MapVisPrompt;\n","export { default } from './MapVisPrompt';\n","// extracted by mini-css-extract-plugin\nexport default {\"achievement-celebration\":\"MaharajAchievementCelebration--achievement-celebration--ouMf5\",\"achievementCelebration\":\"MaharajAchievementCelebration--achievement-celebration--ouMf5\",\"celebration-badge\":\"MaharajAchievementCelebration--celebration-badge--Dztz6\",\"celebrationBadge\":\"MaharajAchievementCelebration--celebration-badge--Dztz6\",\"celebration-text\":\"MaharajAchievementCelebration--celebration-text--YUrk+\",\"celebrationText\":\"MaharajAchievementCelebration--celebration-text--YUrk+\",\"celebration-title\":\"MaharajAchievementCelebration--celebration-title--HsvSA\",\"celebrationTitle\":\"MaharajAchievementCelebration--celebration-title--HsvSA\",\"celebration-subtitle\":\"MaharajAchievementCelebration--celebration-subtitle--oMTlO\",\"celebrationSubtitle\":\"MaharajAchievementCelebration--celebration-subtitle--oMTlO\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ClampLines from 'react-clamp-lines';\nimport styles from './index.scss';\n\n// This is for Maharaj achievements only - https://github.com/strava/maharaj\nconst AchievementCelebration = ({\n url,\n text,\n subtitle,\n image,\n image_caption: imageCaption\n}) => (\n \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n {subtitle && (\n \n \n
    \n )}\n \n \n);\n\nAchievementCelebration.propTypes = {\n url: PropTypes.string,\n text: PropTypes.string,\n subtitle: PropTypes.string,\n image: PropTypes.string,\n image_caption: PropTypes.string\n};\n\nAchievementCelebration.defaultProps = {\n url: '',\n text: '',\n subtitle: null,\n image: '',\n image_caption: ''\n};\n\nexport default AchievementCelebration;\n","export { default } from './MaharajAchievementCelebration';\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"PhotosAndMapImage--card--cHfDm\",\"card-image-top\":\"PhotosAndMapImage--card-image-top--EpA+Q\",\"cardImageTop\":\"PhotosAndMapImage--card-image-top--EpA+Q\",\"card-block\":\"PhotosAndMapImage--card-block--XYMNg\",\"cardBlock\":\"PhotosAndMapImage--card-block--XYMNg\",\"card-header\":\"PhotosAndMapImage--card-header--R5uxw\",\"cardHeader\":\"PhotosAndMapImage--card-header--R5uxw\",\"card-body\":\"PhotosAndMapImage--card-body---Uak8\",\"cardBody\":\"PhotosAndMapImage--card-body---Uak8\",\"card-footer\":\"PhotosAndMapImage--card-footer--JFcoD\",\"cardFooter\":\"PhotosAndMapImage--card-footer--JFcoD\",\"card-icon\":\"PhotosAndMapImage--card-icon--UGfkb\",\"cardIcon\":\"PhotosAndMapImage--card-icon--UGfkb\",\"app-icon-wrapper\":\"PhotosAndMapImage--app-icon-wrapper--HtRQS\",\"appIconWrapper\":\"PhotosAndMapImage--app-icon-wrapper--HtRQS\",\"media\":\"PhotosAndMapImage--media--tPwp-\",\"media-content\":\"PhotosAndMapImage--media-content--BjUJT\",\"mediaContent\":\"PhotosAndMapImage--media-content--BjUJT\",\"media-body\":\"PhotosAndMapImage--media-body--6fUuR\",\"mediaBody\":\"PhotosAndMapImage--media-body--6fUuR\",\"media-object\":\"PhotosAndMapImage--media-object--fJNAs\",\"mediaObject\":\"PhotosAndMapImage--media-object--fJNAs\",\"media-left\":\"PhotosAndMapImage--media-left--AJ-KG\",\"mediaLeft\":\"PhotosAndMapImage--media-left--AJ-KG\",\"media-object-left\":\"PhotosAndMapImage--media-object-left--LJM+5\",\"mediaObjectLeft\":\"PhotosAndMapImage--media-object-left--LJM+5\",\"media-object-right\":\"PhotosAndMapImage--media-object-right--gZR1x\",\"mediaObjectRight\":\"PhotosAndMapImage--media-object-right--gZR1x\",\"media-right\":\"PhotosAndMapImage--media-right--HRjox\",\"mediaRight\":\"PhotosAndMapImage--media-right--HRjox\",\"media-actions\":\"PhotosAndMapImage--media-actions--eKiLv\",\"mediaActions\":\"PhotosAndMapImage--media-actions--eKiLv\",\"media-center\":\"PhotosAndMapImage--media-center--VGPYl\",\"mediaCenter\":\"PhotosAndMapImage--media-center--VGPYl\",\"media-middle\":\"PhotosAndMapImage--media-middle--mdhY0\",\"mediaMiddle\":\"PhotosAndMapImage--media-middle--mdhY0\",\"media-bottom\":\"PhotosAndMapImage--media-bottom--ivzKB\",\"mediaBottom\":\"PhotosAndMapImage--media-bottom--ivzKB\",\"list-media\":\"PhotosAndMapImage--list-media--cY45I\",\"listMedia\":\"PhotosAndMapImage--list-media--cY45I\",\"comments\":\"PhotosAndMapImage--comments--nXwGg\",\"comment\":\"PhotosAndMapImage--comment--gcXRX\",\"thread\":\"PhotosAndMapImage--thread--2XcJL\",\"feed-pagination\":\"PhotosAndMapImage--feed-pagination--XTAnb\",\"feedPagination\":\"PhotosAndMapImage--feed-pagination--XTAnb\",\"spinner\":\"PhotosAndMapImage--spinner--t0Cq8\",\"no-entries\":\"PhotosAndMapImage--no-entries--1Pz-6\",\"noEntries\":\"PhotosAndMapImage--no-entries--1Pz-6\",\"entry-container\":\"PhotosAndMapImage--entry-container--9NDt+\",\"entryContainer\":\"PhotosAndMapImage--entry-container--9NDt+\",\"feed-entry\":\"PhotosAndMapImage--feed-entry--fOTiX\",\"feedEntry\":\"PhotosAndMapImage--feed-entry--fOTiX\",\"entry-inset\":\"PhotosAndMapImage--entry-inset--yYhOt\",\"entryInset\":\"PhotosAndMapImage--entry-inset--yYhOt\",\"entry-header\":\"PhotosAndMapImage--entry-header--jNt-F\",\"entryHeader\":\"PhotosAndMapImage--entry-header--jNt-F\",\"entry-body\":\"PhotosAndMapImage--entry-body--2+HrC\",\"entryBody\":\"PhotosAndMapImage--entry-body--2+HrC\",\"entry-media\":\"PhotosAndMapImage--entry-media--GTSjY\",\"entryMedia\":\"PhotosAndMapImage--entry-media--GTSjY\",\"entry-footer\":\"PhotosAndMapImage--entry-footer--tQUd4\",\"entryFooter\":\"PhotosAndMapImage--entry-footer--tQUd4\",\"entry-block\":\"PhotosAndMapImage--entry-block--shs+B\",\"entryBlock\":\"PhotosAndMapImage--entry-block--shs+B\",\"avatar\":\"PhotosAndMapImage--avatar--fNEC+\",\"avatar-img\":\"PhotosAndMapImage--avatar-img--JnCpU\",\"avatarImg\":\"PhotosAndMapImage--avatar-img--JnCpU\",\"card-margin\":\"PhotosAndMapImage--card-margin--qnjfg\",\"cardMargin\":\"PhotosAndMapImage--card-margin--qnjfg\",\"btn\":\"PhotosAndMapImage--btn--NLW+N\",\"btn-link\":\"PhotosAndMapImage--btn-link--RFl18\",\"btnLink\":\"PhotosAndMapImage--btn-link--RFl18\",\"photos-and-map-image-wrapper\":\"PhotosAndMapImage--photos-and-map-image-wrapper--Mtbkh\",\"photosAndMapImageWrapper\":\"PhotosAndMapImage--photos-and-map-image-wrapper--Mtbkh\",\"btn-sm\":\"PhotosAndMapImage--btn-sm--nGGKG\",\"btnSm\":\"PhotosAndMapImage--btn-sm--nGGKG\",\"text-bold\":\"PhotosAndMapImage--text-bold--7T7i-\",\"textBold\":\"PhotosAndMapImage--text-bold--7T7i-\",\"activity-map\":\"PhotosAndMapImage--activity-map--6fHiT\",\"activityMap\":\"PhotosAndMapImage--activity-map--6fHiT\",\"group-activity-map\":\"PhotosAndMapImage--group-activity-map--mIXxe\",\"groupActivityMap\":\"PhotosAndMapImage--group-activity-map--mIXxe\",\"activity-map-create-route\":\"PhotosAndMapImage--activity-map-create-route--Q1puz\",\"activityMapCreateRoute\":\"PhotosAndMapImage--activity-map-create-route--Q1puz\",\"activity-map-tags\":\"PhotosAndMapImage--activity-map-tags--8e7XC\",\"activityMapTags\":\"PhotosAndMapImage--activity-map-tags--8e7XC\",\"activity-map-tag\":\"PhotosAndMapImage--activity-map-tag--Rx4Mw\",\"activityMapTag\":\"PhotosAndMapImage--activity-map-tag--Rx4Mw\",\"tag-race\":\"PhotosAndMapImage--tag-race--Trdut\",\"tagRace\":\"PhotosAndMapImage--tag-race--Trdut\",\"entry-images\":\"PhotosAndMapImage--entry-images--M264M\",\"entryImages\":\"PhotosAndMapImage--entry-images--M264M\",\"entry-image\":\"PhotosAndMapImage--entry-image--NXygv\",\"entryImage\":\"PhotosAndMapImage--entry-image--NXygv\",\"entry-image-wrapper\":\"PhotosAndMapImage--entry-image-wrapper--LaoWz\",\"entryImageWrapper\":\"PhotosAndMapImage--entry-image-wrapper--LaoWz\",\"more-text-wrapper\":\"PhotosAndMapImage--more-text-wrapper--rer-7\",\"moreTextWrapper\":\"PhotosAndMapImage--more-text-wrapper--rer-7\",\"more-text\":\"PhotosAndMapImage--more-text--cbrtw\",\"moreText\":\"PhotosAndMapImage--more-text--cbrtw\",\"entry-more-images\":\"PhotosAndMapImage--entry-more-images--8M2Y9\",\"entryMoreImages\":\"PhotosAndMapImage--entry-more-images--8M2Y9\",\"images-1-up\":\"PhotosAndMapImage--images-1-up--VOA5w\",\"images1Up\":\"PhotosAndMapImage--images-1-up--VOA5w\",\"post-image\":\"PhotosAndMapImage--post-image--uAMtv\",\"postImage\":\"PhotosAndMapImage--post-image--uAMtv\",\"athlete-profile\":\"PhotosAndMapImage--athlete-profile--3yNxo\",\"athleteProfile\":\"PhotosAndMapImage--athlete-profile--3yNxo\",\"club\":\"PhotosAndMapImage--club--nMvTQ\",\"images-2-up\":\"PhotosAndMapImage--images-2-up---j1TK\",\"images2Up\":\"PhotosAndMapImage--images-2-up---j1TK\",\"images-3-up\":\"PhotosAndMapImage--images-3-up--gx8a3\",\"images3Up\":\"PhotosAndMapImage--images-3-up--gx8a3\",\"images-4-up\":\"PhotosAndMapImage--images-4-up--vEuad\",\"images4Up\":\"PhotosAndMapImage--images-4-up--vEuad\",\"images-5-up\":\"PhotosAndMapImage--images-5-up--LPz8g\",\"images5Up\":\"PhotosAndMapImage--images-5-up--LPz8g\",\"images-6-up\":\"PhotosAndMapImage--images-6-up--mmNvG\",\"images6Up\":\"PhotosAndMapImage--images-6-up--mmNvG\",\"enhanced-tag\":\"PhotosAndMapImage--enhanced-tag--5Spv9\",\"enhancedTag\":\"PhotosAndMapImage--enhanced-tag--5Spv9\",\"left\":\"PhotosAndMapImage--left--Sz8Ha\",\"fadeIn\":\"PhotosAndMapImage--fadeIn--MavlW\",\"newKudo\":\"PhotosAndMapImage--newKudo--u5q3H\",\"enterFadeOut\":\"PhotosAndMapImage--enterFadeOut--5IOp6\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@strava/ui/Button';\nimport I18n from 'utils/I18n';\nimport styles from '../styles.scss';\nimport useFeedAnalytics from '../../../../hooks/useFeedAnalytics';\n\nimport { mapProps } from '../../../../props/feed-prop-types';\nimport { useFeedEntityContext } from '../../../../state/FeedEntityContext';\nimport useFeedIntersectionObserver from '../../../../hooks/useFeedIntersectionObserver';\n\nconst tag = (label, className) => (\n \n {I18n.t(label)}\n \n);\n\nconst buildActivityMapTags = ({\n isVirtual,\n isCommute,\n workoutType,\n privacyTagKey\n}) => {\n const tags = [];\n if (privacyTagKey) {\n tags.push(tag(`templates.feed.activity.tag.${privacyTagKey}`));\n }\n if (isVirtual) {\n tags.push(tag('templates.feed.activity.tag.virtual'));\n }\n if (isCommute) {\n tags.push(tag('templates.feed.activity.tag.commute'));\n }\n if (workoutType) {\n const className = workoutType === 'race' ? styles.tagRace : '';\n tags.push(tag(`templates.feed.activity.tag.${workoutType}`, className));\n }\n return tags;\n};\n\nconst Map = ({\n activityMap,\n isRoutable,\n activityId,\n entryTypeClassName,\n isVirtual,\n isCommute,\n isGroupActivity,\n workoutType,\n privacyTagKey\n}) => {\n const { entityState, analyticProps } = useFeedEntityContext() || {};\n const elements = [];\n\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n isParentFeedEntry: false\n });\n\n useFeedAnalytics({\n ...analyticProps,\n element: 'map',\n inView\n });\n\n // \"Try this route\" button on maps\n const handleRouteButtonClick = () => {\n entityState.trackAnalytics({\n action: 'click',\n element: 'try_route'\n });\n window.location.href = `/activities/${activityId}/route`;\n };\n\n // \"Try this Route\" button\n if (isRoutable) {\n elements.push(\n \n handleRouteButtonClick(activityId)}\n >\n {I18n.t('templates.feed.activity.try_route')}\n \n \n );\n }\n\n const alt =\n activityMap.alt ||\n (isGroupActivity\n ? I18n.t('templates.feed.activity.group_map_alt')\n : I18n.t('templates.feed.activity.map_alt'));\n\n // Map image\n elements.push(\n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'map'\n });\n }}\n key=\"map\"\n href={`/activities/${activityId}`}\n >\n
    \n {buildActivityMapTags({\n isVirtual,\n isCommute,\n workoutType,\n privacyTagKey\n })}\n
    \n \n \n );\n return (\n \n
    {elements}
    \n \n );\n};\n\nMap.propTypes = {\n activityId: PropTypes.string.isRequired,\n isRoutable: PropTypes.bool.isRequired,\n activityMap: mapProps.isRequired,\n entryTypeClassName: PropTypes.oneOf([\n styles.activityMap,\n styles.groupActivityMap\n ]).isRequired,\n isVirtual: PropTypes.bool,\n isCommute: PropTypes.bool,\n isGroupActivity: PropTypes.bool,\n workoutType: PropTypes.oneOf(['race', 'long_run', 'workout']),\n privacyTagKey: PropTypes.string\n};\n\nMap.defaultProps = {\n workoutType: null,\n isVirtual: false,\n isCommute: false,\n isGroupActivity: false,\n privacyTagKey: null\n};\n\nexport default Map;\n","export { default } from './Map';\n","// extracted by mini-css-extract-plugin\nexport default {\"base\":\"VideoItem--base--jP8iK\",\"video\":\"VideoItem--video--ie0b5\"};","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport videojs from 'video.js';\n\nimport cx from '@strava/ui/clsx';\n\nimport { useFeedContext } from '../../../../../state/FeedContext';\nimport { useFeedEntityContext } from '../../../../../state/FeedEntityContext';\n\nimport styles from './VideoItem.scss';\n\nconst Poc = React.lazy(() => import('components/Poc'));\nconst Controls = React.lazy(() => import('./Controls'));\n\nfunction VideoItem({\n media,\n className,\n onClick,\n onReady,\n playOnHover,\n isAutoPlayItem\n}) {\n const {\n entityState: { isActivityVideoMuted }\n } = useFeedContext();\n\n const {\n entityState: { isAutoplayEnabled },\n entityState\n } = useFeedEntityContext();\n const [video, setVideo] = useState();\n const hoverTimerRef = useRef();\n\n function play() {\n clearTimeout(hoverTimerRef.current);\n\n hoverTimerRef.current = setTimeout(() => {\n // Pause all video that are currently playing\n videojs\n .getAllPlayers()\n .filter((p) => !p.paused() && p.id() !== video.id())\n .forEach((p) => p.pause());\n\n if (video && video.paused()) {\n video.play();\n }\n }, 500);\n }\n\n function pause() {\n clearTimeout(hoverTimerRef.current);\n hoverTimerRef.current = null;\n\n if (video && !video.paused()) {\n video.pause();\n }\n }\n\n return (\n {\n pause();\n onClick();\n }}\n onKeyPress={() => {\n pause();\n onClick();\n }}\n onMouseEnter={() => {\n if (!isAutoplayEnabled) return;\n if (!playOnHover) return;\n play();\n entityState.trackAnalytics({\n category: 'feed',\n page: 'activity',\n action: 'interact',\n element: 'video_hover_autoplay',\n properties: {\n video_id: media.photo_id,\n has_description: media.caption_escaped.length > 0,\n activity_athlete_id: media.owner_id\n }\n });\n }}\n onMouseLeave={() => {\n if (!isAutoplayEnabled) return;\n if (!playOnHover) return;\n if (isAutoPlayItem) return;\n pause();\n }}\n role=\"button\"\n tabIndex=\"0\"\n >\n }>\n \n {\n setVideo(player);\n onReady(player);\n }}\n options={{ controls: false, loop: true, muted: isActivityVideoMuted }}\n className={styles.video}\n />\n \n \n );\n}\n\nVideoItem.defaultProps = {\n playOnHover: true,\n className: null,\n isAutoPlayItem: false,\n onClick: () => {},\n onReady: () => {}\n};\n\nVideoItem.propTypes = {\n media: PropTypes.shape({\n duration: PropTypes.number,\n photo_id: PropTypes.string,\n caption_escaped: PropTypes.string,\n owner_id: PropTypes.string\n }).isRequired,\n className: PropTypes.string,\n onClick: PropTypes.func,\n onReady: PropTypes.func,\n playOnHover: PropTypes.bool,\n isAutoPlayItem: PropTypes.bool\n};\n\nexport default VideoItem;\n","export { default } from './VideoItem';\n","import React, { useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport StravaMediaLightbox from 'components/StravaMediaLightbox';\n\nimport { photoListProps } from '../../../../props/feed-prop-types';\nimport { SET_AUTOPLAY_VIDEO } from '../../../../state/feed-entity-actions';\nimport { useFeedEntityContext } from '../../../../state/FeedEntityContext';\nimport useFeedAnalytics from '../../../../hooks/useFeedAnalytics';\nimport useFeedIntersectionObserver from '../../../../hooks/useFeedIntersectionObserver';\n\nimport VideoItem from './VideoItem';\n\nimport styles from '../styles.scss';\n\n// photo image entries and their associated tags\nconst PhotoGrid = ({\n photoList,\n maxNumPhotosToShow,\n singleImageHighlighted,\n entryTypeClassName\n}) => {\n const { entityState, analyticProps, dispatch } = useFeedEntityContext();\n const { entityId, page, feedType } = analyticProps;\n const [params, setParams] = useState({\n isOpen: false,\n photoIndex: 0\n });\n\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n isParentFeedEntry: false\n });\n\n photoList.forEach((media, index) => {\n const orderIndex = `${index + 1}/${photoList.length}`;\n if (media.media_type === 1) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useFeedAnalytics({\n ...analyticProps,\n element: 'image',\n inView,\n properties: {\n image_id: media.photo_id,\n has_description: media.caption_escaped.length > 0,\n order: orderIndex,\n activity_athlete_id: media.owner_id\n }\n });\n } else {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useFeedAnalytics({\n ...analyticProps,\n element: 'video',\n inView,\n properties: {\n video_id: media.photo_id,\n has_description: media.caption_escaped.length > 0,\n order: orderIndex,\n activity_athlete_id: media.owner_id\n }\n });\n }\n });\n\n const photoCount = photoList.length;\n const showPhotoLightbox = params.isOpen && photoCount > 0;\n\n const firstVideoId = useMemo(() => {\n const filtered = photoList\n // Skip item that's under the \"+3\" element aka more_images element as\n // we do not want to autoplay it\n .slice(0, maxNumPhotosToShow - 1)\n .filter((p) => p?.media_type === 2)\n .map((p) => p.photo_id);\n\n return filtered.length > 0 ? filtered[0] : null;\n }, [photoList, maxNumPhotosToShow]);\n\n const snowplowMediaClickEvent = (index) => {\n const media = photoList[index];\n const isImage = media.media_type === 1;\n const orderIndex = `${index + 1}/${photoList.length}`;\n const properties = {\n has_description: media.caption_escaped.length > 0,\n order: orderIndex,\n activity_athlete_id: media.owner_id\n };\n if (isImage) {\n properties.image_id = media.photo_id;\n } else {\n properties.video_id = media.photo_id;\n properties.has_description = media.caption_escaped.length > 0;\n }\n entityState.trackAnalytics({\n action: 'click',\n element: media.media_type === 1 ? 'image' : 'video',\n properties\n });\n };\n\n const openLightBox = (index) => {\n snowplowMediaClickEvent(index);\n setParams({ isOpen: true, photoIndex: index });\n };\n\n const onMediaClick = (media) => {\n const data = {\n category: feedType,\n page,\n action: 'click',\n properties: {\n source: feedType,\n entity_id: entityId,\n entity_type: page,\n element_entity_type: media.media_type,\n element_entity_id: media.photo_id\n }\n };\n\n const isImage = media.media_type === 1;\n entityState.trackAnalytics({\n ...data,\n action: 'click',\n element: isImage ? 'photo' : 'video'\n });\n };\n\n const photoGrid = () => {\n const photoGridElements = [];\n if (singleImageHighlighted) {\n // Single image grid\n // Only the first photo (highlighted image) is displayed on posts\n // Image on posts do not open the lightbox\n const highlightedImageForPosts = photoList[0];\n photoGridElements.push(\n \n
    \n \n
    \n \n );\n } else {\n // Multiple photos grid\n photoGridElements.push(\n photoList.slice(0, maxNumPhotosToShow).map((photo, index) => {\n const { photo_id: photoId, large, caption_escaped: caption } = photo;\n\n if (photo?.media_type === 2) {\n return (\n {\n openLightBox(index);\n }}\n >\n {\n openLightBox(index);\n }}\n onReady={(player) => {\n if (photoId === firstVideoId) {\n dispatch({\n type: SET_AUTOPLAY_VIDEO,\n payload: { autoPlayVideo: player }\n });\n }\n }}\n />\n \n );\n }\n // Photos\n return (\n \n openLightBox(index)}\n onKeyPress={() => openLightBox(index)}\n role=\"button\"\n tabIndex=\"0\"\n >\n {/* Enhanced Partner Tag */}\n {photo.showEnhancedTag && photo.enhanced_photo && (\n
    \n {photo.enhanced_photo.name}\n
    \n )}\n {caption}\n \n \n );\n })\n );\n // show count for more images eg. +5 indicating that there\n // are 5 more images uploaded by the athlete that are not being currently shown on the\n // photo grid.\n if (photoCount > maxNumPhotosToShow) {\n const extraPhotos = photoCount - maxNumPhotosToShow;\n photoGridElements.push(\n snowplowMediaClickEvent(maxNumPhotosToShow)}\n onKeyPress={() => snowplowMediaClickEvent(maxNumPhotosToShow)}\n role=\"button\"\n tabIndex=\"0\"\n ref={intersectionObserverRef}\n >\n
    \n
    \n
    {`+ ${extraPhotos}`}
    \n
    \n
    \n \n );\n }\n }\n // Add photo lightbox\n if (showPhotoLightbox) {\n photoGridElements.push(\n {\n onMediaClick(photoList[params.photoIndex]);\n }}\n onCloseRequest={() => {\n setParams({ isOpen: false });\n }}\n analyticProps={analyticProps}\n />\n );\n }\n\n return photoGridElements;\n };\n\n return photoGrid();\n};\n\nPhotoGrid.propTypes = {\n photoList: photoListProps.isRequired,\n maxNumPhotosToShow: PropTypes.number,\n singleImageHighlighted: PropTypes.bool,\n entryTypeClassName: PropTypes.oneOf([\n styles.activityMap,\n styles.groupActivityMap,\n styles.postImage\n ]).isRequired\n};\n\nPhotoGrid.defaultProps = {\n maxNumPhotosToShow: 1,\n singleImageHighlighted: false\n};\n\nexport default PhotoGrid;\n","export { default } from './PhotoGrid';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { isEmpty, reject, isNil } from 'lodash-es';\n\nimport styles from './styles.scss';\n\nimport Map from './Map';\nimport PhotoGrid from './PhotoGrid';\nimport {\n mapProps,\n photoListProps,\n pageProps\n} from '../../../props/feed-prop-types';\n\n// Image entry types\nconst ACTIVITY = 'activity';\nconst GROUP_ACTIVITY = 'group_activity';\nconst POST = 'post';\n\n// Maximum # of photos allowed for each kind of entry (this does not include the map image)\nconst ACTIVITY_MAX_PHOTO_COUNT = 5;\nconst GROUP_ACTIVITY_MAX_PHOTO_COUNT = 4;\nconst POST_MAX_PHOTO_COUNT = 1;\n\n// Styling class for the container that houses all the image entries\n// Note: size count includes the activity map if its available\nconst imageEntriesContainerClass = ({\n entryType,\n totalNumEntryImages, // includes map image\n showMap\n}) => {\n if (entryType === ACTIVITY) {\n switch (totalNumEntryImages) {\n case 1:\n return styles.images1Up;\n case 2:\n return styles.images2Up;\n case 3:\n return styles.images3Up;\n case 4:\n return styles.images4Up;\n case 5:\n return styles.images5Up;\n case 6:\n return styles.images6Up;\n default:\n return styles.images6Up;\n }\n } else if (entryType === GROUP_ACTIVITY) {\n return showMap ? styles.images1Up : '';\n } else if (entryType === POST) {\n return styles.images1Up;\n }\n return '';\n};\n\nconst PhotosAndMapImage = ({\n entryType,\n activityId,\n activityMap,\n photoList,\n isRoutable,\n isVirtual,\n isCommute,\n workoutType,\n privacyTagKey,\n feedName\n}) => {\n const isGroupActivity = entryType === GROUP_ACTIVITY;\n const isPost = entryType === POST;\n\n // maps are shown for all entries except for posts\n const showMap = !isEmpty(activityMap) && !isPost;\n const showPhotoGrid = (() => {\n if (isGroupActivity && showMap) {\n // for group activities, photos will be ignored if they are provided together with the map image\n // this scenario should technically not happen in real life.\n // multiple PhotosAndMapImage are used for group activities - eg. one for headline image and then one for every\n // matched activity that has photos in it.\n return false;\n }\n return !isEmpty(photoList) && !isPost;\n })();\n const showPost = isPost && !isEmpty(photoList);\n\n // map image is included as the total number of images being displayed (this is used for activity type entries)\n const totalNumEntryImages = showMap ? photoList.length + 1 : photoList.length;\n\n // maximum number of images that can be displayed\n const maxNumPhotosToShow = (() => {\n switch (entryType) {\n case ACTIVITY:\n // allow one extra photo if map image is not present\n return !showMap\n ? ACTIVITY_MAX_PHOTO_COUNT + 1\n : ACTIVITY_MAX_PHOTO_COUNT;\n case GROUP_ACTIVITY:\n return GROUP_ACTIVITY_MAX_PHOTO_COUNT;\n default:\n // POST\n return POST_MAX_PHOTO_COUNT;\n }\n })();\n\n const entryTypeClassName = (() => {\n switch (entryType) {\n case ACTIVITY:\n return styles.activityMap;\n case GROUP_ACTIVITY:\n return styles.groupActivityMap;\n default:\n // POST\n return styles.postImage;\n }\n })();\n\n const imagesContainerClass = imageEntriesContainerClass({\n entryType,\n totalNumEntryImages,\n showMap\n });\n\n const containerClassNames = (() => {\n let feedImageHeight = null;\n if (feedName === 'profile') {\n feedImageHeight = styles.athleteProfile;\n } else if (feedName === 'club') {\n feedImageHeight = styles.club;\n }\n return reject(\n [\n styles.photosAndMapImageWrapper,\n styles.entryImages,\n feedImageHeight,\n imagesContainerClass\n ],\n isNil\n ).join(' ');\n })();\n\n return (\n
    \n {/* Map Image - Activity and Group Activity */}\n {showMap && (\n \n )}\n {/* Photo Stream - Activity and Group Activity */}\n {showPhotoGrid && (\n \n )}\n {/* Highlighted Image - Posts */}\n {showPost && (\n \n )}\n
    \n );\n};\n\nPhotosAndMapImage.propTypes = {\n entryType: PropTypes.oneOf([ACTIVITY, GROUP_ACTIVITY, POST]).isRequired,\n activityId: PropTypes.string,\n isRoutable: PropTypes.bool,\n activityMap: mapProps,\n photoList: photoListProps,\n isVirtual: PropTypes.bool,\n isCommute: PropTypes.bool,\n workoutType: PropTypes.oneOf(['race', 'long_run', 'workout']),\n privacyTagKey: PropTypes.string,\n feedName: pageProps.isRequired\n};\n\nPhotosAndMapImage.defaultProps = {\n activityId: null,\n isRoutable: false,\n activityMap: {},\n photoList: [],\n isVirtual: false,\n isCommute: false,\n workoutType: null,\n privacyTagKey: null\n};\n\nexport default PhotosAndMapImage;\n","export { default } from './PhotosAndMapImage';\n","// extracted by mini-css-extract-plugin\nexport default {\"kudos-and-comments\":\"KudosAndComments--kudos-and-comments--RTN8b\",\"kudosAndComments\":\"KudosAndComments--kudos-and-comments--RTN8b\",\"hairline\":\"KudosAndComments--hairline--n9t8k\",\"count-wrapper\":\"KudosAndComments--count-wrapper--C+w1w\",\"countWrapper\":\"KudosAndComments--count-wrapper--C+w1w\",\"count-button\":\"KudosAndComments--count-button--L2QfK\",\"countButton\":\"KudosAndComments--count-button--L2QfK\",\"spacer\":\"KudosAndComments--spacer--sjNL9\",\"kudos-face-pile\":\"KudosAndComments--kudos-face-pile--H5OUj\",\"kudosFacePile\":\"KudosAndComments--kudos-face-pile--H5OUj\",\"social-button\":\"KudosAndComments--social-button--sbn-p\",\"socialButton\":\"KudosAndComments--social-button--sbn-p\",\"media-body\":\"KudosAndComments--media-body--VdgRA\",\"mediaBody\":\"KudosAndComments--media-body--VdgRA\",\"comments-form\":\"KudosAndComments--comments-form--6JVZe\",\"commentsForm\":\"KudosAndComments--comments-form--6JVZe\",\"kudoed\":\"KudosAndComments--kudoed--FPvvg\",\"newKudo\":\"KudosAndComments--newKudo--dTJRR\"};","// extracted by mini-css-extract-plugin\nexport default {\"mentionable-comment-wrapper\":\"MentionableCommentForm--mentionable-comment-wrapper--w62zS\",\"mentionableCommentWrapper\":\"MentionableCommentForm--mentionable-comment-wrapper--w62zS\",\"avatar\":\"MentionableCommentForm--avatar--GdWqw\",\"post-comment-btn\":\"MentionableCommentForm--post-comment-btn--MP73l\",\"postCommentBtn\":\"MentionableCommentForm--post-comment-btn--MP73l\"};","// extracted by mini-css-extract-plugin\nexport default {\"body\":\"StravaMentionsInput--body--yOMK3\",\"btn\":\"StravaMentionsInput--btn--YYcZz\",\"suggestions\":\"StravaMentionsInput--suggestions--v2vJg\",\"suggestion-list\":\"StravaMentionsInput--suggestion-list--s0x0J\",\"suggestionList\":\"StravaMentionsInput--suggestion-list--s0x0J\",\"highlighter\":\"StravaMentionsInput--highlighter--+x0r2\",\"suggestion\":\"StravaMentionsInput--suggestion--XfaTw\",\"meta-container\":\"StravaMentionsInput--meta-container--G9xOE\",\"metaContainer\":\"StravaMentionsInput--meta-container--G9xOE\",\"athlete-name\":\"StravaMentionsInput--athlete-name--MeF65\",\"athleteName\":\"StravaMentionsInput--athlete-name--MeF65\",\"location\":\"StravaMentionsInput--location--6QQm3\",\"member-icon\":\"StravaMentionsInput--member-icon--YNAMK\",\"memberIcon\":\"StravaMentionsInput--member-icon--YNAMK\",\"mentioned-athlete\":\"StravaMentionsInput--mentioned-athlete--KNFRH\",\"mentionedAthlete\":\"StravaMentionsInput--mentioned-athlete--KNFRH\"};","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { MentionsInput, Mention } from 'react-mentions';\nimport Avatar from '@strava/ui/Avatar';\n\nimport I18n from 'utils/I18n';\nimport { setMentionInputStyles } from './MentionInputStyles';\n\nimport styles from './StravaMentionsInput.scss';\nimport { sortAndFilter } from './StravaMentionsInput.utils';\nimport { fetchAthletes } from './StravaMentionsInput.cache';\n\nconst StravaMentionsInput = ({\n viewingAthleteId,\n entity,\n entityId,\n placeHolder,\n suggestionLimit,\n autoFocus,\n trackAnalytics,\n onInputChange,\n clearInputToggle,\n inputHeight,\n value\n}) => {\n const [mentionableAthletes, setMentionableAthletes] = useState([]);\n const [inputValue, setInputValue] = useState(value);\n const firstRender = useRef(true);\n\n const mentionInputStyles = setMentionInputStyles({ inputHeight });\n\n useEffect(() => {\n if (firstRender.current) {\n firstRender.current = false;\n return;\n }\n setInputValue('');\n }, [clearInputToggle]);\n\n useEffect(() => {\n let isSubscribed = true;\n fetchAthletes({ viewingAthleteId }).then((mentionableFollowers) => {\n if (isSubscribed) {\n setMentionableAthletes(mentionableFollowers);\n }\n });\n return () => {\n isSubscribed = false;\n };\n }, [entity, entityId, viewingAthleteId]);\n\n const nameFromId = (id) => {\n return mentionableAthletes.find((a) => a.id === parseInt(id, 10)).display;\n };\n\n const filteredMentionableAthletes = (query) => {\n const results = mentionableAthletes.filter(\n (a) => a.display.toLowerCase().indexOf(query.toLowerCase()) >= 0\n );\n return results.slice(0, suggestionLimit);\n };\n\n const fetchEntityAthletes = (e) => {\n if (e.key === '@') {\n fetchAthletes({\n entity,\n entityId,\n viewingAthleteId\n }).then((mentionableEntityOwners) => {\n const filtered = sortAndFilter(\n mentionableAthletes.concat(mentionableEntityOwners),\n viewingAthleteId\n );\n setMentionableAthletes(filtered);\n });\n }\n };\n\n const renderSuggestion = (entry) => {\n const avatarStyle = { marginRight: '8px' };\n return (\n
    \n {\n trackAnalytics({\n action: 'click',\n element: 'profile_picture',\n properties: { element_source: 'mentionable-athlete-suggestions' }\n });\n }}\n />\n
    \n
    {entry.display}
    \n {entry.location && entry.location.length > 0 && (\n
    \n {entry.location}\n
    \n )}\n
    \n
    \n );\n };\n\n return (\n {\n setInputValue(newValue);\n onInputChange({ event, newValue, newPlainTextValue, mentions });\n }}\n onKeyDown={fetchEntityAthletes}\n a11ySuggestionsListLabel={I18n.t('components.mentions.list_label')}\n >\n \n \n );\n};\n\nStravaMentionsInput.defaultProps = {\n placeHolder: null,\n suggestionLimit: 5,\n autoFocus: false,\n trackAnalytics: () => {},\n onInputChange: () => {},\n clearInputToggle: false,\n inputHeight: 60,\n value: ''\n};\n\nStravaMentionsInput.propTypes = {\n entity: PropTypes.oneOf(['activity', 'group_activity', 'post']).isRequired,\n entityId: PropTypes.string.isRequired,\n placeHolder: PropTypes.string,\n suggestionLimit: PropTypes.number,\n autoFocus: PropTypes.bool,\n viewingAthleteId: PropTypes.string.isRequired,\n trackAnalytics: PropTypes.func,\n onInputChange: PropTypes.func,\n clearInputToggle: PropTypes.bool,\n inputHeight: PropTypes.number,\n value: PropTypes.string\n};\n\nexport default StravaMentionsInput;\n","export { default } from './StravaMentionsInput';\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Avatar from '@strava/ui/Avatar';\n\nimport I18n from 'utils/I18n';\nimport createNetworkingClient from 'utils/networking-client';\n\nimport Button from '@strava/ui/Button';\nimport { snakeCase } from 'lodash-es';\nimport { devLog } from 'utils/dev-utils';\n\nimport styles from './mentionable_comment.scss';\nimport {\n entitiesWithKudosAndComments,\n viewingAthleteProps\n} from '../../../props/feed-prop-types';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport {\n ADD_COMMENT_FAILED,\n ADD_COMMENT_START,\n ADD_COMMENT_COMPLETE\n} from '../../../state/feed-entity-actions';\nimport { ACTIVITY, GROUP_ACTIVITY } from '../../../constants/FeedEntryTypes';\nimport StravaMentionsInput from '../../../../StravaMentionsInput';\n\nconst MentionableCommentForm = ({\n viewingAthlete,\n entity,\n entityId,\n placeHolder,\n buttonText,\n suggestionLimit,\n autoFocus,\n parent\n}) => {\n const [comment, setComment] = useState('');\n const [clearInputToggle, setClearInputToggle] = useState(false);\n\n const placeHolderProp =\n placeHolder || I18n.t('templates.feed.comment_box.add_a_comment');\n const buttonTextProp =\n buttonText || I18n.t('templates.feed.comment_box.post');\n\n const { avatarUrl, name, id: viewingAthleteId, memberType } = viewingAthlete;\n\n const { entityState, dispatch } = useFeedEntityContext();\n\n // group activities use the same endpoint as activities\n const entityEndpoint =\n entity === GROUP_ACTIVITY ? ACTIVITY : snakeCase(entity);\n\n // Parses comment tokens into a string that can be shown to the user\n // example input:\n // [{\n // \"type\": \"mention_token\",\n // \"text\": \"Athlete Name\",\n // \"path\": \"/athletes/10\",\n // \"athlete_id\": 1\n // },\n // {\n // \"type\": \"raw_token\",\n // \"text\": \" text\"\n // }]\n //\n // output: Athlete Name text\n const parseComment = (data) => {\n if (typeof data === 'string') {\n return data;\n }\n const formattedTokens = data.map((token) => {\n if (token.type === 'mention_token') {\n return `${token.text}`;\n }\n return `${token.text}`;\n });\n return formattedTokens.join('');\n };\n\n const handleSubmitCommentComplete = (data) => {\n setComment('');\n setClearInputToggle(!clearInputToggle);\n\n const commentEntry = { ...data };\n commentEntry.comment = parseComment(data.comment);\n dispatch({\n type: ADD_COMMENT_COMPLETE,\n payload: { comment: commentEntry, entityId }\n });\n };\n\n const handleSubmitCommentFail = (error) => {\n // TODO [fumba] - add error on sentry\n devLog(error);\n dispatch({ type: ADD_COMMENT_FAILED });\n };\n\n const submitComment = (e) => {\n entityState.trackAnalytics({\n action: 'click',\n element: `post_comment_btn-on-${parent}`\n });\n e.preventDefault();\n dispatch({ type: ADD_COMMENT_START });\n createNetworkingClient()\n .post(`/feed/${entityEndpoint}/${entityId}/comment`, {\n comment\n })\n .then((response) => {\n if (response && response.status === 200) {\n handleSubmitCommentComplete(response.data);\n } else {\n handleSubmitCommentFail();\n }\n })\n .catch((error) => {\n handleSubmitCommentFail(error);\n });\n };\n\n const handleChange = ({ newValue }) => {\n setComment(newValue);\n };\n\n return (\n \n
    \n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'profile_picture',\n properties: {\n element_source: `comments-form-viewing-athlete-on-${parent}`\n }\n });\n }}\n />\n
    \n \n
    \n \n {buttonTextProp}\n \n
    \n \n );\n};\n\nMentionableCommentForm.defaultProps = {\n placeHolder: null,\n buttonText: null,\n suggestionLimit: 5,\n autoFocus: false,\n parent: 'feed_card'\n};\n\nMentionableCommentForm.propTypes = {\n entity: entitiesWithKudosAndComments.isRequired,\n entityId: PropTypes.string.isRequired,\n placeHolder: PropTypes.string,\n buttonText: PropTypes.string,\n suggestionLimit: PropTypes.number,\n autoFocus: PropTypes.bool,\n viewingAthlete: viewingAthleteProps.isRequired,\n parent: PropTypes.string\n};\n\nexport default MentionableCommentForm;\n","export { default } from './MentionableCommentForm';\n","// extracted by mini-css-extract-plugin\nexport default {\"avatar-and-meta\":\"AvatarAndMeta--avatar-and-meta--JQdQS\",\"avatarAndMeta\":\"AvatarAndMeta--avatar-and-meta--JQdQS\",\"meta\":\"AvatarAndMeta--meta--42HVE\",\"athlete-name\":\"AvatarAndMeta--athlete-name--hmzTL\",\"athleteName\":\"AvatarAndMeta--athlete-name--hmzTL\",\"location\":\"AvatarAndMeta--location--N7MEn\",\"row-content\":\"AvatarAndMeta--row-content--PlEUZ\",\"rowContent\":\"AvatarAndMeta--row-content--PlEUZ\",\"comment-reaction-container\":\"AvatarAndMeta--comment-reaction-container--M9Omk\",\"commentReactionContainer\":\"AvatarAndMeta--comment-reaction-container--M9Omk\",\"comment-reaction-button\":\"AvatarAndMeta--comment-reaction-button--uLBb9\",\"commentReactionButton\":\"AvatarAndMeta--comment-reaction-button--uLBb9\",\"comment-react-counter\":\"AvatarAndMeta--comment-react-counter--euBLK\",\"commentReactCounter\":\"AvatarAndMeta--comment-react-counter--euBLK\",\"view-comment-reactions-button\":\"AvatarAndMeta--view-comment-reactions-button--E1OB1\",\"viewCommentReactionsButton\":\"AvatarAndMeta--view-comment-reactions-button--E1OB1\",\"spacer\":\"AvatarAndMeta--spacer--DebMO\",\"activity-link\":\"AvatarAndMeta--activity-link--PzSLy\",\"activityLink\":\"AvatarAndMeta--activity-link--PzSLy\"};","// extracted by mini-css-extract-plugin\nexport default {\"comment-reaction-container\":\"CommentReaction--comment-reaction-container--zqFws\",\"commentReactionContainer\":\"CommentReaction--comment-reaction-container--zqFws\",\"comment-reaction-button\":\"CommentReaction--comment-reaction-button--O2U6b\",\"commentReactionButton\":\"CommentReaction--comment-reaction-button--O2U6b\",\"comment-react-counter\":\"CommentReaction--comment-react-counter--CfgLA\",\"commentReactCounter\":\"CommentReaction--comment-react-counter--CfgLA\",\"view-comment-reactions-button\":\"CommentReaction--view-comment-reactions-button--50gdG\",\"viewCommentReactionsButton\":\"CommentReaction--view-comment-reactions-button--50gdG\"};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport colors from '@strava/ui/colors';\n\nconst FistBumpNoDashesIconUnfilled = ({ color, size }) => (\n \n \n \n \n);\n\nFistBumpNoDashesIconUnfilled.defaultProps = {\n color: colors.O50_STRAVA_ORANGE,\n size: 24\n};\nFistBumpNoDashesIconUnfilled.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number\n};\n\nexport default FistBumpNoDashesIconUnfilled;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport colors from '@strava/ui/colors';\n\nconst FistBumpWithDashesIconFilled = ({ color, size }) => (\n \n \n \n \n \n \n \n \n \n);\n\nFistBumpWithDashesIconFilled.defaultProps = {\n color: colors.O50_STRAVA_ORANGE,\n size: 24\n};\nFistBumpWithDashesIconFilled.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number\n};\n\nexport default FistBumpWithDashesIconFilled;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport colors from '@strava/ui/colors';\n\nconst FistBumpWithDashesIconUnfilled = ({ color, size }) => (\n \n \n \n \n \n \n \n);\n\nFistBumpWithDashesIconUnfilled.defaultProps = {\n color: colors.O50_STRAVA_ORANGE,\n size: 24\n};\nFistBumpWithDashesIconUnfilled.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number\n};\n\nexport default FistBumpWithDashesIconUnfilled;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport colors from '@strava/ui/colors';\n\nconst HeartIconUnfilledSVG = ({ color, size }) => (\n \n \n \n);\n\nHeartIconUnfilledSVG.defaultProps = {\n color: colors.O50_STRAVA_ORANGE,\n size: 16\n};\nHeartIconUnfilledSVG.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number\n};\n\nexport default HeartIconUnfilledSVG;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport colors from '@strava/ui/colors';\n\nconst HeartIconFilledSVG = ({ color, size }) => (\n \n \n \n);\n\nHeartIconFilledSVG.defaultProps = {\n color: colors.O50_STRAVA_ORANGE,\n size: 16\n};\nHeartIconFilledSVG.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number\n};\n\nexport default HeartIconFilledSVG;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport colors from '@strava/ui/colors';\nimport FistBumpNoDashesIconUnfilled from './FistBumpNoDashesIconUnfilled';\nimport FistBumpWithDashesIconFilled from './FistBumpWithDashesIconFilled';\nimport FistBumpWithDashesIconUnfilled from './FistBumpWithDashesIconUnfilled';\nimport HeartIconUnfilled from './HeartIconUnfilled';\nimport HeartIconFilled from './HeartIconFilled';\n\nconst CommentReactionIcon = ({\n canCommentReactStatus,\n iconExperimentCohort\n}) => {\n const color = canCommentReactStatus\n ? colors.N70_GRAVEL\n : colors.O50_STRAVA_ORANGE;\n let reactionIcon;\n\n if (iconExperimentCohort === 'variant-a') {\n reactionIcon = canCommentReactStatus ? (\n \n ) : (\n \n );\n } else if (iconExperimentCohort === 'variant-b') {\n reactionIcon = canCommentReactStatus ? (\n \n ) : (\n \n );\n } else {\n reactionIcon = canCommentReactStatus ? (\n \n ) : (\n \n );\n }\n return reactionIcon;\n};\n\nCommentReactionIcon.propTypes = {\n canCommentReactStatus: PropTypes.bool.isRequired,\n iconExperimentCohort: PropTypes.string\n};\n\nCommentReactionIcon.defaultProps = {\n iconExperimentCohort: null\n};\n\nexport default CommentReactionIcon;\n","import React, { useState } from 'react';\nimport Button from '@strava/ui/Button';\nimport { devLog } from 'utils/dev-utils';\nimport PropTypes from 'prop-types';\nimport createNetworkingClient from 'utils/networking-client';\nimport I18n from 'utils/I18n';\nimport { useFeedEntityContext } from '../../../../state/FeedEntityContext';\nimport {\n ADD_COMMENT_REACTION,\n OPEN_COMMENT_REACTION_LIST\n} from '../../../../state/feed-entity-actions';\nimport styles from './styles.scss';\nimport CommentReactionIcon from '../CommentReactionIcons/CommentReactionIcon';\n\nconst CommentReaction = ({\n iconExperimentCohort,\n hasReacted,\n commentReactionCount,\n commentId,\n entityId\n}) => {\n const { entityState, dispatch } = useFeedEntityContext();\n const [canCommentReactStatus, setCanCommentReactStatus] = useState(\n !hasReacted\n );\n\n const [reactionCount, setReactionCount] = useState(commentReactionCount);\n const prefix = 'components.feed.social';\n\n const onClickViewCommentReactionList = () => {\n entityState.trackAnalytics({\n action: 'click',\n element: 'like_list_btn-on-modal',\n properties: { comment_id: commentId, activity_id: entityId }\n });\n dispatch({\n type: OPEN_COMMENT_REACTION_LIST,\n payload: { commentId, selectedEntityId: entityId }\n });\n };\n\n const postCommentReaction = () => {\n if (canCommentReactStatus) {\n createNetworkingClient()\n .post(`/comments/${commentId}/reactions`)\n .then(() => {\n setReactionCount((prevReactionCount) => prevReactionCount + 1);\n entityState.trackAnalytics({\n action: 'click',\n element: 'like_comment_btn-on-modal',\n properties: { comment_id: commentId, activity_id: entityId }\n });\n dispatch({\n type: ADD_COMMENT_REACTION,\n payload: { commentId, entityId, reactionCount }\n });\n setCanCommentReactStatus(false);\n })\n .catch((error) => {\n devLog(error);\n });\n }\n };\n return (\n
    \n postCommentReaction()}\n >\n \n \n {reactionCount > 0 && (\n \n onClickViewCommentReactionList()}\n className={styles.viewCommentReactionsButton}\n >\n {I18n.t(`${prefix}.reaction_count`, {\n count: reactionCount\n })}\n \n \n )}\n
    \n );\n};\n\nCommentReaction.propTypes = {\n iconExperimentCohort: PropTypes.string,\n hasReacted: PropTypes.bool.isRequired,\n commentReactionCount: PropTypes.number.isRequired,\n commentId: PropTypes.number.isRequired,\n entityId: PropTypes.string.isRequired\n};\n\nCommentReaction.defaultProps = {\n iconExperimentCohort: null\n};\n\nexport default CommentReaction;\n","export { default } from './CommentReaction';\n","import React from 'react';\nimport Avatar from '@strava/ui/Avatar';\nimport PropTypes from 'prop-types';\nimport { Markup } from 'interweave';\nimport styles from './index.scss';\nimport { useFeedEntityContext } from '../../../../../state/FeedEntityContext';\nimport CommentReaction from '../../CommentReaction';\n\nconst AvatarAndMeta = ({\n athleteMetaData,\n rowContent,\n iconExperimentCohort,\n showCommentReactions,\n entryId,\n commentReactionCount,\n hasReacted,\n entityId\n}) => {\n const { entityState } = useFeedEntityContext();\n\n const activityName = athleteMetaData.activity_link ? (\n <>\n
    -
    \n
    \n \n
    \n \n ) : null;\n\n return (\n
    \n
    \n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'profile_picture',\n properties: { element_source: 'kudos_and_comments_modal_content' }\n });\n }}\n />\n
    \n
    \n
    \n {athleteMetaData.name}\n {activityName}\n
    \n {/* Location should not be shown if there is a content row (eg. comments) */}\n {!rowContent &&\n athleteMetaData.location &&\n athleteMetaData.location.length > 0 && (\n
    \n {athleteMetaData.location}\n
    \n )}\n {rowContent && (\n
    \n {}\n {showCommentReactions && (\n \n )}\n
    \n )}\n
    \n
    \n );\n};\n\nAvatarAndMeta.propTypes = {\n athleteMetaData: PropTypes.shape({\n member_type: PropTypes.string,\n name: PropTypes.string.isRequired,\n avatar_url: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n activity_link: PropTypes.string\n }).isRequired,\n rowContent: PropTypes.string,\n showCommentReactions: PropTypes.bool.isRequired,\n iconExperimentCohort: PropTypes.string,\n entryId: PropTypes.number,\n commentReactionCount: PropTypes.number,\n hasReacted: PropTypes.bool,\n entityId: PropTypes.string.isRequired\n};\n\nAvatarAndMeta.defaultProps = {\n rowContent: null,\n iconExperimentCohort: null,\n entryId: null,\n commentReactionCount: 0,\n hasReacted: false\n};\n\nexport default AvatarAndMeta;\n","export { default } from './AvatarAndMeta';\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"KudosCommentsAndAchievementsModal--card--orKPh\",\"card-image-top\":\"KudosCommentsAndAchievementsModal--card-image-top--XrI-h\",\"cardImageTop\":\"KudosCommentsAndAchievementsModal--card-image-top--XrI-h\",\"card-block\":\"KudosCommentsAndAchievementsModal--card-block--EboTq\",\"cardBlock\":\"KudosCommentsAndAchievementsModal--card-block--EboTq\",\"card-header\":\"KudosCommentsAndAchievementsModal--card-header--v1Squ\",\"cardHeader\":\"KudosCommentsAndAchievementsModal--card-header--v1Squ\",\"card-body\":\"KudosCommentsAndAchievementsModal--card-body--rE6iR\",\"cardBody\":\"KudosCommentsAndAchievementsModal--card-body--rE6iR\",\"card-footer\":\"KudosCommentsAndAchievementsModal--card-footer--Dre4h\",\"cardFooter\":\"KudosCommentsAndAchievementsModal--card-footer--Dre4h\",\"card-icon\":\"KudosCommentsAndAchievementsModal--card-icon--g1F06\",\"cardIcon\":\"KudosCommentsAndAchievementsModal--card-icon--g1F06\",\"app-icon-wrapper\":\"KudosCommentsAndAchievementsModal--app-icon-wrapper--GvdMl\",\"appIconWrapper\":\"KudosCommentsAndAchievementsModal--app-icon-wrapper--GvdMl\",\"media\":\"KudosCommentsAndAchievementsModal--media--HFMFf\",\"media-content\":\"KudosCommentsAndAchievementsModal--media-content--RE8CI\",\"mediaContent\":\"KudosCommentsAndAchievementsModal--media-content--RE8CI\",\"media-body\":\"KudosCommentsAndAchievementsModal--media-body--C1OBL\",\"mediaBody\":\"KudosCommentsAndAchievementsModal--media-body--C1OBL\",\"media-object\":\"KudosCommentsAndAchievementsModal--media-object--DhWTy\",\"mediaObject\":\"KudosCommentsAndAchievementsModal--media-object--DhWTy\",\"media-left\":\"KudosCommentsAndAchievementsModal--media-left--JLT65\",\"mediaLeft\":\"KudosCommentsAndAchievementsModal--media-left--JLT65\",\"media-object-left\":\"KudosCommentsAndAchievementsModal--media-object-left--wCM1i\",\"mediaObjectLeft\":\"KudosCommentsAndAchievementsModal--media-object-left--wCM1i\",\"media-object-right\":\"KudosCommentsAndAchievementsModal--media-object-right--ngkn+\",\"mediaObjectRight\":\"KudosCommentsAndAchievementsModal--media-object-right--ngkn+\",\"media-right\":\"KudosCommentsAndAchievementsModal--media-right--m4DVO\",\"mediaRight\":\"KudosCommentsAndAchievementsModal--media-right--m4DVO\",\"media-actions\":\"KudosCommentsAndAchievementsModal--media-actions--lqSIr\",\"mediaActions\":\"KudosCommentsAndAchievementsModal--media-actions--lqSIr\",\"media-center\":\"KudosCommentsAndAchievementsModal--media-center--XuHxk\",\"mediaCenter\":\"KudosCommentsAndAchievementsModal--media-center--XuHxk\",\"media-middle\":\"KudosCommentsAndAchievementsModal--media-middle--va+Zk\",\"mediaMiddle\":\"KudosCommentsAndAchievementsModal--media-middle--va+Zk\",\"media-bottom\":\"KudosCommentsAndAchievementsModal--media-bottom--VCjTi\",\"mediaBottom\":\"KudosCommentsAndAchievementsModal--media-bottom--VCjTi\",\"list-media\":\"KudosCommentsAndAchievementsModal--list-media--Ni4Pm\",\"listMedia\":\"KudosCommentsAndAchievementsModal--list-media--Ni4Pm\",\"comments\":\"KudosCommentsAndAchievementsModal--comments--nlx7T\",\"comment\":\"KudosCommentsAndAchievementsModal--comment--6pqZu\",\"thread\":\"KudosCommentsAndAchievementsModal--thread--Ll0dn\",\"feed-pagination\":\"KudosCommentsAndAchievementsModal--feed-pagination--T5VQw\",\"feedPagination\":\"KudosCommentsAndAchievementsModal--feed-pagination--T5VQw\",\"spinner\":\"KudosCommentsAndAchievementsModal--spinner--cdLEt\",\"no-entries\":\"KudosCommentsAndAchievementsModal--no-entries--rAj0m\",\"noEntries\":\"KudosCommentsAndAchievementsModal--no-entries--rAj0m\",\"entry-container\":\"KudosCommentsAndAchievementsModal--entry-container--2CFfv\",\"entryContainer\":\"KudosCommentsAndAchievementsModal--entry-container--2CFfv\",\"feed-entry\":\"KudosCommentsAndAchievementsModal--feed-entry--swIyl\",\"feedEntry\":\"KudosCommentsAndAchievementsModal--feed-entry--swIyl\",\"entry-inset\":\"KudosCommentsAndAchievementsModal--entry-inset--g6FAH\",\"entryInset\":\"KudosCommentsAndAchievementsModal--entry-inset--g6FAH\",\"entry-header\":\"KudosCommentsAndAchievementsModal--entry-header--EvWeH\",\"entryHeader\":\"KudosCommentsAndAchievementsModal--entry-header--EvWeH\",\"entry-body\":\"KudosCommentsAndAchievementsModal--entry-body--Sfqmp\",\"entryBody\":\"KudosCommentsAndAchievementsModal--entry-body--Sfqmp\",\"entry-media\":\"KudosCommentsAndAchievementsModal--entry-media--TZOcx\",\"entryMedia\":\"KudosCommentsAndAchievementsModal--entry-media--TZOcx\",\"entry-footer\":\"KudosCommentsAndAchievementsModal--entry-footer--epV6T\",\"entryFooter\":\"KudosCommentsAndAchievementsModal--entry-footer--epV6T\",\"entry-block\":\"KudosCommentsAndAchievementsModal--entry-block--5+qEz\",\"entryBlock\":\"KudosCommentsAndAchievementsModal--entry-block--5+qEz\",\"avatar\":\"KudosCommentsAndAchievementsModal--avatar--xLkBn\",\"avatar-img\":\"KudosCommentsAndAchievementsModal--avatar-img--HX5f4\",\"avatarImg\":\"KudosCommentsAndAchievementsModal--avatar-img--HX5f4\",\"card-margin\":\"KudosCommentsAndAchievementsModal--card-margin--dJW7x\",\"cardMargin\":\"KudosCommentsAndAchievementsModal--card-margin--dJW7x\",\"btn\":\"KudosCommentsAndAchievementsModal--btn--IUKUA\",\"btn-link\":\"KudosCommentsAndAchievementsModal--btn-link--0HoUH\",\"btnLink\":\"KudosCommentsAndAchievementsModal--btn-link--0HoUH\",\"title\":\"KudosCommentsAndAchievementsModal--title--L7yIt\",\"description\":\"KudosCommentsAndAchievementsModal--description--dhzyO\",\"tab-content\":\"KudosCommentsAndAchievementsModal--tab-content--8EEae\",\"tabContent\":\"KudosCommentsAndAchievementsModal--tab-content--8EEae\",\"body\":\"KudosCommentsAndAchievementsModal--body--4PTIc\",\"entry\":\"KudosCommentsAndAchievementsModal--entry--WTki3\",\"segment-name\":\"KudosCommentsAndAchievementsModal--segment-name--hpfSj\",\"segmentName\":\"KudosCommentsAndAchievementsModal--segment-name--hpfSj\",\"timestamp-and-comment-actions\":\"KudosCommentsAndAchievementsModal--timestamp-and-comment-actions--n9HMF\",\"timestampAndCommentActions\":\"KudosCommentsAndAchievementsModal--timestamp-and-comment-actions--n9HMF\",\"timestamp\":\"KudosCommentsAndAchievementsModal--timestamp--2pqZZ\",\"comment-actions\":\"KudosCommentsAndAchievementsModal--comment-actions--9aTpT\",\"commentActions\":\"KudosCommentsAndAchievementsModal--comment-actions--9aTpT\",\"follow-btn\":\"KudosCommentsAndAchievementsModal--follow-btn--QIMal\",\"followBtn\":\"KudosCommentsAndAchievementsModal--follow-btn--QIMal\",\"action-link-button\":\"KudosCommentsAndAchievementsModal--action-link-button--Y3+3U\",\"actionLinkButton\":\"KudosCommentsAndAchievementsModal--action-link-button--Y3+3U\",\"comments-form\":\"KudosCommentsAndAchievementsModal--comments-form--wix+9\",\"commentsForm\":\"KudosCommentsAndAchievementsModal--comments-form--wix+9\",\"achievement-row\":\"KudosCommentsAndAchievementsModal--achievement-row--bPnJx\",\"achievementRow\":\"KudosCommentsAndAchievementsModal--achievement-row--bPnJx\",\"achievement-icon\":\"KudosCommentsAndAchievementsModal--achievement-icon--oAgr2\",\"achievementIcon\":\"KudosCommentsAndAchievementsModal--achievement-icon--oAgr2\",\"elapsed-time\":\"KudosCommentsAndAchievementsModal--elapsed-time--5FTam\",\"elapsedTime\":\"KudosCommentsAndAchievementsModal--elapsed-time--5FTam\",\"no-results\":\"KudosCommentsAndAchievementsModal--no-results--Liy9-\",\"noResults\":\"KudosCommentsAndAchievementsModal--no-results--Liy9-\",\"footer\":\"KudosCommentsAndAchievementsModal--footer--lLsKD\",\"footer-action-btn\":\"KudosCommentsAndAchievementsModal--footer-action-btn--T2ITM\",\"footerActionBtn\":\"KudosCommentsAndAchievementsModal--footer-action-btn--T2ITM\",\"comment-reaction-list-back-button\":\"KudosCommentsAndAchievementsModal--comment-reaction-list-back-button--1BrIZ\",\"commentReactionListBackButton\":\"KudosCommentsAndAchievementsModal--comment-reaction-list-back-button--1BrIZ\",\"comment-reaction-list-back-button-children\":\"KudosCommentsAndAchievementsModal--comment-reaction-list-back-button-children--hzZx5\",\"commentReactionListBackButtonChildren\":\"KudosCommentsAndAchievementsModal--comment-reaction-list-back-button-children--hzZx5\",\"fadeIn\":\"KudosCommentsAndAchievementsModal--fadeIn--Y3Euv\",\"newKudo\":\"KudosCommentsAndAchievementsModal--newKudo--ZvlNW\",\"enterFadeOut\":\"KudosCommentsAndAchievementsModal--enterFadeOut--9Lvti\"};","import { snakeCase } from 'lodash-es';\nimport { ACTIVITY, GROUP_ACTIVITY } from '../../../constants/FeedEntryTypes';\n\nexport const kudosUpdateEndpoint = ({ entity }) => {\n return entity === GROUP_ACTIVITY ? ACTIVITY : snakeCase(entity);\n};\n\nexport default { kudosUpdateEndpoint };\n","import React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport createNetworkingClient from 'utils/networking-client';\nimport Avatar from '@strava/ui/Avatar';\nimport Spinner from '@strava/ui/Spinner';\nimport { Markup } from 'interweave';\n\nimport ModalWithTabs, {\n ModalTabs,\n ModalTabList,\n ModalTab,\n ModalTabPanels,\n ModalTabPanel\n} from '@strava/ui/ModalWithTabs';\nimport Button, { LinkButton } from '@strava/ui/Button';\nimport { isEmpty } from 'lodash-es';\nimport AchievementsMedalPrSmall from '@strava/icons/AchievementsMedalPrSmall';\nimport AchievementsMedal02Small from '@strava/icons/AchievementsMedal02Small';\nimport AchievementsMedal03Small from '@strava/icons/AchievementsMedal03Small';\nimport AchievementsBadgeHighlightedSmall from '@strava/icons/AchievementsBadgeHighlightedSmall';\nimport AchievementsKomHighlightedSmall from '@strava/icons/AchievementsKomHighlightedSmall';\nimport AchievementsTrophy02Small from '@strava/icons/AchievementsTrophy02Small';\nimport AchievementsTrophy03Small from '@strava/icons/AchievementsTrophy03Small';\nimport AchievementsTrophy04Small from '@strava/icons/AchievementsTrophy04Small';\nimport AchievementsTrophy05Small from '@strava/icons/AchievementsTrophy05Small';\nimport AchievementsTrophy06Small from '@strava/icons/AchievementsTrophy06Small';\nimport AchievementsTrophy07Small from '@strava/icons/AchievementsTrophy07Small';\nimport AchievementsTrophy08Small from '@strava/icons/AchievementsTrophy08Small';\nimport AchievementsTrophy09Small from '@strava/icons/AchievementsTrophy09Small';\nimport AchievementsTrophy10Small from '@strava/icons/AchievementsTrophy10Small';\nimport SvgActionsArrowLeftNormalSmall from '@strava/icons/ActionsArrowLeftNormalSmall';\nimport Cldr from 'utils/Cldr';\nimport { devLog } from 'utils/dev-utils';\nimport { ACTIVITY, GROUP_ACTIVITY } from '../../../../constants/FeedEntryTypes';\nimport AvatarAndMeta from './AvatarAndMeta';\nimport CommentReactionList from './CommentReactionList';\nimport {\n viewingAthleteProps,\n entityOwnerProps,\n segAndBestEffortAchievementsProps\n} from '../../../../props/feed-prop-types';\nimport styles from './styles.scss';\nimport MentionableCommentForm from '../../MentionableCommentForm';\n\nimport { buildTimeAgoTimestamp } from '../../../../utils';\nimport { useFeedEntityContext } from '../../../../state/FeedEntityContext';\nimport {\n CLOSE_MODAL,\n ADD_KUDO,\n DELETE_COMMENT_START,\n CLOSE_COMMENT_REACTION_LIST\n} from '../../../../state/feed-entity-actions';\nimport { kudosUpdateEndpoint } from '../utils';\n\nconst prefix = 'templates.kudos_and_comments_modal';\n\nconst KudosCommentsAndAchievementsModal = ({\n title,\n segAndBestEffortAchievements,\n viewingAthlete,\n entity,\n entityId,\n hasOtherAthletes,\n entityOwner,\n kudosCount,\n commentsEnabled,\n reactionsEnabled,\n iconExperimentCohort\n}) => {\n const { entityState, dispatch } = useFeedEntityContext();\n\n const hasAchievements = !isEmpty(segAndBestEffortAchievements);\n const correctedTabIndex = () => {\n let { selectedTabIndex: tabIndexFromReducer } = entityState;\n if (!hasAchievements && tabIndexFromReducer === 3) {\n // adjust tab index if the athlete entry has no achievements tab\n tabIndexFromReducer -= 1;\n }\n if (!commentsEnabled) {\n // adjust tab index if comments are disabled for entity\n tabIndexFromReducer -= 1;\n }\n return tabIndexFromReducer;\n };\n\n const [index, setIndex] = useState(correctedTabIndex());\n const [groupedActivityData, setGroupedActivityData] = useState({\n athletes: [],\n hasOtherAthletes\n });\n const [hover, setHover] = useState(false);\n const [kudoData, setKudosData] = useState({\n isOwner: false,\n kudosable: false,\n athletes: []\n });\n const [commentReactionListData, setCommentReactionListData] = useState({\n reactionCount: 0,\n athletes: []\n });\n const [isLoading, setIsLoading] = useState(false);\n const [followRequestApprovalStatusMap, setAthleteFollowRequestMap] = useState(\n {}\n );\n const [isViewingCommentReactionList, setIsViewingReactionList] = useState(\n entityState.isViewingCommentReactionsList\n );\n\n const comments = entityState.comments[entityId] || [];\n const entityEndpoint = kudosUpdateEndpoint({ entity });\n\n const fetchKudoList = useCallback(() => {\n setIsLoading(true);\n createNetworkingClient()\n .get(`/feed/${entityEndpoint}/${entityId}/kudos`)\n .then(({ data }) => {\n setKudosData(data);\n setIsLoading(false);\n });\n }, [entityId, entityEndpoint]);\n\n const fetchCommentReactionList = useCallback(() => {\n const selectedCommentId = entityState.selectedComment;\n setIsLoading(true);\n createNetworkingClient()\n .get(`/comments/${selectedCommentId}/reactions`)\n .then(({ data }) => {\n setIsLoading(false);\n if (data.athletes) {\n setCommentReactionListData({\n reactionCount: data.reaction_count,\n athletes: data.athletes\n });\n }\n return [];\n })\n .catch((error) => {\n setIsLoading(false);\n devLog(error);\n });\n }, [entityState.selectedComment]);\n\n useEffect(() => {\n if (entityState.isViewingCommentReactionsList) {\n fetchCommentReactionList();\n // Comment Reactions List replaces kudo as tab index 0\n setIndex(0);\n setIsViewingReactionList(true);\n } else {\n setIsViewingReactionList(false);\n }\n }, [entityState.isViewingCommentReactionsList, dispatch]);\n\n // determine if the selected tab is 'other athlete' tab since\n // comments and achievements tabs are optional\n const isOtherAthletesTab = useCallback(() => {\n return (\n (commentsEnabled &&\n ((hasAchievements && index === 3) ||\n (!hasAchievements && index === 2))) ||\n (!commentsEnabled &&\n ((hasAchievements && index === 2) || (!hasAchievements && index === 1)))\n );\n }, [index, commentsEnabled, hasAchievements]);\n\n const isKudosTab = useCallback(() => {\n return index === 0;\n }, [index]);\n\n const fetchOtherAthletes = useCallback(() => {\n setIsLoading(true);\n createNetworkingClient()\n .get(`/feed/${entityEndpoint}/${entityId}/group_athletes`)\n .then(({ data }) => {\n setGroupedActivityData({ ...data, hasOtherAthletes: true });\n setIsLoading(false);\n });\n }, [entityEndpoint, entityId]);\n\n useEffect(() => {\n if (isKudosTab()) {\n fetchKudoList();\n }\n if (isOtherAthletesTab()) {\n fetchOtherAthletes();\n }\n }, [isKudosTab, fetchKudoList, fetchOtherAthletes, isOtherAthletesTab]);\n\n const toggleHover = () => {\n setHover((prev) => !prev);\n };\n\n const postKudo = () => {\n entityState.trackAnalytics({\n action: 'click',\n element: 'kudo_btn_on_modal'\n });\n const viewAthleteKudoData = {\n member_type: viewingAthlete.memberType,\n url: `/athletes/${viewingAthlete.id}`,\n name: viewingAthlete.name,\n avatar_url: viewingAthlete.avatarUrl,\n id: viewingAthlete.id,\n location: viewingAthlete.location,\n is_following: true // viewing athlete cannot follow themselves (this prevent the Follow button from showing)\n };\n createNetworkingClient()\n .post(`/feed/${entityEndpoint}/${entityId}/kudo`)\n .then(() =>\n setKudosData((prev) => ({\n ...prev,\n athletes: [viewAthleteKudoData].concat(prev.athletes),\n kudosable: false\n }))\n )\n .then(() => {\n dispatch({ type: ADD_KUDO });\n })\n .catch((error) => {\n // TODO log error to sentry (on monorepo)\n devLog(error);\n });\n };\n\n const isRecentlyFollowedAthlete = (kudoDataRow) =>\n followRequestApprovalStatusMap[kudoDataRow.id] &&\n followRequestApprovalStatusMap[kudoDataRow.id].requestApprovalStatus ===\n 'approved';\n\n const isRecentlyRequestedAthlete = (kudoDataRow) =>\n followRequestApprovalStatusMap[kudoDataRow.id] &&\n followRequestApprovalStatusMap[kudoDataRow.id].requestApprovalStatus ===\n 'pending';\n\n const onKudoDataRowButtonClick = (kudoDataRow) => {\n entityState.trackAnalytics({\n action: 'click',\n element: 'unfollow_btn_on_modal'\n });\n const kudoserId = kudoDataRow.id;\n const viewingAthleteId = viewingAthlete.id;\n if (\n isRecentlyRequestedAthlete(kudoDataRow) ||\n isRecentlyFollowedAthlete(kudoDataRow)\n ) {\n // Athlete reversing their follow add/request action\n createNetworkingClient()\n .delete(\n `/athletes/${viewingAthleteId}/follows/${followRequestApprovalStatusMap[kudoDataRow.id].followId}`\n )\n .then(() => {\n setAthleteFollowRequestMap((prevState) =>\n Object.assign(prevState, {\n [kudoserId]: { requestApprovalStatus: '' }\n })\n );\n })\n .then(toggleHover);\n } else {\n entityState.trackAnalytics({\n action: 'click',\n element: 'follow_btn_on_modal'\n });\n const payload = {\n follow: {\n following_id: kudoserId,\n follower_id: viewingAthleteId\n }\n };\n createNetworkingClient()\n .post(`/athletes/${viewingAthleteId}/follows`, payload)\n .then((response) => {\n const requestApprovalStatus = response.data.approved\n ? 'approved'\n : 'pending';\n setAthleteFollowRequestMap((prevState) =>\n Object.assign(prevState, {\n [kudoserId]: {\n requestApprovalStatus,\n followId: response.data.follow_id\n }\n })\n );\n })\n .then(toggleHover);\n }\n };\n\n const leaveAthleteGroup = () => {\n entityState.trackAnalytics({\n action: 'click',\n element: 'leave_athlete_group_btn_on_modal'\n });\n setIsLoading(true);\n createNetworkingClient()\n .delete(`/activities/${entityId}/grouping`)\n .then(() => {\n setGroupedActivityData({ athletes: [], hasOtherAthletes: false });\n setIsLoading(false);\n });\n };\n\n const processFollowButtonAttributes = (kudoDataRow) => {\n let label;\n let variant;\n if (isRecentlyFollowedAthlete(kudoDataRow)) {\n label = hover\n ? I18n.t(`${prefix}.unfollow`)\n : I18n.t(`${prefix}.following`);\n variant = 'default';\n } else if (isRecentlyRequestedAthlete(kudoDataRow)) {\n label = hover\n ? I18n.t(`${prefix}.follow_requested`)\n : I18n.t(`${prefix}.cancel_follow_request`);\n variant = 'default';\n } else {\n label = kudoDataRow.is_private\n ? I18n.t(`${prefix}.request_to_follow`)\n : I18n.t(`${prefix}.follow`);\n variant = 'primary-outline';\n }\n return { label, variant };\n };\n\n const buildFollowButton = (kudoDataRow) => {\n const followButtonAttributes = processFollowButtonAttributes(kudoDataRow);\n return (\n onKudoDataRowButtonClick(kudoDataRow)}\n onMouseEnter={toggleHover}\n onMouseLeave={toggleHover}\n className={styles.followBtn}\n >\n {followButtonAttributes.label}\n \n );\n };\n\n const spinner = (\n
    \n \n
    \n );\n\n const entriesFromFetchedData = (dataList) => {\n const components = [];\n dataList.athletes.forEach((kudoDataRow) => {\n components.push(\n
    \n \n {!kudoDataRow.is_following && buildFollowButton(kudoDataRow)}\n
    \n );\n });\n return components;\n };\n\n const buildKudoList = () => {\n if (isLoading) {\n return spinner;\n }\n // activity owner is not allowed to kudo their own activity\n const kudoAllowed = !kudoData.isOwner && kudoData.kudosable;\n let kudoEntries = entriesFromFetchedData(kudoData);\n if (kudoEntries.length === 0) {\n kudoEntries = (\n
    \n {I18n.t(`${prefix}.no_kudos_yet`)}\n
    \n );\n }\n return (\n <>\n
    {kudoEntries}
    \n
    \n \n {I18n.t(`${prefix}.give_kudos`)}\n \n
    \n \n );\n };\n\n const buildCommentReactionList = () => {\n if (isLoading) {\n return spinner;\n }\n return ;\n };\n\n const buildOtherAthleteList = () => {\n if (isLoading) {\n return spinner;\n }\n const groupAthletesEntries = entriesFromFetchedData(groupedActivityData);\n return (\n <>\n
    {groupAthletesEntries}
    \n {!isEmpty(groupedActivityData.athletes) &&\n viewingAthlete.id === entityOwner.id && (\n
    \n \n {I18n.t(`${prefix}.leave_group`)}\n \n
    \n )}\n \n );\n };\n\n const deleteComment = (comment) => {\n dispatch({\n type: DELETE_COMMENT_START,\n payload: { comment, entityId, element: 'modal' }\n });\n };\n\n const buildCommentList = () => {\n let thread = [];\n const showCommentReactions =\n reactionsEnabled && [ACTIVITY, GROUP_ACTIVITY].includes(entity);\n comments.forEach((entry) => {\n const commentReactionCount =\n entry.reactions_summary && entry.reactions_summary.reaction_count\n ? entry.reactions_summary.reaction_count\n : 0;\n const hasReacted =\n entry.reactions_summary && entry.reactions_summary.has_reacted\n ? entry.reactions_summary.has_reacted\n : false;\n const timeAgoTimestamp = buildTimeAgoTimestamp(entry.timestamp);\n\n thread.push(\n \n \n
    \n
    \n \n
    \n {(entry.deletable || entry.reportable || entry.quarantinable) && (\n
    \n {entry.reportable && (\n \n {I18n.t(`${prefix}.report`)}\n \n )}\n {entry.deletable && (\n deleteComment(entry)}\n >\n {I18n.t(`${prefix}.delete`)}\n \n )}\n {entry.quarantinable && (\n \n {I18n.t(`${prefix}.quarantine`)}\n \n )}\n
    \n )}\n
    \n \n );\n });\n if (thread.length === 0) {\n thread = (\n
    \n {I18n.t(`${prefix}.no_comments_yet`)}\n
    \n );\n }\n return (\n <>\n
    {thread}
    \n
    \n \n
    \n \n );\n };\n\n const legacySpriteToStravaUiIcon = (sprite) => {\n const SILVER = '#999999';\n const GOLD = '#FEC835';\n const BRONZE = '#E5820A';\n switch (sprite) {\n case 'icon-at-kom-1':\n return ;\n case 'icon-at-kom-2':\n return ;\n case 'icon-at-kom-3':\n return ;\n case 'icon-at-kom-4':\n return ;\n case 'icon-at-kom-5':\n return ;\n case 'icon-at-kom-6':\n return ;\n case 'icon-at-kom-7':\n return ;\n case 'icon-at-kom-8':\n return ;\n case 'icon-at-kom-9':\n return ;\n case 'icon-at-kom-10':\n return ;\n case 'icon-at-pr-1':\n case 'icon-yr-pr-1':\n return ;\n case 'icon-at-pr-2':\n case 'icon-yr-pr-2':\n return ;\n case 'icon-at-pr-3':\n case 'icon-yr-pr-3':\n return ;\n default:\n return ;\n }\n };\n\n const buildAchievementList = () => {\n const achievements = segAndBestEffortAchievements\n .filter((achievement) => !achievement.hidden)\n .map((achievement) => {\n const achievementIcon = legacySpriteToStravaUiIcon(achievement.sprite);\n return (\n \n
    {achievementIcon}
    \n \n {achievement.name}\n \n \n {achievement.description}\n \n \n \n \n \n );\n });\n return
    {achievements}
    ;\n };\n\n // tab order - kudos, comments (optional), achievements (optional), other athletes (optional)\n const onTabChange = (selectedTab) => {\n setIndex(selectedTab);\n if (isViewingCommentReactionList) {\n dispatch({\n type: CLOSE_COMMENT_REACTION_LIST,\n payload: { selectedEntityId: entityId }\n });\n // Go back to Comments tab\n setIndex(1);\n } else if (selectedTab === 0) {\n // kudos tab\n fetchKudoList();\n } else if (isOtherAthletesTab()) {\n // other athletes tab\n fetchOtherAthletes();\n }\n };\n\n const modalTitle = () => {\n return (\n
    \n
    \n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'profile_picture',\n properties: { element_source: 'kudos_and_comments_modal_title' }\n });\n }}\n />\n
    \n
    \n \n
    \n
    \n );\n };\n\n const kudosTabTitle = () => {\n return I18n.t(`${prefix}.kudos`).concat(\n ` (${Cldr.formatDecimal(kudosCount)})`\n );\n };\n\n const commentsTabTitle = () => {\n return I18n.t(`${prefix}.comments`).concat(\n ` (${Cldr.formatDecimal(comments.length)})`\n );\n };\n\n const acheivementsTabTitle = () => {\n return I18n.t(`${prefix}.achievements`).concat(\n ` (${Cldr.formatDecimal(\n segAndBestEffortAchievements.filter((a) => !a.hidden).length\n )})`\n );\n };\n\n const otherAthletesTabTitle = () => {\n return I18n.t(`${prefix}.other_athletes`);\n };\n\n const commentReactionListBackButton = () => {\n return (\n
    \n \n
    \n {I18n.t(`${prefix}.back`)}\n
    \n
    \n );\n };\n\n const dismissModal = () => {\n dispatch({ type: CLOSE_MODAL });\n if (entityState.isViewingCommentReactionsList) {\n dispatch({\n type: CLOSE_COMMENT_REACTION_LIST,\n payload: { selectedEntityId: entityId }\n });\n }\n };\n\n return (\n dismissModal()}\n aria-labelledby=\"kudos-comments-modal-title\"\n >\n \n {!isViewingCommentReactionList ? (\n \n {kudosTabTitle()}\n {commentsEnabled && {commentsTabTitle()}}\n {hasAchievements && {acheivementsTabTitle()}}\n {groupedActivityData.hasOtherAthletes && (\n {otherAthletesTabTitle()}\n )}\n \n ) : (\n \n \n {commentReactionListBackButton()}\n \n \n )}\n {!isViewingCommentReactionList ? (\n \n \n
    {buildKudoList()}
    \n
    \n {commentsEnabled && (\n \n
    {buildCommentList()}
    \n
    \n )}\n {hasAchievements && (\n \n
    \n {buildAchievementList()}\n
    \n
    \n )}\n {hasOtherAthletes && (\n \n
    \n {buildOtherAthleteList()}\n
    \n
    \n )}\n
    \n ) : (\n \n \n
    {buildCommentReactionList()}
    \n
    \n
    \n )}\n
    \n \n );\n};\n\nKudosCommentsAndAchievementsModal.propTypes = {\n title: PropTypes.string.isRequired,\n segAndBestEffortAchievements: segAndBestEffortAchievementsProps,\n viewingAthlete: viewingAthleteProps.isRequired,\n entity: PropTypes.string.isRequired,\n entityId: PropTypes.string.isRequired,\n hasOtherAthletes: PropTypes.bool,\n entityOwner: entityOwnerProps.isRequired,\n kudosCount: PropTypes.number.isRequired,\n commentsEnabled: PropTypes.bool, // this is currently only used by posts (AR work)\n reactionsEnabled: PropTypes.bool.isRequired,\n iconExperimentCohort: PropTypes.string\n};\n\nKudosCommentsAndAchievementsModal.defaultProps = {\n segAndBestEffortAchievements: [],\n hasOtherAthletes: false,\n commentsEnabled: true,\n iconExperimentCohort: null\n};\nexport default KudosCommentsAndAchievementsModal;\n","export { default } from './KudosCommentsAndAchievementsModal';\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"CommentsThread--card--glkaz\",\"card-image-top\":\"CommentsThread--card-image-top--wYeGS\",\"cardImageTop\":\"CommentsThread--card-image-top--wYeGS\",\"card-block\":\"CommentsThread--card-block--yJszg\",\"cardBlock\":\"CommentsThread--card-block--yJszg\",\"card-header\":\"CommentsThread--card-header--r6X1H\",\"cardHeader\":\"CommentsThread--card-header--r6X1H\",\"card-body\":\"CommentsThread--card-body--SWXSA\",\"cardBody\":\"CommentsThread--card-body--SWXSA\",\"card-footer\":\"CommentsThread--card-footer--+PW3r\",\"cardFooter\":\"CommentsThread--card-footer--+PW3r\",\"card-icon\":\"CommentsThread--card-icon--YN6xx\",\"cardIcon\":\"CommentsThread--card-icon--YN6xx\",\"app-icon-wrapper\":\"CommentsThread--app-icon-wrapper--C0ZsJ\",\"appIconWrapper\":\"CommentsThread--app-icon-wrapper--C0ZsJ\",\"media\":\"CommentsThread--media--D-l15\",\"media-content\":\"CommentsThread--media-content--xGofT\",\"mediaContent\":\"CommentsThread--media-content--xGofT\",\"media-body\":\"CommentsThread--media-body--D0F3r\",\"mediaBody\":\"CommentsThread--media-body--D0F3r\",\"media-object\":\"CommentsThread--media-object--H2Y+4\",\"mediaObject\":\"CommentsThread--media-object--H2Y+4\",\"media-left\":\"CommentsThread--media-left--1ux7T\",\"mediaLeft\":\"CommentsThread--media-left--1ux7T\",\"media-object-left\":\"CommentsThread--media-object-left--vgYsw\",\"mediaObjectLeft\":\"CommentsThread--media-object-left--vgYsw\",\"media-object-right\":\"CommentsThread--media-object-right--5M0hX\",\"mediaObjectRight\":\"CommentsThread--media-object-right--5M0hX\",\"media-right\":\"CommentsThread--media-right--2dCCN\",\"mediaRight\":\"CommentsThread--media-right--2dCCN\",\"media-actions\":\"CommentsThread--media-actions--iMqke\",\"mediaActions\":\"CommentsThread--media-actions--iMqke\",\"media-center\":\"CommentsThread--media-center--g1BHe\",\"mediaCenter\":\"CommentsThread--media-center--g1BHe\",\"media-middle\":\"CommentsThread--media-middle--PLkop\",\"mediaMiddle\":\"CommentsThread--media-middle--PLkop\",\"media-bottom\":\"CommentsThread--media-bottom--kNkOb\",\"mediaBottom\":\"CommentsThread--media-bottom--kNkOb\",\"list-media\":\"CommentsThread--list-media--0FaS-\",\"listMedia\":\"CommentsThread--list-media--0FaS-\",\"comments\":\"CommentsThread--comments--XIKwp\",\"comment\":\"CommentsThread--comment--ryaZV\",\"thread\":\"CommentsThread--thread--tBqd3\",\"feed-pagination\":\"CommentsThread--feed-pagination--jZZ91\",\"feedPagination\":\"CommentsThread--feed-pagination--jZZ91\",\"spinner\":\"CommentsThread--spinner--aI8Lo\",\"no-entries\":\"CommentsThread--no-entries--Jc4JD\",\"noEntries\":\"CommentsThread--no-entries--Jc4JD\",\"entry-container\":\"CommentsThread--entry-container--bmA2A\",\"entryContainer\":\"CommentsThread--entry-container--bmA2A\",\"feed-entry\":\"CommentsThread--feed-entry--Cfvot\",\"feedEntry\":\"CommentsThread--feed-entry--Cfvot\",\"entry-inset\":\"CommentsThread--entry-inset--YBh4-\",\"entryInset\":\"CommentsThread--entry-inset--YBh4-\",\"entry-header\":\"CommentsThread--entry-header--LRSh+\",\"entryHeader\":\"CommentsThread--entry-header--LRSh+\",\"entry-body\":\"CommentsThread--entry-body--GLoRL\",\"entryBody\":\"CommentsThread--entry-body--GLoRL\",\"entry-media\":\"CommentsThread--entry-media--qz5Ud\",\"entryMedia\":\"CommentsThread--entry-media--qz5Ud\",\"entry-footer\":\"CommentsThread--entry-footer--UOv5i\",\"entryFooter\":\"CommentsThread--entry-footer--UOv5i\",\"entry-block\":\"CommentsThread--entry-block--Xr071\",\"entryBlock\":\"CommentsThread--entry-block--Xr071\",\"avatar\":\"CommentsThread--avatar--19Srf\",\"avatar-img\":\"CommentsThread--avatar-img--dt85B\",\"avatarImg\":\"CommentsThread--avatar-img--dt85B\",\"card-margin\":\"CommentsThread--card-margin--VfJeG\",\"cardMargin\":\"CommentsThread--card-margin--VfJeG\",\"btn\":\"CommentsThread--btn--EZXwm\",\"btn-link\":\"CommentsThread--btn-link--ZTGYZ\",\"btnLink\":\"CommentsThread--btn-link--ZTGYZ\",\"report-and-delete-buttons\":\"CommentsThread--report-and-delete-buttons--oXecl\",\"reportAndDeleteButtons\":\"CommentsThread--report-and-delete-buttons--oXecl\",\"more-comments-button\":\"CommentsThread--more-comments-button--MnE+d\",\"moreCommentsButton\":\"CommentsThread--more-comments-button--MnE+d\",\"name-and-time\":\"CommentsThread--name-and-time--gi2yN\",\"nameAndTime\":\"CommentsThread--name-and-time--gi2yN\",\"athlete-name\":\"CommentsThread--athlete-name--d4tcE\",\"athleteName\":\"CommentsThread--athlete-name--d4tcE\",\"timestamp-and-comment-actions\":\"CommentsThread--timestamp-and-comment-actions--ivNSW\",\"timestampAndCommentActions\":\"CommentsThread--timestamp-and-comment-actions--ivNSW\",\"comment-actions\":\"CommentsThread--comment-actions---adQa\",\"commentActions\":\"CommentsThread--comment-actions---adQa\",\"comment-text\":\"CommentsThread--comment-text--LLbCi\",\"commentText\":\"CommentsThread--comment-text--LLbCi\",\"fadeIn\":\"CommentsThread--fadeIn--OLDmb\",\"newKudo\":\"CommentsThread--newKudo--BWBjc\",\"enterFadeOut\":\"CommentsThread--enterFadeOut--szGsy\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport Avatar from '@strava/ui/Avatar';\nimport Button, { LinkButton } from '@strava/ui/Button';\nimport { Markup } from 'interweave';\nimport { useFeedEntityContext } from '../../../../state/FeedEntityContext';\nimport { buildTimeAgoTimestamp } from '../../../../utils';\nimport useFeedAnalytics from '../../../../hooks/useFeedAnalytics';\nimport { DELETE_COMMENT_START } from '../../../../state/feed-entity-actions';\nimport styles from './styles.scss';\nimport useFeedIntersectionObserver from '../../../../hooks/useFeedIntersectionObserver';\nimport CommentReaction from '../CommentReaction';\n\nconst prefix = 'components.feed.social';\n\nconst CommentsThread = ({\n onSeeMoreCommentsClick,\n entityId,\n showCommentReactions,\n iconExperimentCohort\n}) => {\n const { dispatch, entityState, analyticProps } = useFeedEntityContext();\n\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n isParentFeedEntry: false\n });\n\n useFeedAnalytics({\n ...analyticProps,\n element: 'comment_preview',\n inView\n });\n\n const comments = entityState.comments[entityId] || [];\n const numComments = comments.length;\n const totalComments = Math.min(numComments, 2);\n\n const deleteComment = (comment) => {\n dispatch({\n type: DELETE_COMMENT_START,\n payload: { comment, entityId, element: 'comments_thread' }\n });\n };\n\n const thread = () => {\n return comments\n .slice(Math.max(numComments - totalComments, 0))\n .map((comment) => {\n const timeAgoTimestamp = buildTimeAgoTimestamp(comment.timestamp);\n // eslint-disable-next-line camelcase\n const { reactions_summary } = comment;\n const hasReacted =\n // eslint-disable-next-line camelcase\n reactions_summary && reactions_summary.has_reacted\n ? reactions_summary.has_reacted\n : false;\n const commentReactionCount =\n // eslint-disable-next-line camelcase\n reactions_summary && reactions_summary.reaction_count\n ? reactions_summary.reaction_count\n : 0;\n\n return (\n \n
    \n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'profile_picture',\n properties: { element_source: 'comments_thread' }\n });\n }}\n />\n
    \n
    \n
    \n \n \n \n {(comment.deletable || comment.reportable) && (\n
    \n {comment.reportable && (\n \n {I18n.t(`${prefix}.report`)}\n \n )}\n {comment.deletable && (\n deleteComment(comment)}\n type=\"button\"\n >\n {I18n.t(`${prefix}.delete`)}\n \n )}\n
    \n )}\n
    \n
    \n\n \n \n \n {showCommentReactions && (\n \n )}\n \n \n );\n });\n };\n\n return (\n
    \n {numComments > 0 &&
      {thread()}
    }\n {numComments > 2 && (\n \n {I18n.t(`${prefix}.see_all_comments`, {\n number: numComments\n })}\n \n )}\n
    \n );\n};\n\nCommentsThread.propTypes = {\n onSeeMoreCommentsClick: PropTypes.func.isRequired,\n entityId: PropTypes.string.isRequired,\n showCommentReactions: PropTypes.bool.isRequired,\n iconExperimentCohort: PropTypes.string\n};\n\nCommentsThread.defaultProps = {\n iconExperimentCohort: null\n};\n\nexport default CommentsThread;\n","export { default } from './CommentsThread';\n","// extracted by mini-css-extract-plugin\nexport default {\"media-actions\":\"MediaActions--media-actions--h6z0x\",\"mediaActions\":\"MediaActions--media-actions--h6z0x\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './media-actions.scss';\n\nconst MediaActions = ({ children, className, ...options }) => {\n const classNames = [styles.mediaActions];\n if (className) {\n classNames.push(className);\n }\n return (\n
    \n {children}\n
    \n );\n};\n\nMediaActions.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string\n};\n\nMediaActions.defaultProps = {\n className: null\n};\n\nexport default MediaActions;\n","export { default } from './MediaActions';\n","import React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport colors from '@strava/ui/colors';\nimport Button from '@strava/ui/Button';\nimport AvatarGroup from '@strava/ui/AvatarGroup';\nimport Avatar from '@strava/ui/Avatar';\nimport I18n from 'utils/I18n';\nimport SvgActionsKudoHighlightedXsmall from '@strava/icons/ActionsKudoHighlightedXsmall';\nimport SvgActionsKudoNormalXsmall from '@strava/icons/ActionsKudoNormalXsmall';\nimport SvgActionsCommentNormalXsmall from '@strava/icons/ActionsCommentNormalXsmall';\nimport createNetworkingClient from 'utils/networking-client';\nimport Cldr from 'utils/Cldr';\nimport { devLog } from 'utils/dev-utils';\nimport {\n kudosAndCommentsProps,\n viewingAthleteProps,\n entityOwnerProps,\n segAndBestEffortAchievementsProps,\n entitiesWithKudosAndComments\n} from '../../../props/feed-prop-types';\nimport styles from './styles.scss';\nimport MentionableCommentForm from '../MentionableCommentForm';\nimport KudosCommentsAndAchievementsModal from './KudosCommentsAndAchievementsModal';\nimport CommentsThread from './CommentsThread';\n\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport {\n OPEN_MODAL_COMMENTS_TAB,\n OPEN_MODAL_KUDOS_TAB\n} from '../../../state/feed-entity-actions';\nimport { kudosUpdateEndpoint } from './utils';\nimport Media from '../media/Media';\nimport MediaBody from '../media/MediaBody';\nimport MediaActions from '../media/MediaActions';\n\nconst KudosAndComments = ({\n kudosAndComments,\n entity,\n entityId,\n ownedByCurrentAthlete,\n viewingAthlete,\n entityOwner,\n entityTitle,\n openCommentsModalOnIconClick,\n segAndBestEffortAchievements,\n showHairlineOnTop,\n reactionsEnabled,\n iconExperimentCohort\n}) => {\n const {\n canKudo,\n kudosCount,\n highlightedKudosers: initialLoadHighlightedKudosers,\n commentsEnabled\n } = kudosAndComments;\n\n const [canKudoStatus, setCanKudoStatus] = useState(canKudo);\n const [currentKudoCount, setCurrentKudoCount] = useState(kudosCount);\n const [showForm, setShowForm] = useState(false);\n const [hasKudoed, setHasKudoed] = useState(false);\n const [highlightedKudosers, setHighlightedKudosers] = useState(\n initialLoadHighlightedKudosers\n );\n const { entityState, dispatch } = useFeedEntityContext();\n const prefix = 'components.feed.social';\n\n const commentIconButtonTitle = () => {\n return openCommentsModalOnIconClick\n ? I18n.t(`${prefix}.view_all_comments`)\n : I18n.t(`${prefix}.icon.comments`);\n };\n\n const comments = entityState.comments[entityId] || [];\n\n const showKudosCallToAction =\n canKudoStatus && currentKudoCount === 0 && comments.length === 0;\n\n const kudoIconButtonTitle = () => {\n // First to give kudos\n if (showKudosCallToAction) {\n return I18n.t(`${prefix}.give_kudos`);\n }\n return canKudoStatus && currentKudoCount > 0\n ? I18n.t(`${prefix}.icon.give_kudos`)\n : I18n.t(`${prefix}.view_all_kudos`);\n };\n\n const handleAvatarGroupClick = () => {\n entityState.trackAnalytics({\n action: 'click',\n element: 'avatar_group',\n properties: { element_source: 'highlighted_kudosers' }\n });\n\n dispatch({\n type: OPEN_MODAL_KUDOS_TAB,\n payload: {\n element: 'avatar_group',\n selectedEntityId: entityId\n }\n });\n };\n\n const showHighlightedKudoers = () => {\n return (\n // eslint-disable-next-line\n \n \n {highlightedKudosers.map((kudoer) => {\n return (\n \n );\n })}\n \n \n );\n };\n\n const handleClickKudoFail = (e) => {\n // TODO: handle error case\n devLog(e);\n };\n\n const onClickKudoSuccessful = useCallback(() => {\n // Not allowed to kudo more than once\n setCanKudoStatus(false);\n setHasKudoed(true);\n setCurrentKudoCount((prev) => prev + 1);\n\n const highlightedKudoser = {\n avatar_url: viewingAthlete.avatarUrl,\n destination_url: `/athletes/${viewingAthlete.id}`,\n display_name: viewingAthlete.name,\n show_name: false\n };\n setHighlightedKudosers((prev) =>\n [highlightedKudoser].concat(prev.slice(0, 2))\n );\n }, [viewingAthlete.avatarUrl, viewingAthlete.id, viewingAthlete.name]);\n\n const entityEndpoint = kudosUpdateEndpoint({ entity });\n\n const onClickKudo = (element) => {\n entityState.trackAnalytics({\n action: 'click',\n element\n });\n createNetworkingClient()\n .post(`/feed/${entityEndpoint}/${entityId}/kudo`)\n .then((response) => {\n if (response && response.status === 200) {\n onClickKudoSuccessful();\n } else {\n handleClickKudoFail(response.error);\n }\n })\n .catch((e) => {\n handleClickKudoFail(e);\n });\n };\n\n useEffect(() => {\n if (entityState.kudoPosted) {\n // can only kudo an entity once...\n onClickKudoSuccessful();\n }\n }, [entityState.kudoPosted, onClickKudoSuccessful, dispatch]);\n\n const onClickComment = () => {\n const element = 'comment';\n if (openCommentsModalOnIconClick) {\n dispatch({\n type: OPEN_MODAL_COMMENTS_TAB,\n payload: { element, selectedEntityId: entityId }\n });\n return;\n }\n entityState.trackAnalytics({\n action: 'click',\n element\n });\n setShowForm((prev) => !prev);\n };\n\n // eg. \"45 kudos. 12 comments\"\n const kudosAndCommentsCtaText = () => {\n const components = [];\n // kudo label text when there are no kudos (Be the first to give kudos!)\n if (showKudosCallToAction) {\n components.push(\n onClickKudo('kudos_cta')\n : () =>\n dispatch({\n type: OPEN_MODAL_KUDOS_TAB,\n payload: {\n element: 'kudos_cta',\n selectedEntityId: entityId\n }\n })\n }\n data-testid=\"give_kudos_button\"\n key=\"give_kudos_button\"\n >\n {I18n.t('components.feed.social.give_kudos')}\n \n );\n }\n // kudo label text with count (eg. 77 kudos)\n else if (currentKudoCount > 0) {\n components.push(\n \n dispatch({\n type: OPEN_MODAL_KUDOS_TAB,\n payload: { element: 'kudo_list', selectedEntityId: entityId }\n })\n }\n data-testid=\"kudos_count\"\n key=\"kudos_count\"\n >\n {Cldr.formatDecimal(currentKudoCount)} \n {I18n.t('components.feed.social.kudos')}\n \n );\n if (commentsEnabled && comments.length > 0) {\n components.push(\n
    \n ·\n
    \n );\n }\n }\n // comment label text with count (eg. 48 comments )\n if (commentsEnabled && comments.length > 0) {\n components.push(\n \n dispatch({\n type: OPEN_MODAL_COMMENTS_TAB,\n payload: { element: 'comment_list', selectedEntityId: entityId }\n })\n }\n data-testid=\"comments_count\"\n key=\"comments_count\"\n >\n {Cldr.formatDecimal(comments.length)} \n {comments.length === 1\n ? I18n.t('components.feed.social.comment')\n : I18n.t('components.feed.social.comments')}\n \n );\n }\n return (\n
    \n {components}\n
    \n );\n };\n\n const kudosAndCommentsIconButtons = () => {\n return (\n <>\n {/* Kudos thumb icon button */}\n onClickKudo('kudo')\n : () =>\n dispatch({\n type: OPEN_MODAL_KUDOS_TAB,\n payload: {\n element: 'kudo_icon',\n selectedEntityId: entityId\n }\n })\n }\n data-testid=\"kudos_button\"\n >\n {canKudoStatus || ownedByCurrentAthlete ? (\n \n ) : (\n \n )}\n\n {/* Comments icon button */}\n \n {commentsEnabled && (\n \n \n \n )}\n \n );\n };\n\n const mentionableCommentsForm = () => (\n \n
    \n \n
    \n
    \n );\n\n // eg scenario. for activity cards, we should show hairline (divider) when there is no map,\n // no images or the visibility text is being displayed\n const containerClassNames = () => {\n const classNames = [styles.kudosAndComments];\n if (showHairlineOnTop) {\n classNames.push(styles.hairline);\n }\n return classNames.join(' ');\n };\n\n return (\n <>\n \n \n {highlightedKudosers.length > 0 && showHighlightedKudoers()}\n {kudosAndCommentsCtaText()}\n \n {kudosAndCommentsIconButtons()}\n \n {comments.length > 0 && commentsEnabled && (\n \n \n dispatch({\n type: OPEN_MODAL_COMMENTS_TAB,\n payload: {\n element: 'see_more_comments',\n selectedEntityId: entityId\n }\n })\n }\n entityId={entityId}\n showCommentReactions={reactionsEnabled}\n iconExperimentCohort={iconExperimentCohort}\n />\n \n )}\n\n {showForm && mentionableCommentsForm()}\n {(entityState.openKudosCommentModal ||\n entityState.isViewingCommentReactionsList) &&\n entityState.selectedEntityId === entityId && (\n \n )}\n \n );\n};\n\nKudosAndComments.propTypes = {\n kudosAndComments: kudosAndCommentsProps.isRequired,\n entity: entitiesWithKudosAndComments.isRequired,\n entityId: PropTypes.string.isRequired,\n ownedByCurrentAthlete: PropTypes.bool.isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n entityOwner: entityOwnerProps.isRequired,\n entityTitle: PropTypes.string.isRequired,\n segAndBestEffortAchievements: segAndBestEffortAchievementsProps,\n // (openCommentsModalOnIconClick) controls whether the kudos and comments modal is opened\n // directly by the social action buttons. This is used by group activities for example\n openCommentsModalOnIconClick: PropTypes.bool.isRequired,\n showHairlineOnTop: PropTypes.bool,\n reactionsEnabled: PropTypes.bool.isRequired,\n iconExperimentCohort: PropTypes.string\n};\n\nKudosAndComments.defaultProps = {\n segAndBestEffortAchievements: [],\n showHairlineOnTop: false,\n iconExperimentCohort: null\n};\n\nexport default KudosAndComments;\n","export { default } from './KudosAndComments';\n","import { devLog } from 'utils/dev-utils';\nimport {\n OPEN_MODAL_KUDOS_TAB,\n OPEN_MODAL_COMMENTS_TAB,\n OPEN_MODAL_ACHIEVEMENTS_TAB,\n OPEN_MODAL_OTHER_ATHLETES_TAB,\n CLOSE_MODAL,\n ADD_KUDO,\n DELETE_COMMENT_CANCEL,\n DELETE_COMMENT_COMPLETE,\n DELETE_COMMENT_START,\n ADD_COMMENT_REACTION,\n ADD_COMMENT_START,\n ADD_COMMENT_COMPLETE,\n ADD_COMMENT_FAILED,\n SET_AUTOPLAY_VIDEO,\n SET_AUTOPLAY_VIDEO_IN_VIEW,\n OPEN_COMMENT_REACTION_LIST,\n CLOSE_COMMENT_REACTION_LIST\n} from './feed-entity-actions';\n\nexport function init({\n entity,\n parentEntityId,\n entityId,\n openKudosCommentModal,\n selectedTabIndex,\n kudoPosted,\n newComment,\n openCommentDeleteDialog,\n trackAnalytics,\n comments,\n isAutoplayEnabled,\n isViewingCommentReactionsList\n}) {\n return {\n entity,\n parentEntityId,\n entityId,\n openKudosCommentModal,\n selectedTabIndex,\n kudoPosted,\n newComment,\n openCommentDeleteDialog,\n trackAnalytics,\n comments,\n isAutoplayEnabled,\n isViewingCommentReactionsList\n };\n}\n\nexport function reducer(state, action) {\n devLog(`[feed-entity-reducer] action: ${action.type}`);\n switch (action.type) {\n case OPEN_MODAL_KUDOS_TAB: {\n const { element, selectedEntityId } = action.payload;\n state.trackAnalytics({\n action: 'click',\n element\n });\n return {\n ...state,\n openKudosCommentModal: true,\n selectedTabIndex: 0,\n selectedEntityId\n };\n }\n case OPEN_MODAL_COMMENTS_TAB: {\n const { element, selectedEntityId } = action.payload;\n state.trackAnalytics({\n action: 'click',\n element\n });\n return {\n ...state,\n openKudosCommentModal: true,\n selectedTabIndex: 1,\n selectedEntityId\n };\n }\n case OPEN_MODAL_ACHIEVEMENTS_TAB: {\n const { element, selectedEntityId } = action.payload;\n state.trackAnalytics({\n action: 'click',\n element\n });\n return {\n ...state,\n openKudosCommentModal: true,\n selectedTabIndex: 2,\n selectedEntityId\n };\n }\n case OPEN_MODAL_OTHER_ATHLETES_TAB: {\n const { element, selectedEntityId } = action.payload;\n state.trackAnalytics({\n action: 'click',\n element\n });\n return {\n ...state,\n openKudosCommentModal: true,\n selectedTabIndex: 3,\n selectedEntityId\n };\n }\n case CLOSE_MODAL:\n return {\n ...state,\n openKudosCommentModal: false,\n selectedTabIndex: 0,\n selectedEntityId: null\n };\n case ADD_KUDO:\n return { ...state, kudoPosted: true };\n case DELETE_COMMENT_START: {\n state.trackAnalytics({\n action: 'click',\n element: `delete-btn-on-${action.payload.element}`\n });\n const { entityId, comment } = action.payload;\n return {\n ...state,\n openCommentDeleteDialog: true,\n comment,\n entityId\n };\n }\n case DELETE_COMMENT_CANCEL:\n return {\n ...state,\n openCommentDeleteDialog: false,\n comment: {}\n };\n case DELETE_COMMENT_COMPLETE: {\n const { entityId, commentId } = action.payload;\n const entityComments = state.comments[entityId];\n return {\n ...state,\n openCommentDeleteDialog: false,\n comments: {\n ...state.comments,\n [entityId]: entityComments.filter(\n (comment) => comment.comment_id !== commentId\n )\n }\n };\n }\n case ADD_COMMENT_START: {\n return {\n ...state,\n isSubmittingComment: true\n };\n }\n case ADD_COMMENT_COMPLETE: {\n const { entityId, comment } = action.payload;\n const entityComments = state.comments[entityId];\n return {\n ...state,\n isSubmittingComment: false,\n comments: {\n ...state.comments,\n [entityId]: entityComments.concat(comment)\n }\n };\n }\n case ADD_COMMENT_FAILED:\n return {\n ...state,\n isSubmittingComment: false\n };\n case SET_AUTOPLAY_VIDEO: {\n const { autoPlayVideo } = action.payload;\n return { ...state, autoPlayVideo };\n }\n case SET_AUTOPLAY_VIDEO_IN_VIEW: {\n const { autoPlayVideoInView } = action.payload;\n return { ...state, autoPlayVideoInView };\n }\n case ADD_COMMENT_REACTION: {\n const { commentId, entityId, reactionCount } = action.payload;\n const entityComments = state.comments[entityId];\n\n return {\n ...state,\n commentReactionPosted: true,\n comments: {\n ...state.comments,\n [entityId]: entityComments.map((comment) => {\n if (comment.comment_id === commentId) {\n return {\n ...comment,\n reactions_summary: {\n ...comment.reactions_summary,\n has_reacted: true,\n reaction_count: reactionCount + 1\n }\n };\n }\n return comment;\n })\n }\n };\n }\n case OPEN_COMMENT_REACTION_LIST: {\n const { commentId, selectedEntityId } = action.payload;\n return {\n ...state,\n isViewingCommentReactionsList: true,\n selectedComment: commentId,\n selectedEntityId\n };\n }\n case CLOSE_COMMENT_REACTION_LIST: {\n const { selectedEntityId } = action.payload;\n return {\n ...state,\n isViewingCommentReactionsList: false,\n selectedEntityId,\n selectedTabIndex: 1,\n openKudosCommentModal: true\n };\n }\n\n default:\n throw new Error(`${action.type} - not recognised`);\n }\n}\n\nexport default { init, reducer };\n","import React from 'react';\n\nimport Modal, { ModalBody, ModalActions } from '@strava/ui/Modal';\nimport Button from '@strava/ui/Button';\nimport createNetworkingClient from 'utils/networking-client';\nimport I18n from 'utils/I18n';\n\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport {\n DELETE_COMMENT_CANCEL,\n DELETE_COMMENT_COMPLETE\n} from '../../../state/feed-entity-actions';\n\nconst prefix = 'templates.comment_delete_dialog';\n\nconst CommentDeleteAlertDialog = () => {\n const { entityState, dispatch } = useFeedEntityContext();\n\n const close = () => dispatch({ type: DELETE_COMMENT_CANCEL });\n const deleteComment = () => {\n const { comment, entityId } = entityState;\n const commentId = comment.comment_id;\n createNetworkingClient()\n .delete('/feed/comment', {\n data: { id: commentId }\n })\n .then(() => {\n dispatch({\n type: DELETE_COMMENT_COMPLETE,\n payload: { entityId, commentId }\n });\n })\n .catch(() => {\n // TODO log error in monorepo\n });\n };\n\n return (\n <>\n \n {I18n.t(`${prefix}.are_you_sure`)}\n \n \n {I18n.t(`${prefix}.cancel`)}\n \n \n {I18n.t(`${prefix}.ok`)}\n \n \n \n \n );\n};\n\nexport default CommentDeleteAlertDialog;\n","export { default } from './CommentDeleteAlertDialog';\n","export const buildInitialState = (overrides) => ({\n entity: null,\n parentEntityId: null,\n entityId: null,\n openKudosCommentModal: false,\n selectedTabIndex: 0,\n kudoPosted: false,\n newComment: null,\n openCommentDeleteDialog: false,\n isAutoplayEnabled: true,\n isViewingCommentReactionsList: false,\n selectedComment: null,\n ...overrides\n});\n\nexport default { buildInitialState };\n","// extracted by mini-css-extract-plugin\nexport default {\"icon-container\":\"HeaderWithOwnerMetadata--icon-container--cF2wg\",\"iconContainer\":\"HeaderWithOwnerMetadata--icon-container--cF2wg\",\"avatar\":\"HeaderWithOwnerMetadata--avatar--qRfTK\",\"group-activity-avatar\":\"HeaderWithOwnerMetadata--group-activity-avatar--J2tbK\",\"groupActivityAvatar\":\"HeaderWithOwnerMetadata--group-activity-avatar--J2tbK\"};","// extracted by mini-css-extract-plugin\nexport default {\"subtitle-wrapper\":\"LocationAndTime--subtitle-wrapper--6yH0n\",\"subtitleWrapper\":\"LocationAndTime--subtitle-wrapper--6yH0n\",\"location\":\"LocationAndTime--location--Djc4K\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './index.scss';\n\n// date can be displayed as [November 21, 2020 at 6:58 AM] or [November 21, 2020]\nconst showDate = (timestampFormat, displayDateAtTime, displayDate) => {\n if (timestampFormat === 'date_at_time') {\n return ;\n }\n return ;\n};\n\nconst showLocation = (location) =>\n location ? (\n
    \n  \n {`· ${location}`}\n
    \n ) : (\n ''\n );\n\nconst Subtitle = ({\n timestampFormat,\n displayDateAtTime,\n displayDate,\n location\n}) => (\n \n {showDate(timestampFormat, displayDateAtTime, displayDate)}\n {showLocation(location)}\n \n);\n\nSubtitle.propTypes = {\n timestampFormat: PropTypes.string,\n displayDateAtTime: PropTypes.string.isRequired,\n displayDate: PropTypes.string.isRequired,\n location: PropTypes.string\n};\n\nSubtitle.defaultProps = {\n timestampFormat: 'date',\n location: null\n};\n\nexport default Subtitle;\n","export { default } from './LocationAndTime';\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"SocialShareDropdownActions--card--ZtJiQ\",\"card-image-top\":\"SocialShareDropdownActions--card-image-top--USGBW\",\"cardImageTop\":\"SocialShareDropdownActions--card-image-top--USGBW\",\"card-block\":\"SocialShareDropdownActions--card-block--2QhRl\",\"cardBlock\":\"SocialShareDropdownActions--card-block--2QhRl\",\"card-header\":\"SocialShareDropdownActions--card-header--42q7L\",\"cardHeader\":\"SocialShareDropdownActions--card-header--42q7L\",\"card-body\":\"SocialShareDropdownActions--card-body--FMeRI\",\"cardBody\":\"SocialShareDropdownActions--card-body--FMeRI\",\"card-footer\":\"SocialShareDropdownActions--card-footer--qKSZG\",\"cardFooter\":\"SocialShareDropdownActions--card-footer--qKSZG\",\"card-icon\":\"SocialShareDropdownActions--card-icon--RFtAr\",\"cardIcon\":\"SocialShareDropdownActions--card-icon--RFtAr\",\"app-icon-wrapper\":\"SocialShareDropdownActions--app-icon-wrapper--3T+Au\",\"appIconWrapper\":\"SocialShareDropdownActions--app-icon-wrapper--3T+Au\",\"media\":\"SocialShareDropdownActions--media--LRAiQ\",\"media-content\":\"SocialShareDropdownActions--media-content--HTBL4\",\"mediaContent\":\"SocialShareDropdownActions--media-content--HTBL4\",\"media-body\":\"SocialShareDropdownActions--media-body--8Gm6g\",\"mediaBody\":\"SocialShareDropdownActions--media-body--8Gm6g\",\"media-object\":\"SocialShareDropdownActions--media-object--1Saoq\",\"mediaObject\":\"SocialShareDropdownActions--media-object--1Saoq\",\"media-left\":\"SocialShareDropdownActions--media-left--xJuUz\",\"mediaLeft\":\"SocialShareDropdownActions--media-left--xJuUz\",\"media-object-left\":\"SocialShareDropdownActions--media-object-left--nwRuN\",\"mediaObjectLeft\":\"SocialShareDropdownActions--media-object-left--nwRuN\",\"media-object-right\":\"SocialShareDropdownActions--media-object-right--o9hrk\",\"mediaObjectRight\":\"SocialShareDropdownActions--media-object-right--o9hrk\",\"media-right\":\"SocialShareDropdownActions--media-right--J3-xt\",\"mediaRight\":\"SocialShareDropdownActions--media-right--J3-xt\",\"media-actions\":\"SocialShareDropdownActions--media-actions--WyQBP\",\"mediaActions\":\"SocialShareDropdownActions--media-actions--WyQBP\",\"media-center\":\"SocialShareDropdownActions--media-center--PgZ+7\",\"mediaCenter\":\"SocialShareDropdownActions--media-center--PgZ+7\",\"media-middle\":\"SocialShareDropdownActions--media-middle--n5Zp3\",\"mediaMiddle\":\"SocialShareDropdownActions--media-middle--n5Zp3\",\"media-bottom\":\"SocialShareDropdownActions--media-bottom--CGE78\",\"mediaBottom\":\"SocialShareDropdownActions--media-bottom--CGE78\",\"list-media\":\"SocialShareDropdownActions--list-media--sE53Q\",\"listMedia\":\"SocialShareDropdownActions--list-media--sE53Q\",\"comments\":\"SocialShareDropdownActions--comments--vfMso\",\"comment\":\"SocialShareDropdownActions--comment--rU3qq\",\"thread\":\"SocialShareDropdownActions--thread--Uy3om\",\"feed-pagination\":\"SocialShareDropdownActions--feed-pagination--TCE6V\",\"feedPagination\":\"SocialShareDropdownActions--feed-pagination--TCE6V\",\"spinner\":\"SocialShareDropdownActions--spinner--U7pXP\",\"no-entries\":\"SocialShareDropdownActions--no-entries--gdSLD\",\"noEntries\":\"SocialShareDropdownActions--no-entries--gdSLD\",\"entry-container\":\"SocialShareDropdownActions--entry-container--cWCbP\",\"entryContainer\":\"SocialShareDropdownActions--entry-container--cWCbP\",\"feed-entry\":\"SocialShareDropdownActions--feed-entry--wC-TT\",\"feedEntry\":\"SocialShareDropdownActions--feed-entry--wC-TT\",\"entry-inset\":\"SocialShareDropdownActions--entry-inset--V9Et2\",\"entryInset\":\"SocialShareDropdownActions--entry-inset--V9Et2\",\"entry-header\":\"SocialShareDropdownActions--entry-header--NG2vY\",\"entryHeader\":\"SocialShareDropdownActions--entry-header--NG2vY\",\"entry-body\":\"SocialShareDropdownActions--entry-body--bMDq5\",\"entryBody\":\"SocialShareDropdownActions--entry-body--bMDq5\",\"entry-media\":\"SocialShareDropdownActions--entry-media--yCjHA\",\"entryMedia\":\"SocialShareDropdownActions--entry-media--yCjHA\",\"entry-footer\":\"SocialShareDropdownActions--entry-footer--7hfkc\",\"entryFooter\":\"SocialShareDropdownActions--entry-footer--7hfkc\",\"entry-block\":\"SocialShareDropdownActions--entry-block--hsha-\",\"entryBlock\":\"SocialShareDropdownActions--entry-block--hsha-\",\"avatar\":\"SocialShareDropdownActions--avatar--wdZvE\",\"avatar-img\":\"SocialShareDropdownActions--avatar-img--N4hBt\",\"avatarImg\":\"SocialShareDropdownActions--avatar-img--N4hBt\",\"card-margin\":\"SocialShareDropdownActions--card-margin--9dxnM\",\"cardMargin\":\"SocialShareDropdownActions--card-margin--9dxnM\",\"btn\":\"SocialShareDropdownActions--btn--+8EzT\",\"btn-link\":\"SocialShareDropdownActions--btn-link--tJg8d\",\"btnLink\":\"SocialShareDropdownActions--btn-link--tJg8d\",\"entry-actions\":\"SocialShareDropdownActions--entry-actions--svtk+\",\"entryActions\":\"SocialShareDropdownActions--entry-actions--svtk+\",\"dropdown\":\"SocialShareDropdownActions--dropdown--Q9Bt9\",\"active-dropdown\":\"SocialShareDropdownActions--active-dropdown--hZ29X\",\"activeDropdown\":\"SocialShareDropdownActions--active-dropdown--hZ29X\",\"dropdown-option\":\"SocialShareDropdownActions--dropdown-option--kWR79\",\"dropdownOption\":\"SocialShareDropdownActions--dropdown-option--kWR79\",\"fadeIn\":\"SocialShareDropdownActions--fadeIn--4Gx69\",\"newKudo\":\"SocialShareDropdownActions--newKudo--B6hmB\",\"enterFadeOut\":\"SocialShareDropdownActions--enterFadeOut--2wW7+\"};","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport I18n from 'utils/I18n';\nimport { Dropdown, DropdownItem, DropdownLink } from '@strava/ui/Dropdown';\nimport EmbedModal from '../../../../EmbedModal/EmbedModal';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\n\nimport styles from './styles.scss';\n\nconst EntryActions = ({\n activityId,\n shareable,\n twitterUrl,\n embedDropdownEnabled\n}) => {\n const [isEmbedModalOpen, setIsEmbedModalOpen] = useState(false);\n const { entityState } = useFeedEntityContext();\n\n const toggleEmbedModalOpen = (event) => {\n event.preventDefault();\n setIsEmbedModalOpen(!isEmbedModalOpen);\n };\n\n function facebookShareUrl() {\n const activityUrl = `https://www.strava.com/activities/${activityId}`;\n // Facebook will error if the URL is not publicly available (like with localhost)\n // In which case, you can test using a stubbed route like:\n // const pageUrl = 'https://www.strava.com/activitiy/22481075';\n return `https://www.facebook.com/sharer.php?u=${activityUrl}`;\n }\n\n function openShareWindow() {\n const left = (window.screen.width - 570) / 2;\n const top = (window.screen.height - 570) / 2;\n const params = `menubar=no,toolbar=no,status=no,width=570,height=570,top=${top},left=${left}`;\n // Setting 'params' to an empty string will launch\n // content in a new tab or window rather than a pop-up.\n // params = \"\";\n window.open(facebookShareUrl(), 'NewWindow', params);\n }\n\n return (\n
    \n {shareable && (\n
    \n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'share'\n });\n }}\n className={`${styles.dropdown}`}\n >\n \n Facebook\n \n \n Twitter\n \n {embedDropdownEnabled && (\n \n {I18n.t('templates.share.embed.get_code')}\n \n \n )}\n \n
    \n )}\n
    \n );\n};\n\nEntryActions.propTypes = {\n activityId: PropTypes.string.isRequired,\n shareable: PropTypes.bool.isRequired,\n twitterUrl: PropTypes.string.isRequired,\n embedDropdownEnabled: PropTypes.bool.isRequired\n};\n\nexport default EntryActions;\n","export { default } from './SocialShareDropdownActions';\n","// extracted by mini-css-extract-plugin\nexport default {\"entry-header\":\"EntryHeader--entry-header--lXRRn\",\"entryHeader\":\"EntryHeader--entry-header--lXRRn\",\"child-entry\":\"EntryHeader--child-entry--MGzPL\",\"childEntry\":\"EntryHeader--child-entry--MGzPL\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './entry-header.scss';\n\nconst EntryHeader = ({ children, child, className, ...options }) => {\n const classNames = [styles.entryHeader];\n if (className) {\n classNames.push(className);\n }\n if (child) {\n classNames.push(styles.childEntry);\n }\n\n return (\n
    \n {children}\n
    \n );\n};\n\nEntryHeader.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n child: PropTypes.bool\n};\n\nEntryHeader.defaultProps = {\n className: null,\n child: false\n};\n\nexport default EntryHeader;\n","export { default } from './EntryHeader';\n","// extracted by mini-css-extract-plugin\nexport default {\"media-left\":\"MediaLeft--media-left--EzQvk\",\"mediaLeft\":\"MediaLeft--media-left--EzQvk\",\"small-badge\":\"MediaLeft--small-badge--FtRCp\",\"smallBadge\":\"MediaLeft--small-badge--FtRCp\",\"big-badge\":\"MediaLeft--big-badge--32809\",\"bigBadge\":\"MediaLeft--big-badge--32809\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './media-left.scss';\n\nconst MediaLeft = ({ children, bigBadge, className, ...options }) => {\n const classNames = [styles.mediaLeft];\n if (className) {\n classNames.push(className);\n }\n\n if (bigBadge) {\n classNames.push(styles.bigBadge);\n } else {\n classNames.push(styles.smallBadge);\n }\n\n return (\n
    \n {children}\n
    \n );\n};\n\nMediaLeft.propTypes = {\n children: PropTypes.node.isRequired,\n bigBadge: PropTypes.bool,\n className: PropTypes.string\n};\n\nMediaLeft.defaultProps = {\n className: null,\n bigBadge: false\n};\n\nexport default MediaLeft;\n","export { default } from './MediaLeft';\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Avatar from '@strava/ui/Avatar';\n\nimport ActionsStarHighlightedXsmall from '@strava/icons/ActionsStarHighlightedXsmall';\nimport styles from './index.scss';\nimport LocationAndTime from '../LocationAndTime';\nimport SocialShareDropdownActions from '../SocialShareDropdownActions';\nimport {\n timeAndLocationProps,\n entityOwnerProps\n} from '../../../props/feed-prop-types';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\n\nimport EntryHeader from '../../shared/media/EntryHeader';\nimport Media from '../../shared/media/Media';\nimport MediaLeft from '../../shared/media/MediaLeft';\nimport MediaBody from '../../shared/media/MediaBody';\nimport MediaActions from '../../shared/media/MediaActions';\n\nconst HeaderWithOwnerMetadata = ({\n timeAndLocation,\n entityOwner,\n shareable,\n entityId,\n twitterUrl,\n isBoosted,\n entity,\n embedDropdownEnabled\n}) => {\n const { entityState } = useFeedEntityContext();\n\n const { displayImage, name, memberType, profileUrl, type } = entityOwner;\n return (\n \n \n \n
    \n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'profile_picture',\n properties: { element_source: 'title' }\n });\n }}\n />\n
    \n
    \n \n \n entityState.trackAnalytics({\n action: 'click',\n element: 'owner_name'\n })\n }\n >\n {name}\n \n {timeAndLocation && (\n \n )}\n \n \n {shareable && (\n \n )}\n {isBoosted === true && (\n
    \n \n
    \n )}\n
    \n
    \n
    \n );\n};\n\nHeaderWithOwnerMetadata.propTypes = {\n timeAndLocation: timeAndLocationProps, // not included in group activity athlete entries\n entityOwner: entityOwnerProps.isRequired,\n entityId: PropTypes.string.isRequired,\n shareable: PropTypes.bool.isRequired,\n twitterUrl: PropTypes.string,\n isBoosted: PropTypes.bool.isRequired,\n entity: PropTypes.string,\n embedDropdownEnabled: PropTypes.bool.isRequired\n};\n\nHeaderWithOwnerMetadata.defaultProps = {\n twitterUrl: '',\n timeAndLocation: null,\n entity: ''\n};\n\nexport default HeaderWithOwnerMetadata;\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"VisibilityMessage--card--+eXlj\",\"card-image-top\":\"VisibilityMessage--card-image-top--6Mfpt\",\"cardImageTop\":\"VisibilityMessage--card-image-top--6Mfpt\",\"card-block\":\"VisibilityMessage--card-block--K42Hx\",\"cardBlock\":\"VisibilityMessage--card-block--K42Hx\",\"card-header\":\"VisibilityMessage--card-header--injSF\",\"cardHeader\":\"VisibilityMessage--card-header--injSF\",\"card-body\":\"VisibilityMessage--card-body---tzZc\",\"cardBody\":\"VisibilityMessage--card-body---tzZc\",\"card-footer\":\"VisibilityMessage--card-footer--TyHAN\",\"cardFooter\":\"VisibilityMessage--card-footer--TyHAN\",\"card-icon\":\"VisibilityMessage--card-icon--u1lw9\",\"cardIcon\":\"VisibilityMessage--card-icon--u1lw9\",\"app-icon-wrapper\":\"VisibilityMessage--app-icon-wrapper--8QjPO\",\"appIconWrapper\":\"VisibilityMessage--app-icon-wrapper--8QjPO\",\"media\":\"VisibilityMessage--media--yJovY\",\"media-content\":\"VisibilityMessage--media-content--RaAKk\",\"mediaContent\":\"VisibilityMessage--media-content--RaAKk\",\"media-body\":\"VisibilityMessage--media-body--Nvf5C\",\"mediaBody\":\"VisibilityMessage--media-body--Nvf5C\",\"media-object\":\"VisibilityMessage--media-object--RPeRl\",\"mediaObject\":\"VisibilityMessage--media-object--RPeRl\",\"media-left\":\"VisibilityMessage--media-left--FA-Z2\",\"mediaLeft\":\"VisibilityMessage--media-left--FA-Z2\",\"media-object-left\":\"VisibilityMessage--media-object-left---QTpE\",\"mediaObjectLeft\":\"VisibilityMessage--media-object-left---QTpE\",\"media-object-right\":\"VisibilityMessage--media-object-right--Y61sf\",\"mediaObjectRight\":\"VisibilityMessage--media-object-right--Y61sf\",\"media-right\":\"VisibilityMessage--media-right--FToAJ\",\"mediaRight\":\"VisibilityMessage--media-right--FToAJ\",\"media-actions\":\"VisibilityMessage--media-actions--PQoz8\",\"mediaActions\":\"VisibilityMessage--media-actions--PQoz8\",\"media-center\":\"VisibilityMessage--media-center--D8FTP\",\"mediaCenter\":\"VisibilityMessage--media-center--D8FTP\",\"media-middle\":\"VisibilityMessage--media-middle--+TqrE\",\"mediaMiddle\":\"VisibilityMessage--media-middle--+TqrE\",\"media-bottom\":\"VisibilityMessage--media-bottom--WybOb\",\"mediaBottom\":\"VisibilityMessage--media-bottom--WybOb\",\"list-media\":\"VisibilityMessage--list-media--kxFmF\",\"listMedia\":\"VisibilityMessage--list-media--kxFmF\",\"comments\":\"VisibilityMessage--comments--L8snw\",\"comment\":\"VisibilityMessage--comment--7PjBu\",\"thread\":\"VisibilityMessage--thread--Z-FSq\",\"feed-pagination\":\"VisibilityMessage--feed-pagination--tzXTJ\",\"feedPagination\":\"VisibilityMessage--feed-pagination--tzXTJ\",\"spinner\":\"VisibilityMessage--spinner--popYm\",\"no-entries\":\"VisibilityMessage--no-entries--myn0+\",\"noEntries\":\"VisibilityMessage--no-entries--myn0+\",\"entry-container\":\"VisibilityMessage--entry-container--2UEp9\",\"entryContainer\":\"VisibilityMessage--entry-container--2UEp9\",\"feed-entry\":\"VisibilityMessage--feed-entry--MV5hz\",\"feedEntry\":\"VisibilityMessage--feed-entry--MV5hz\",\"entry-inset\":\"VisibilityMessage--entry-inset--Th2rl\",\"entryInset\":\"VisibilityMessage--entry-inset--Th2rl\",\"entry-header\":\"VisibilityMessage--entry-header--kc-FQ\",\"entryHeader\":\"VisibilityMessage--entry-header--kc-FQ\",\"entry-body\":\"VisibilityMessage--entry-body--9NSEx\",\"entryBody\":\"VisibilityMessage--entry-body--9NSEx\",\"entry-media\":\"VisibilityMessage--entry-media--hgO+L\",\"entryMedia\":\"VisibilityMessage--entry-media--hgO+L\",\"entry-footer\":\"VisibilityMessage--entry-footer--LYhqq\",\"entryFooter\":\"VisibilityMessage--entry-footer--LYhqq\",\"entry-block\":\"VisibilityMessage--entry-block--8oQq0\",\"entryBlock\":\"VisibilityMessage--entry-block--8oQq0\",\"avatar\":\"VisibilityMessage--avatar--MhWwl\",\"avatar-img\":\"VisibilityMessage--avatar-img--jn2jz\",\"avatarImg\":\"VisibilityMessage--avatar-img--jn2jz\",\"card-margin\":\"VisibilityMessage--card-margin--sgnhy\",\"cardMargin\":\"VisibilityMessage--card-margin--sgnhy\",\"btn\":\"VisibilityMessage--btn--yTNgQ\",\"btn-link\":\"VisibilityMessage--btn-link---PSMi\",\"btnLink\":\"VisibilityMessage--btn-link---PSMi\",\"icon-wrapper\":\"VisibilityMessage--icon-wrapper--sTObz\",\"iconWrapper\":\"VisibilityMessage--icon-wrapper--sTObz\",\"visibility-section\":\"VisibilityMessage--visibility-section--02CD9\",\"visibilitySection\":\"VisibilityMessage--visibility-section--02CD9\",\"visibility-icon\":\"VisibilityMessage--visibility-icon--MW9SB\",\"visibilityIcon\":\"VisibilityMessage--visibility-icon--MW9SB\",\"fadeIn\":\"VisibilityMessage--fadeIn--Y+DFX\",\"newKudo\":\"VisibilityMessage--newKudo--oAECk\",\"enterFadeOut\":\"VisibilityMessage--enterFadeOut--sLsQO\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport SvgActionsLockClosedNormalXsmall from '@strava/icons/ActionsLockClosedNormalXsmall';\nimport SvgNavigationGroupNormalXsmall from '@strava/icons/NavigationGroupNormalXsmall';\nimport styles from './index.scss';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport useFeedAnalytics from '../../../hooks/useFeedAnalytics';\nimport useFeedIntersectionObserver from '../../../hooks/useFeedIntersectionObserver';\n\nconst VisibilityMessage = ({ visibility }) => {\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n isParentFeedEntry: false\n });\n\n const { analyticProps } = useFeedEntityContext();\n useFeedAnalytics({\n ...analyticProps,\n element: 'privacy_banner',\n inView\n });\n\n let icon;\n let message;\n if (visibility === 'only_me') {\n icon = (\n \n \n \n );\n message = (\n \n {I18n.t('components.feed.module.private_activity_not_visible_html')}\n \n );\n } else {\n icon = (\n \n \n \n );\n message = (\n \n {I18n.t('components.feed.module.followers_activity_not_visible_html')}\n \n );\n }\n return (\n \n
    \n
    {icon}
    \n
    \n {message}\n \n );\n};\n\nVisibilityMessage.propTypes = {\n visibility: PropTypes.string.isRequired\n};\n\nexport default VisibilityMessage;\n","export { default } from './VisibilityMessage';\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"HiddenStatIndicator--card--KesCj\",\"card-image-top\":\"HiddenStatIndicator--card-image-top--gRkGU\",\"cardImageTop\":\"HiddenStatIndicator--card-image-top--gRkGU\",\"card-block\":\"HiddenStatIndicator--card-block--yVtz0\",\"cardBlock\":\"HiddenStatIndicator--card-block--yVtz0\",\"card-header\":\"HiddenStatIndicator--card-header--Fp9KT\",\"cardHeader\":\"HiddenStatIndicator--card-header--Fp9KT\",\"card-body\":\"HiddenStatIndicator--card-body--uayga\",\"cardBody\":\"HiddenStatIndicator--card-body--uayga\",\"card-footer\":\"HiddenStatIndicator--card-footer--IWU2g\",\"cardFooter\":\"HiddenStatIndicator--card-footer--IWU2g\",\"card-icon\":\"HiddenStatIndicator--card-icon--Q2NgI\",\"cardIcon\":\"HiddenStatIndicator--card-icon--Q2NgI\",\"app-icon-wrapper\":\"HiddenStatIndicator--app-icon-wrapper--J10L7\",\"appIconWrapper\":\"HiddenStatIndicator--app-icon-wrapper--J10L7\",\"media\":\"HiddenStatIndicator--media--FS3JV\",\"media-content\":\"HiddenStatIndicator--media-content--knMuC\",\"mediaContent\":\"HiddenStatIndicator--media-content--knMuC\",\"media-body\":\"HiddenStatIndicator--media-body--b9s0v\",\"mediaBody\":\"HiddenStatIndicator--media-body--b9s0v\",\"media-object\":\"HiddenStatIndicator--media-object--pOq4p\",\"mediaObject\":\"HiddenStatIndicator--media-object--pOq4p\",\"media-left\":\"HiddenStatIndicator--media-left--Ibiza\",\"mediaLeft\":\"HiddenStatIndicator--media-left--Ibiza\",\"media-object-left\":\"HiddenStatIndicator--media-object-left--CEwmB\",\"mediaObjectLeft\":\"HiddenStatIndicator--media-object-left--CEwmB\",\"media-object-right\":\"HiddenStatIndicator--media-object-right--ThZbu\",\"mediaObjectRight\":\"HiddenStatIndicator--media-object-right--ThZbu\",\"media-right\":\"HiddenStatIndicator--media-right--g8QfM\",\"mediaRight\":\"HiddenStatIndicator--media-right--g8QfM\",\"media-actions\":\"HiddenStatIndicator--media-actions--pYGFd\",\"mediaActions\":\"HiddenStatIndicator--media-actions--pYGFd\",\"media-center\":\"HiddenStatIndicator--media-center--GxpVT\",\"mediaCenter\":\"HiddenStatIndicator--media-center--GxpVT\",\"media-middle\":\"HiddenStatIndicator--media-middle--PnY-Z\",\"mediaMiddle\":\"HiddenStatIndicator--media-middle--PnY-Z\",\"media-bottom\":\"HiddenStatIndicator--media-bottom--Z5b3z\",\"mediaBottom\":\"HiddenStatIndicator--media-bottom--Z5b3z\",\"list-media\":\"HiddenStatIndicator--list-media--Dw33K\",\"listMedia\":\"HiddenStatIndicator--list-media--Dw33K\",\"comments\":\"HiddenStatIndicator--comments--KNo+H\",\"comment\":\"HiddenStatIndicator--comment--dtp8B\",\"thread\":\"HiddenStatIndicator--thread--HG4yk\",\"feed-pagination\":\"HiddenStatIndicator--feed-pagination--5faNU\",\"feedPagination\":\"HiddenStatIndicator--feed-pagination--5faNU\",\"spinner\":\"HiddenStatIndicator--spinner--uLpMl\",\"no-entries\":\"HiddenStatIndicator--no-entries--88gmI\",\"noEntries\":\"HiddenStatIndicator--no-entries--88gmI\",\"entry-container\":\"HiddenStatIndicator--entry-container--fOLt-\",\"entryContainer\":\"HiddenStatIndicator--entry-container--fOLt-\",\"feed-entry\":\"HiddenStatIndicator--feed-entry--lHi7a\",\"feedEntry\":\"HiddenStatIndicator--feed-entry--lHi7a\",\"entry-inset\":\"HiddenStatIndicator--entry-inset--9-LtS\",\"entryInset\":\"HiddenStatIndicator--entry-inset--9-LtS\",\"entry-header\":\"HiddenStatIndicator--entry-header--NrRdY\",\"entryHeader\":\"HiddenStatIndicator--entry-header--NrRdY\",\"entry-body\":\"HiddenStatIndicator--entry-body--WunhJ\",\"entryBody\":\"HiddenStatIndicator--entry-body--WunhJ\",\"entry-media\":\"HiddenStatIndicator--entry-media--2HuGd\",\"entryMedia\":\"HiddenStatIndicator--entry-media--2HuGd\",\"entry-footer\":\"HiddenStatIndicator--entry-footer--NrCi1\",\"entryFooter\":\"HiddenStatIndicator--entry-footer--NrCi1\",\"entry-block\":\"HiddenStatIndicator--entry-block--MW4Tp\",\"entryBlock\":\"HiddenStatIndicator--entry-block--MW4Tp\",\"avatar\":\"HiddenStatIndicator--avatar--oVs51\",\"avatar-img\":\"HiddenStatIndicator--avatar-img--FJFlg\",\"avatarImg\":\"HiddenStatIndicator--avatar-img--FJFlg\",\"card-margin\":\"HiddenStatIndicator--card-margin--u+Ye+\",\"cardMargin\":\"HiddenStatIndicator--card-margin--u+Ye+\",\"btn\":\"HiddenStatIndicator--btn--IW236\",\"btn-link\":\"HiddenStatIndicator--btn-link--iW+ja\",\"btnLink\":\"HiddenStatIndicator--btn-link--iW+ja\",\"icon-wrapper\":\"HiddenStatIndicator--icon-wrapper--TG-tH\",\"iconWrapper\":\"HiddenStatIndicator--icon-wrapper--TG-tH\",\"visibility-section\":\"HiddenStatIndicator--visibility-section--B782s\",\"visibilitySection\":\"HiddenStatIndicator--visibility-section--B782s\",\"stat-indicator-section\":\"HiddenStatIndicator--stat-indicator-section--MdT34\",\"statIndicatorSection\":\"HiddenStatIndicator--stat-indicator-section--MdT34\",\"visibility-icon\":\"HiddenStatIndicator--visibility-icon--d65up\",\"visibilityIcon\":\"HiddenStatIndicator--visibility-icon--d65up\",\"stat-indicator-icon\":\"HiddenStatIndicator--stat-indicator-icon--Oswf9\",\"statIndicatorIcon\":\"HiddenStatIndicator--stat-indicator-icon--Oswf9\",\"fadeIn\":\"HiddenStatIndicator--fadeIn--EcpmC\",\"newKudo\":\"HiddenStatIndicator--newKudo--SSQ5g\",\"enterFadeOut\":\"HiddenStatIndicator--enterFadeOut--lynLX\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport SvgActionsLockClosedNormalXsmall from '@strava/icons/ActionsLockClosedNormalXsmall';\nimport styles from './index.scss';\n\nconst HiddenStatIndicator = ({\n hiddenStatIndicatorString,\n showVisibilityMessage\n}) => {\n const sectionStyle = showVisibilityMessage\n ? styles.statIndicatorSection\n : styles.visibilitySection;\n const iconStyle = showVisibilityMessage\n ? styles.statIndicatorIcon\n : styles.visibilityIcon;\n\n return (\n
    \n
    \n
    \n \n \n \n
    \n
    \n \n {hiddenStatIndicatorString}\n \n
    \n );\n};\n\nHiddenStatIndicator.propTypes = {\n hiddenStatIndicatorString: PropTypes.string.isRequired,\n showVisibilityMessage: PropTypes.bool.isRequired\n};\n\nexport default HiddenStatIndicator;\n","export { default } from './HiddenStatIndicator';\n","// extracted by mini-css-extract-plugin\nexport default {\"feed-entry\":\"Card--feed-entry--eeHS5\",\"feedEntry\":\"Card--feed-entry--eeHS5\",\"card\":\"Card--card--8qT2W\",\"btn\":\"Card--btn--Uyv9E\",\"btn-link\":\"Card--btn-link--IyxTc\",\"btnLink\":\"Card--btn-link--IyxTc\"};","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './card.scss';\nimport { cursorDataProps } from '../../../../props/feed-prop-types';\n\nconst Card = forwardRef(\n ({ cursorData, children, className, ...options }, ref) => {\n const classNames = () => {\n const a = [styles.feedEntry, styles.card, className];\n return a;\n };\n\n return (\n \n {children}\n \n );\n }\n);\n\nCard.propTypes = {\n children: PropTypes.node.isRequired,\n cursorData: cursorDataProps.isRequired,\n className: PropTypes.string\n};\n\nCard.defaultProps = {\n className: null\n};\n\nexport default Card;\n","export { default } from './Card';\n","// extracted by mini-css-extract-plugin\nexport default {\"entry-body\":\"EntryBody--entry-body--taihW\",\"entryBody\":\"EntryBody--entry-body--taihW\",\"impression\":\"EntryBody--impression--iPn2c\",\"entry-inset\":\"EntryBody--entry-inset--SDU+i\",\"entryInset\":\"EntryBody--entry-inset--SDU+i\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './entry-body.scss';\n\nconst EntryBody = ({ children, className, inset, impression, ...options }) => {\n const classNames = [styles.entryBody];\n if (className) {\n classNames.push(className);\n }\n if (inset) {\n classNames.push(styles.entryInset);\n }\n\n return (\n
    \n {/* Impression */}\n {impression && (\n \"\"\n )}\n {children}\n
    \n );\n};\n\nEntryBody.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n impression: PropTypes.string,\n inset: PropTypes.bool\n};\n\nEntryBody.defaultProps = {\n className: null,\n inset: false,\n impression: null\n};\n\nexport default EntryBody;\n","export { default } from './EntryBody.js';\n","// extracted by mini-css-extract-plugin\nexport default {\"entry-media\":\"EntryMedia--entry-media--iuGqt\",\"entryMedia\":\"EntryMedia--entry-media--iuGqt\",\"entry-inset\":\"EntryMedia--entry-inset--HqwRV\",\"entryInset\":\"EntryMedia--entry-inset--HqwRV\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './entry-media.scss';\n\nconst EntryMedia = ({ children, className, inset, ...options }) => {\n const classNames = [styles.entryMedia];\n if (className) {\n classNames.push(className);\n }\n if (inset) {\n classNames.push(styles.entryInset);\n }\n\n return (\n
    \n {children}\n
    \n );\n};\n\nEntryMedia.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n inset: PropTypes.bool\n};\n\nEntryMedia.defaultProps = {\n className: null,\n inset: false\n};\n\nexport default EntryMedia;\n","export { default } from './EntryMedia';\n","// extracted by mini-css-extract-plugin\nexport default {\"entry-footer\":\"EntryFooter--entry-footer--Gy+uP\",\"entryFooter\":\"EntryFooter--entry-footer--Gy+uP\",\"entry-inset\":\"EntryFooter--entry-inset--mB6FB\",\"entryInset\":\"EntryFooter--entry-inset--mB6FB\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './entry-footer.scss';\n\nconst EntryFooter = ({ children, className, inset, ...options }) => {\n const classNames = [styles.entryFooter];\n if (inset) {\n classNames.push(styles.entryInset);\n }\n if (className) {\n classNames.push(className);\n }\n\n return (\n
    \n {children}\n
    \n );\n};\n\nEntryFooter.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n inset: PropTypes.bool\n};\n\nEntryFooter.defaultProps = {\n className: null,\n inset: false\n};\n\nexport default EntryFooter;\n","export { default } from './EntryFooter';\n","import React, { useCallback, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport { isEmpty, snakeCase } from 'lodash-es';\nimport { useInView } from 'react-intersection-observer';\n\nimport ActivityIcon from 'components/ActivityIcon';\nimport I18n from 'utils/I18n';\nimport styles from './styles.scss';\nimport ActivityEntryBody from '../shared/ActivityEntryBody';\nimport MapVisPrompt from '../shared/MapVisPrompt';\nimport MaharajAchievementCelebration from '../shared/MaharajAchievementCelebration';\nimport PhotosAndMapImage from '../shared/PhotosAndMapImage';\nimport useFeedAnalytics from '../../hooks/useFeedAnalytics';\nimport useFeedIntersectionObserver from '../../hooks/useFeedIntersectionObserver';\nimport KudosAndComments from '../shared/KudosAndComments';\nimport {\n segAndBestEffortAchievementsProps,\n cumulativeGoalAchievementProps,\n kudosAndCommentsProps,\n feedTypeProps,\n mapProps,\n pageProps,\n photoListProps,\n powerAndSegmentGoalAchievementsProps,\n statsProps,\n viewingAthleteProps,\n cursorDataProps,\n indexProps,\n entityAthleteProps,\n timeAndLocationProps\n} from '../../props/feed-prop-types';\nimport FeedEntityContext from '../../state/FeedEntityContext';\nimport { init, reducer } from '../../state/feed-entity-reducer';\nimport { SET_AUTOPLAY_VIDEO_IN_VIEW } from '../../state/feed-entity-actions';\nimport CommentDeleteAlertDialog from '../shared/CommentDeleteAlertDialog';\nimport { buildInitialState } from '../../state/feed-entity-init-state';\nimport HeaderWithOwnerMetadata from '../shared/HeaderWithOwnerMetadata/HeaderWithOwnerMetadata';\nimport VisibilityMessage from '../shared/VisibilityMessage';\nimport HiddenStatIndicator from '../shared/HiddenStatIndicator';\nimport Card from '../shared/media/Card';\nimport EntryBody from '../shared/media/EntryBody';\nimport Media from '../shared/media/Media';\nimport MediaLeft from '../shared/media/MediaLeft';\nimport MediaBody from '../shared/media/MediaBody';\nimport EntryMedia from '../shared/media/EntryMedia';\nimport EntryFooter from '../shared/media/EntryFooter';\n\nconst Activity = ({\n index,\n entity,\n activity,\n cursorData,\n page,\n feedType,\n viewingAthlete,\n clubId,\n athleteProfileId,\n reactionsEnabled,\n iconExperimentCohort,\n isAutoplayEnabled\n}) => {\n const {\n avatarUrl,\n athleteName,\n athleteId,\n memberType,\n firstName\n } = activity.athlete;\n\n const {\n activityName,\n id: activityId,\n flagged,\n ownedByCurrentAthlete,\n segAndBestEffortAchievements,\n powerAndSegmentGoalAchievements,\n cumulativeGoalAchievement,\n type: sportType,\n stats,\n description,\n descriptionMentionedAthleteIds,\n mapVisPrompt,\n maharajAchievement,\n isVirtual,\n isCommute,\n workoutType,\n privacyTagKey,\n shareable,\n twitterUrl,\n isBoosted,\n visibility,\n hiddenStatIndicatorString,\n mapAndPhotos,\n embedDropdownEnabled\n } = activity;\n\n const analyticProps = {\n page,\n entity,\n entityId: activityId,\n athleteProfileId,\n feedType,\n index,\n viewingAthleteId: viewingAthlete.id,\n clubId,\n properties: {\n mentioned_athletes: descriptionMentionedAthleteIds || []\n }\n };\n\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n index,\n isParentFeedEntry: true\n });\n\n const { trackAnalytics } = useFeedAnalytics({\n ...analyticProps,\n inView\n });\n\n const [entityState, dispatch] = useReducer(\n reducer,\n buildInitialState({\n trackAnalytics,\n comments: { [activityId]: activity.kudosAndComments.comments },\n entity: snakeCase(entity),\n entityId: activityId,\n isAutoplayEnabled\n }),\n init\n );\n\n const providerState = {\n entityState,\n dispatch,\n analyticProps\n };\n\n const translatedSportType = I18n.t(\n `strava.activities.types_v2.${sportType.toLowerCase()}`\n );\n\n const buildEntryBody = () => {\n const elements = [];\n // activity icon\n elements.push(\n \n
    \n \n
    \n
    \n );\n // activity title, description, stats and achievements\n elements.push(\n \n \n \n );\n return elements;\n };\n\n const entityOwner = {\n displayImage: avatarUrl,\n name: athleteName,\n memberType,\n profileUrl: `/athletes/${athleteId}`,\n type: 'athlete'\n };\n\n const showVisibilityMessage =\n ownedByCurrentAthlete && visibility !== 'everyone';\n\n const showHiddenStatIndicator =\n ownedByCurrentAthlete && hiddenStatIndicatorString !== null;\n\n const pageHeight =\n window.innerHeight || document.documentElement.clientHeight;\n const [inViewAutoPlayRef, inViewAutoPlay] = useInView({\n threshold: 0,\n // 11 here is the gap between feed entries -1px to make sure that two feed\n // entries never overlap and preventing two videos playing at the same time.\n rootMargin: `-360px 0px -${pageHeight - (360 + 11)}px 0px`\n });\n\n const { autoPlayVideo } = entityState;\n useEffect(() => {\n if (isAutoplayEnabled && autoPlayVideo) {\n if (inViewAutoPlay) {\n autoPlayVideo.play();\n dispatch({\n type: SET_AUTOPLAY_VIDEO_IN_VIEW,\n payload: { autoPlayVideoInView: true }\n });\n } else {\n autoPlayVideo.pause();\n dispatch({\n type: SET_AUTOPLAY_VIDEO_IN_VIEW,\n payload: { autoPlayVideoInView: false }\n });\n }\n }\n }, [isAutoplayEnabled, autoPlayVideo, inViewAutoPlay]);\n\n const observerRes = useCallback(\n (node) => {\n if (isAutoplayEnabled) {\n inViewAutoPlayRef(node);\n }\n intersectionObserverRef(node);\n },\n [intersectionObserverRef, inViewAutoPlayRef, isAutoplayEnabled]\n );\n\n const buildEntryFooter = () => (\n \n {showHiddenStatIndicator && (\n \n )}\n {showVisibilityMessage && }\n \n \n );\n\n return (\n \n \n {/* Entry Header - avatar, location, social actions */}\n \n\n {/* Entry Body = activity title, description, stats and achievements */}\n \n {buildEntryBody()}\n \n\n {/* Map Visibility feature education row prompt */}\n {!isEmpty(mapVisPrompt) && (\n \n \n \n )}\n\n {/* Maharaj achievements */}\n {/* We are prioritizing the map visibility feature education row prompt\n over these achievements for the duration of the map-visibility-safe-by-default experiment */}\n {!isEmpty(maharajAchievement) && isEmpty(mapVisPrompt) && (\n \n \n \n )}\n\n {/* Map and Photos */}\n {!isEmpty(mapAndPhotos) && (\n \n \n \n )}\n\n {/* Entry Footer - Visibility Message , Kudos & Comments */}\n {buildEntryFooter()}\n \n \n \n );\n};\n\nActivity.propTypes = {\n // feed entry types could be Activity, group_activity, Post etc\n entity: PropTypes.oneOf(['Activity']).isRequired,\n // range of number 0...19 representing rows returned by the server per feed load\n index: indexProps.isRequired,\n activity: PropTypes.shape({\n activityName: PropTypes.string,\n id: PropTypes.string,\n flagged: PropTypes.bool,\n ownedByCurrentAthlete: PropTypes.bool,\n segAndBestEffortAchievements: segAndBestEffortAchievementsProps,\n powerAndSegmentGoalAchievements: powerAndSegmentGoalAchievementsProps,\n cumulativeGoalAchievement: cumulativeGoalAchievementProps,\n type: PropTypes.string,\n stats: statsProps,\n description: PropTypes.string,\n descriptionMentionedAthleteIds: PropTypes.arrayOf(PropTypes.string),\n mapVisPrompt: PropTypes.shape({\n hideAnywhereSetting: PropTypes.string,\n paths: PropTypes.shape({\n promptImpression: PropTypes.string,\n hideAnywhere: PropTypes.string\n }),\n experimentVar: PropTypes.string\n }),\n maharajAchievement: PropTypes.shape({\n image: PropTypes.string,\n image_caption: PropTypes.string,\n subtitle: PropTypes.string,\n text: PropTypes.string,\n url: PropTypes.string\n }),\n isVirtual: PropTypes.bool.isRequired,\n isCommute: PropTypes.bool.isRequired,\n workoutType: PropTypes.string,\n privacyTagKey: PropTypes.string,\n shareable: PropTypes.bool.isRequired,\n twitterUrl: PropTypes.string.isRequired,\n isBoosted: PropTypes.bool,\n visibility: PropTypes.string.isRequired,\n hiddenStatIndicatorString: PropTypes.string,\n athlete: entityAthleteProps.isRequired,\n mapAndPhotos: PropTypes.shape({\n activityMap: mapProps,\n isRoutable: PropTypes.bool,\n photoList: photoListProps\n }).isRequired,\n timeAndLocation: timeAndLocationProps.isRequired,\n kudosAndComments: kudosAndCommentsProps.isRequired,\n embedDropdownEnabled: PropTypes.bool.isRequired\n }).isRequired,\n cursorData: cursorDataProps.isRequired,\n page: pageProps.isRequired,\n feedType: feedTypeProps.isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n reactionsEnabled: PropTypes.bool.isRequired,\n clubId: PropTypes.string.isRequired,\n athleteProfileId: PropTypes.string.isRequired,\n iconExperimentCohort: PropTypes.string,\n isAutoplayEnabled: PropTypes.bool\n};\n\nActivity.defaultProps = {\n iconExperimentCohort: null,\n isAutoplayEnabled: true\n};\n\nexport default Activity;\n","export { default } from './Activity';\n","// extracted by mini-css-extract-plugin\nexport default {\"entry-title\":\"Post--entry-title--lQghn\",\"entryTitle\":\"Post--entry-title--lQghn\",\"post-body-title\":\"Post--post-body-title--bhzr+\",\"postBodyTitle\":\"Post--post-body-title--bhzr+\",\"entry-body\":\"Post--entry-body--N2wId\",\"entryBody\":\"Post--entry-body--N2wId\",\"post-body\":\"Post--post-body--tc3Hp\",\"postBody\":\"Post--post-body--tc3Hp\",\"shared-content-container\":\"Post--shared-content-container--7Kkbr\",\"sharedContentContainer\":\"Post--shared-content-container--7Kkbr\",\"shared-content\":\"Post--shared-content--iXqCY\",\"sharedContent\":\"Post--shared-content--iXqCY\",\"shared-content-image\":\"Post--shared-content-image--u0E0C\",\"sharedContentImage\":\"Post--shared-content-image--u0E0C\",\"shared-content-thumbnail\":\"Post--shared-content-thumbnail--2evyX\",\"sharedContentThumbnail\":\"Post--shared-content-thumbnail--2evyX\",\"shared-content-text\":\"Post--shared-content-text--cikP1\",\"sharedContentText\":\"Post--shared-content-text--cikP1\",\"shared-content-header\":\"Post--shared-content-header--MgPrH\",\"sharedContentHeader\":\"Post--shared-content-header--MgPrH\",\"shared-content-description\":\"Post--shared-content-description--+gJa8\",\"sharedContentDescription\":\"Post--shared-content-description--+gJa8\",\"shared-content-domain\":\"Post--shared-content-domain--8lN55\",\"sharedContentDomain\":\"Post--shared-content-domain--8lN55\",\"shared-video\":\"Post--shared-video--+g780\",\"sharedVideo\":\"Post--shared-video--+g780\",\"shared-content-video-icon\":\"Post--shared-content-video-icon--rrp4F\",\"sharedContentVideoIcon\":\"Post--shared-content-video-icon--rrp4F\"};","import React, { useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport { Markup } from 'interweave';\nimport I18n from 'utils/I18n';\nimport { snakeCase } from 'lodash-es';\nimport styles from './styles.scss';\nimport useFeedAnalytics from '../../hooks/useFeedAnalytics';\nimport {\n cursorDataProps,\n indexProps,\n pageProps,\n feedTypeProps,\n viewingAthleteProps,\n commentsProps,\n timeAndLocationProps,\n highlightedKudosersProps\n} from '../../props/feed-prop-types';\nimport FeedEntityContext from '../../state/FeedEntityContext';\nimport { init, reducer } from '../../state/feed-entity-reducer';\nimport { buildInitialState } from '../../state/feed-entity-init-state';\nimport CommentDeleteAlertDialog from '../shared/CommentDeleteAlertDialog';\nimport HeaderWithOwnerMetadata from '../shared/HeaderWithOwnerMetadata/HeaderWithOwnerMetadata';\nimport videoIcon from './video-icon.png';\nimport PhotosAndMapImage from '../shared/PhotosAndMapImage';\nimport KudosAndComments from '../shared/KudosAndComments';\nimport { getPhotoWithMaxDimension } from '../../utils';\nimport Card from '../shared/media/Card';\nimport EntryMedia from '../shared/media/EntryMedia';\nimport EntryBody from '../shared/media/EntryBody';\nimport EntryFooter from '../shared/media/EntryFooter';\nimport useFeedIntersectionObserver from '../../hooks/useFeedIntersectionObserver';\n\nconst Post = ({\n viewingAthlete,\n clubId,\n post,\n page,\n entity,\n feedType,\n index,\n cursorData,\n timeAndLocation,\n body,\n sharedContents,\n athleteProfileId,\n reactionsEnabled,\n iconExperimentCohort\n}) => {\n const analyticProps = {\n page,\n entity,\n entityId: post.entity_id,\n feedType,\n index,\n athleteProfileId,\n viewingAthleteId: viewingAthlete.id,\n clubId\n };\n\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n index,\n isParentFeedEntry: true\n });\n\n const { trackAnalytics } = useFeedAnalytics({\n ...analyticProps,\n inView\n });\n\n const [entityState, dispatch] = useReducer(\n reducer,\n buildInitialState({\n trackAnalytics,\n comments: { [post.entity_id]: post.comments },\n entity: snakeCase(entity),\n entityId: post.entity_id\n }),\n init\n );\n const providerState = {\n entityState,\n dispatch,\n analyticProps\n };\n\n const profileUrl =\n post.path_prefix && post.path_prefix.concat(post.originator_id);\n\n const entityOwner = {\n displayImage: post.originator_avatar_url,\n memberType: post.member_type,\n name: post.originator_name,\n profileUrl,\n type: post.parent_type.toLowerCase()\n };\n\n const entryExpandedLink = () => {\n const videoThumbnailIcon = I18n.t(\n 'templates.feed.posts.video_thumbnail_icon'\n );\n return sharedContents.map((content) => {\n // eg. expected scss class : shared-video is referenced as sharedVideo in JSX\n const typeClass = `shared${content.type.charAt(0).toUpperCase() +\n content.type.slice(1)}`;\n return (\n \n trackAnalytics({\n action: 'click',\n element: 'expanded_link'\n })\n }\n >\n
    \n {/* thumbnail image */}\n {content.thumbnail_url && (\n
    \n {content.type === 'video' && (\n \n )}\n \n
    \n )}\n {/* description */}\n
    \n

    {content.title}

    \n

    \n {content.description}\n

    \n

    {content.hostname}

    \n
    \n
    \n \n );\n });\n };\n\n const buildEntryBody = () => {\n let bodyStyle = [styles.postBody];\n if (!post.summary) {\n bodyStyle.push(styles.postBodyTitle);\n }\n bodyStyle = bodyStyle.join(' ');\n return (\n \n trackAnalytics({\n action: 'click',\n element: 'body'\n })\n }\n >\n {post.summary && (\n

    \n \n

    \n )}\n
    \n \n
    \n \n );\n };\n\n const highlightPhoto = () => {\n const photoUrlHash = post.primary_photo.urls;\n // max dimension image url\n const photoUrl = getPhotoWithMaxDimension(photoUrlHash);\n return {\n large: photoUrl,\n caption_escaped: post.primary_photo.caption,\n photo_id: post.primary_photo.unique_id\n };\n };\n\n return (\n \n \n {/* Entry Header - avatar, location, social actions */}\n \n {/* Summary, Body and Expanded Links */}\n\n {/* Summary & Body */}\n {buildEntryBody()}\n\n {/* Expanded Link */}\n {entryExpandedLink()}\n\n {/* Primary Photo */}\n {post.primary_photo && (\n \n \n trackAnalytics({\n action: 'click',\n element: 'image'\n })\n }\n >\n \n \n \n )}\n {/* Comments & Kudos */}\n \n \n \n \n \n \n );\n};\n\nPost.propTypes = {\n // feed entry types could be Activity, group_activity, Post etc\n entity: PropTypes.oneOf(['Post']).isRequired,\n feedType: feedTypeProps.isRequired,\n page: pageProps.isRequired,\n cursorData: cursorDataProps.isRequired,\n index: indexProps.isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n reactionsEnabled: PropTypes.bool.isRequired,\n iconExperimentCohort: PropTypes.string,\n clubId: PropTypes.string.isRequired,\n post: PropTypes.shape({\n entity_id: PropTypes.number.isRequired,\n comments: commentsProps,\n originator_id: PropTypes.number.isRequired,\n originator_avatar_url: PropTypes.string,\n originator_name: PropTypes.string,\n parent_type: PropTypes.string,\n member_type: PropTypes.string,\n summary: PropTypes.string,\n is_boosted: PropTypes.bool,\n is_sharable: PropTypes.bool,\n twitter_url: PropTypes.string,\n path_prefix: PropTypes.string,\n primary_photo: PropTypes.shape({\n urls: PropTypes.shape({}),\n large: PropTypes.string,\n caption: PropTypes.string,\n unique_id: PropTypes.string\n }),\n can_kudo: PropTypes.bool,\n kudos_count: PropTypes.number,\n highlighted_kudosers: highlightedKudosersProps,\n comments_enabled: PropTypes.bool\n }).isRequired,\n body: PropTypes.string.isRequired,\n sharedContents: PropTypes.arrayOf(\n PropTypes.shape({\n description: PropTypes.string,\n id: PropTypes.number,\n post_id: PropTypes.number,\n thumbnail_url: PropTypes.string,\n title: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n hostname: PropTypes.string\n })\n ),\n timeAndLocation: timeAndLocationProps.isRequired,\n athleteProfileId: PropTypes.string.isRequired\n};\n\nPost.defaultProps = {\n sharedContents: [],\n iconExperimentCohort: null\n};\n\nexport default Post;\n","export { default } from './Post';\n","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"FancyPromo--logo--AeMP3\"};","// extracted by mini-css-extract-plugin\nexport default {\"entry-media-container\":\"PromoEntry--entry-media-container--doFxb\",\"entryMediaContainer\":\"PromoEntry--entry-media-container--doFxb\",\"entry-image\":\"PromoEntry--entry-image--kwUzd\",\"entryImage\":\"PromoEntry--entry-image--kwUzd\",\"background-header-image\":\"PromoEntry--background-header-image--s7d0h\",\"backgroundHeaderImage\":\"PromoEntry--background-header-image--s7d0h\",\"cta-btn\":\"PromoEntry--cta-btn--Vhcz2\",\"ctaBtn\":\"PromoEntry--cta-btn--Vhcz2\",\"details\":\"PromoEntry--details--4D-wH\"};","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Button from '@strava/ui/Button';\nimport createNetworkingClient from 'utils/networking-client';\nimport styles from './index.scss';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport { indexProps, cursorDataProps } from '../../../props/feed-prop-types';\nimport Card from '../media/Card';\nimport EntryBody from '../media/EntryBody';\nimport Media from '../media/Media';\nimport MediaLeft from '../media/MediaLeft';\nimport MediaBody from '../media/MediaBody';\n\nfunction BackgroundHeaderImage({ backgroundImage }) {\n return backgroundImage ? (\n
    \n
    \n \n
    \n
    \n ) : null;\n}\n\nBackgroundHeaderImage.propTypes = {\n backgroundImage: PropTypes.string.isRequired\n};\n\nconst PromoEntry = ({\n entity,\n description,\n badge,\n backgroundImage,\n impression,\n click,\n headline,\n intersectionObserverRef,\n cursorData,\n index,\n ctaText,\n ctaUrl\n}) => {\n const { entityState } = useFeedEntityContext();\n\n return (\n \n {/* Background Header Image for Fancy Promo */}\n \n\n \n \n {/* Left Logo Badge */}\n {badge}\n\n {/* Right Main Body */}\n \n {\n createNetworkingClient({ baseUrl: null, headers: null }).get(\n click\n );\n entityState.trackAnalytics({\n action: 'click',\n element: `${entity.toLowerCase()}_headline_and_description`\n });\n }}\n >\n

    {headline}

    \n
    {description}
    \n \n\n {\n createNetworkingClient({ baseUrl: null, headers: null }).get(\n click\n );\n entityState.trackAnalytics({\n action: 'click',\n element: `${entity.toLowerCase()}_cta_button`\n });\n window.location.href = ctaUrl;\n }}\n >\n {ctaText}\n \n
    \n
    \n
    \n \n );\n};\n\nPromoEntry.propTypes = {\n entity: PropTypes.oneOf(['FancyPromo', 'SimplePromo']).isRequired,\n description: PropTypes.string.isRequired,\n impression: PropTypes.string.isRequired,\n click: PropTypes.string.isRequired,\n ctaText: PropTypes.string.isRequired,\n ctaUrl: PropTypes.string.isRequired,\n backgroundImage: PropTypes.string,\n badge: PropTypes.node.isRequired,\n headline: PropTypes.string.isRequired,\n intersectionObserverRef: PropTypes.func.isRequired,\n cursorData: cursorDataProps.isRequired,\n index: indexProps.isRequired\n};\n\nPromoEntry.defaultProps = {\n backgroundImage: ''\n};\n\nexport default PromoEntry;\n","export { default } from './PromoEntry';\n","import React, { useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport createNetworkingClient from 'utils/networking-client';\nimport styles from './styles.scss';\nimport useFeedAnalytics from '../../hooks/useFeedAnalytics';\nimport {\n pageProps,\n viewingAthleteProps,\n cursorDataProps,\n feedTypeProps,\n indexProps\n} from '../../props/feed-prop-types';\nimport FeedEntityContext from '../../state/FeedEntityContext';\nimport { init, reducer } from '../../state/feed-entity-reducer';\nimport { buildInitialState } from '../../state/feed-entity-init-state';\n\nimport PromoEntry from '../shared/PromoEntry';\nimport useFeedIntersectionObserver from '../../hooks/useFeedIntersectionObserver';\n\nconst FancyPromo = ({\n viewingAthlete,\n clubId,\n page,\n entity,\n feedType,\n index,\n cursorData,\n rowData,\n athleteProfileId\n}) => {\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n index,\n isParentFeedEntry: true\n });\n\n const { trackAnalytics } = useFeedAnalytics({\n page,\n entity,\n entityId: rowData.trackable_id, // TODO use entityId computed in Feed.js once react feed container goes to prod\n athleteProfileId,\n feedType,\n index,\n viewingAthleteId: viewingAthlete.id,\n clubId,\n inView\n });\n\n const [entityState] = useReducer(\n reducer,\n buildInitialState({\n trackAnalytics\n }),\n init\n );\n\n const providerState = {\n entityState\n };\n\n const logo = (\n {\n createNetworkingClient({ baseUrl: null, headers: null }).get(\n rowData.click.resource\n );\n entityState.trackAnalytics({\n action: 'click',\n element: 'fancy_promo_image'\n });\n }}\n >\n \n \n );\n\n const bodyProps = {\n entity,\n badge: logo,\n backgroundImage: rowData.background_image,\n impression: rowData.impression.resource,\n click: rowData.click.resource,\n headline: rowData.headline,\n description: rowData.description,\n ctaUrl: rowData.cta_action.resource,\n intersectionObserverRef,\n index,\n cursorData,\n viewingAthlete,\n ctaText: rowData.cta_text\n };\n\n return (\n \n \n \n );\n};\n\nFancyPromo.propTypes = {\n // feed entity could be Activity, group_activity, Post etc\n entity: PropTypes.oneOf(['FancyPromo', 'SimplePromo']).isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n clubId: PropTypes.string.isRequired,\n athleteProfileId: PropTypes.string.isRequired,\n page: pageProps.isRequired,\n cursorData: cursorDataProps.isRequired,\n feedType: feedTypeProps.isRequired,\n // range of number 0...19 representing rows returned by the server per feed load\n index: indexProps.isRequired,\n rowData: PropTypes.shape({\n headline: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n trackable_id: PropTypes.string,\n image: PropTypes.string,\n impression: PropTypes.shape({\n resource: PropTypes.string\n }),\n click: PropTypes.shape({\n resource: PropTypes.string\n }),\n background_image: PropTypes.string,\n cta_text: PropTypes.string,\n cta_action: PropTypes.shape({\n resource: PropTypes.string\n })\n }).isRequired\n};\n\nexport default FancyPromo;\n","export { default } from './FancyPromo';\n","// extracted by mini-css-extract-plugin\nexport default {\"cta-btn\":\"PerformanceGoalSingleView--cta-btn--GYiao\",\"ctaBtn\":\"PerformanceGoalSingleView--cta-btn--GYiao\",\"entry-title\":\"PerformanceGoalSingleView--entry-title--qTms+\",\"entryTitle\":\"PerformanceGoalSingleView--entry-title--qTms+\"};","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { LinkButton } from '@strava/ui/Button';\nimport { Markup } from 'interweave';\nimport I18n from 'utils/I18n';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport {\n indexProps,\n cursorDataProps,\n viewingAthleteProps,\n timeAndLocationProps\n} from '../../../props/feed-prop-types';\nimport HeaderWithOwnerMetadata from '../HeaderWithOwnerMetadata/HeaderWithOwnerMetadata';\nimport styles from './index.scss';\n\nimport Card from '../media/Card';\nimport EntryBody from '../media/EntryBody';\n\nconst PerformanceGoalSingleView = ({\n entity,\n entityId,\n intersectionObserverRef,\n cursorData,\n index,\n viewingAthlete,\n shareable,\n twitterUrl,\n isBoosted,\n timeAndLocation,\n goalEntries\n}) => {\n const { entityState } = useFeedEntityContext();\n\n const goalEntry = goalEntries[0];\n const joinable = viewingAthlete.id !== goalEntry.athlete_id.toString(); // Cast to string to ensure that both are strings\n const entityOwner = {\n displayImage: goalEntry.athlete_avatar_url,\n name: goalEntry.athlete_display_name,\n memberType: goalEntry.athlete_member_type,\n profileUrl: `/athletes/${goalEntry.athlete_id}`,\n type: 'athlete'\n };\n\n return (\n \n \n \n

    \n \n

    \n {joinable && (\n {\n entityState.trackAnalytics({\n action: 'click',\n element: `${entity.toLowerCase()}_join_goal`\n });\n }}\n >\n {I18n.t(\n 'components.feed.performance_goal_created_single_view.join_goal'\n )}\n \n )}\n
    \n \n );\n};\n\nPerformanceGoalSingleView.propTypes = {\n entity: PropTypes.oneOf(['PerformanceGoalCreated']).isRequired,\n entityId: PropTypes.number.isRequired,\n intersectionObserverRef: PropTypes.func.isRequired,\n cursorData: cursorDataProps.isRequired,\n index: indexProps.isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n shareable: PropTypes.bool,\n twitterUrl: PropTypes.string.isRequired,\n isBoosted: PropTypes.bool,\n timeAndLocation: timeAndLocationProps.isRequired,\n goalEntries: PropTypes.arrayOf(\n PropTypes.shape({\n shareable: PropTypes.bool,\n is_boosted: PropTypes.bool,\n twitter_url: PropTypes.string.isRequired,\n entity_id: PropTypes.number.isRequired,\n description: PropTypes.string.isRequired,\n athlete_feed_entry_id: PropTypes.number.isRequired,\n athlete_id: PropTypes.number.isRequired,\n goal_path: PropTypes.string.isRequired,\n athlete_avatar_url: PropTypes.string.isRequired,\n athlete_member_type: PropTypes.string.isRequired,\n athlete_display_name: PropTypes.string.isRequired\n })\n ).isRequired\n};\n\nPerformanceGoalSingleView.defaultProps = {\n isBoosted: false,\n shareable: false\n};\n\nexport default PerformanceGoalSingleView;\n","export { default } from './PerformanceGoalSingleView';\n","// extracted by mini-css-extract-plugin\nexport default {\"first-goal-entry\":\"PerformanceGoalMultiView--first-goal-entry--PhseN\",\"firstGoalEntry\":\"PerformanceGoalMultiView--first-goal-entry--PhseN\",\"entry-body\":\"PerformanceGoalMultiView--entry-body--NjrS3\",\"entryBody\":\"PerformanceGoalMultiView--entry-body--NjrS3\",\"hidden\":\"PerformanceGoalMultiView--hidden--Mi-Vv\",\"show\":\"PerformanceGoalMultiView--show--Rcpqt\",\"join-btn\":\"PerformanceGoalMultiView--join-btn--pH9v5\",\"joinBtn\":\"PerformanceGoalMultiView--join-btn--pH9v5\",\"show-all-entries\":\"PerformanceGoalMultiView--show-all-entries--WUnMz\",\"showAllEntries\":\"PerformanceGoalMultiView--show-all-entries--WUnMz\"};","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"GoalEntry--card--Mou-C\",\"card-image-top\":\"GoalEntry--card-image-top--yKzm1\",\"cardImageTop\":\"GoalEntry--card-image-top--yKzm1\",\"card-block\":\"GoalEntry--card-block--t7UBH\",\"cardBlock\":\"GoalEntry--card-block--t7UBH\",\"card-header\":\"GoalEntry--card-header--MUm-8\",\"cardHeader\":\"GoalEntry--card-header--MUm-8\",\"card-body\":\"GoalEntry--card-body--u+6QL\",\"cardBody\":\"GoalEntry--card-body--u+6QL\",\"card-footer\":\"GoalEntry--card-footer--n9y58\",\"cardFooter\":\"GoalEntry--card-footer--n9y58\",\"card-icon\":\"GoalEntry--card-icon--JmHLs\",\"cardIcon\":\"GoalEntry--card-icon--JmHLs\",\"app-icon-wrapper\":\"GoalEntry--app-icon-wrapper--OZqwW\",\"appIconWrapper\":\"GoalEntry--app-icon-wrapper--OZqwW\",\"media\":\"GoalEntry--media--5OPdx\",\"media-content\":\"GoalEntry--media-content---ur5Z\",\"mediaContent\":\"GoalEntry--media-content---ur5Z\",\"media-body\":\"GoalEntry--media-body--NGGzl\",\"mediaBody\":\"GoalEntry--media-body--NGGzl\",\"media-object\":\"GoalEntry--media-object--gkpre\",\"mediaObject\":\"GoalEntry--media-object--gkpre\",\"media-left\":\"GoalEntry--media-left--rqo-1\",\"mediaLeft\":\"GoalEntry--media-left--rqo-1\",\"media-object-left\":\"GoalEntry--media-object-left--MySIe\",\"mediaObjectLeft\":\"GoalEntry--media-object-left--MySIe\",\"media-object-right\":\"GoalEntry--media-object-right--vPweg\",\"mediaObjectRight\":\"GoalEntry--media-object-right--vPweg\",\"media-right\":\"GoalEntry--media-right--fXAa3\",\"mediaRight\":\"GoalEntry--media-right--fXAa3\",\"media-actions\":\"GoalEntry--media-actions--DV-vw\",\"mediaActions\":\"GoalEntry--media-actions--DV-vw\",\"media-center\":\"GoalEntry--media-center--NGJl9\",\"mediaCenter\":\"GoalEntry--media-center--NGJl9\",\"media-middle\":\"GoalEntry--media-middle--ydcF-\",\"mediaMiddle\":\"GoalEntry--media-middle--ydcF-\",\"media-bottom\":\"GoalEntry--media-bottom--nui0b\",\"mediaBottom\":\"GoalEntry--media-bottom--nui0b\",\"list-media\":\"GoalEntry--list-media---V3JB\",\"listMedia\":\"GoalEntry--list-media---V3JB\",\"comments\":\"GoalEntry--comments--DyP7P\",\"comment\":\"GoalEntry--comment--MBwt-\",\"thread\":\"GoalEntry--thread--TyUGr\",\"feed-pagination\":\"GoalEntry--feed-pagination--F3xxB\",\"feedPagination\":\"GoalEntry--feed-pagination--F3xxB\",\"spinner\":\"GoalEntry--spinner--01l2Y\",\"no-entries\":\"GoalEntry--no-entries--zwhRQ\",\"noEntries\":\"GoalEntry--no-entries--zwhRQ\",\"entry-container\":\"GoalEntry--entry-container--cIK3N\",\"entryContainer\":\"GoalEntry--entry-container--cIK3N\",\"feed-entry\":\"GoalEntry--feed-entry--WIdLj\",\"feedEntry\":\"GoalEntry--feed-entry--WIdLj\",\"entry-inset\":\"GoalEntry--entry-inset--eHZp+\",\"entryInset\":\"GoalEntry--entry-inset--eHZp+\",\"entry-header\":\"GoalEntry--entry-header--NRMKY\",\"entryHeader\":\"GoalEntry--entry-header--NRMKY\",\"entry-body\":\"GoalEntry--entry-body--rWg85\",\"entryBody\":\"GoalEntry--entry-body--rWg85\",\"entry-media\":\"GoalEntry--entry-media--MFMGv\",\"entryMedia\":\"GoalEntry--entry-media--MFMGv\",\"entry-footer\":\"GoalEntry--entry-footer--Fw+xq\",\"entryFooter\":\"GoalEntry--entry-footer--Fw+xq\",\"entry-block\":\"GoalEntry--entry-block--K0hDi\",\"entryBlock\":\"GoalEntry--entry-block--K0hDi\",\"avatar\":\"GoalEntry--avatar--OeHbQ\",\"avatar-img\":\"GoalEntry--avatar-img--zV2Ex\",\"avatarImg\":\"GoalEntry--avatar-img--zV2Ex\",\"card-margin\":\"GoalEntry--card-margin--LgcEu\",\"cardMargin\":\"GoalEntry--card-margin--LgcEu\",\"btn\":\"GoalEntry--btn--modpu\",\"btn-link\":\"GoalEntry--btn-link--WOM-+\",\"btnLink\":\"GoalEntry--btn-link--WOM-+\",\"icon\":\"GoalEntry--icon--J2Ma6\",\"entry-title\":\"GoalEntry--entry-title--CMO71\",\"entryTitle\":\"GoalEntry--entry-title--CMO71\",\"goal-entry\":\"GoalEntry--goal-entry--tEx23\",\"goalEntry\":\"GoalEntry--goal-entry--tEx23\",\"fadeIn\":\"GoalEntry--fadeIn--8mDPu\",\"newKudo\":\"GoalEntry--newKudo--E0xnF\",\"enterFadeOut\":\"GoalEntry--enterFadeOut--SRKKu\"};","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Markup } from 'interweave';\nimport styles from './index.scss';\n\nconst GoalEntry = ({ iconSrc, iconUrl, iconAlt, description }) => {\n return (\n
    \n
    \n {/* Left Logo Badge */}\n
    \n \n {iconAlt}\n \n
    \n\n {/* Right Main Body */}\n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nGoalEntry.propTypes = {\n iconSrc: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n iconAlt: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n};\n\nexport default GoalEntry;\n","export { default } from './GoalEntry';\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport I18n from 'utils/I18n';\nimport Button, { LinkButton } from '@strava/ui/Button';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport {\n indexProps,\n cursorDataProps,\n viewingAthleteProps\n} from '../../../props/feed-prop-types';\n\nimport Card from '../media/Card';\nimport EntryHeader from '../media/EntryHeader';\nimport EntryBody from '../media/EntryBody';\n\nimport styles from './index.scss';\n\nimport GoalEntry from '../GoalEntry';\n\nconst PerformanceGoalMultiView = ({\n entity,\n viewingAthlete,\n intersectionObserverRef,\n cursorData,\n index,\n goalEntries\n}) => {\n const [showAllEntries, setShowAllEntries] = useState(false);\n\n const { entityState } = useFeedEntityContext();\n const firstGoalEntry = goalEntries[0];\n const nextFiveGoalEntries = goalEntries.slice(1, 6);\n const restOfGoalEntries = goalEntries.slice(6);\n const joinable = goalEntries.every((entry) => {\n if (viewingAthlete.id === entry.athlete_id.toString()) {\n return false;\n }\n return true;\n });\n\n return (\n \n \n
    \n \n {joinable && (\n {\n entityState.trackAnalytics({\n action: 'click',\n element: `${entity.toLowerCase()}_join`\n });\n }}\n >\n {I18n.t(\n 'components.feed.performance_goal_created_multi_view.join_goal'\n )}\n \n )}\n
    \n
    \n\n \n
      \n {/* Show up to the next 5 goal entries */}\n {nextFiveGoalEntries.map((entry) => (\n
    • \n \n
    • \n ))}\n {/* Remaining goal entries are hidden until show all button is clicked */}\n {restOfGoalEntries.map((entry) => (\n \n \n \n ))}\n {!showAllEntries && goalEntries.length > 5 && (\n {\n setShowAllEntries(true);\n }}\n variant=\"text\"\n data-testid=\"show-all-entries\"\n className={styles.showAllEntries}\n type=\"button\"\n >\n {I18n.t(\n 'components.feed.performance_goal_created_multi_view.show_all_entries',\n {\n count: goalEntries.length\n }\n )}\n \n )}\n
    \n
    \n \n );\n};\n\nPerformanceGoalMultiView.propTypes = {\n entity: PropTypes.oneOf(['PerformanceGoalCreated']).isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n intersectionObserverRef: PropTypes.func.isRequired,\n cursorData: cursorDataProps.isRequired,\n index: indexProps.isRequired,\n goalEntries: PropTypes.arrayOf(\n PropTypes.shape({\n description: PropTypes.string.isRequired,\n athlete_feed_entry_id: PropTypes.number.isRequired,\n athlete_id: PropTypes.number.isRequired,\n goal_path: PropTypes.string.isRequired,\n goal_type: PropTypes.string.isRequired,\n goal_id: PropTypes.number.isRequired,\n athlete_avatar_url: PropTypes.string.isRequired,\n athlete_member_type: PropTypes.string.isRequired,\n athlete_display_name: PropTypes.string.isRequired\n })\n ).isRequired\n};\n\nexport default PerformanceGoalMultiView;\n","export { default } from './PerformanceGoalMultiView';\n","import React, { useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport useFeedAnalytics from '../../hooks/useFeedAnalytics';\nimport {\n pageProps,\n viewingAthleteProps,\n cursorDataProps,\n feedTypeProps,\n indexProps,\n timeAndLocationProps\n} from '../../props/feed-prop-types';\nimport FeedEntityContext from '../../state/FeedEntityContext';\nimport { init, reducer } from '../../state/feed-entity-reducer';\nimport { buildInitialState } from '../../state/feed-entity-init-state';\n\nimport PerformanceGoalSingleView from '../shared/PerformanceGoalSingleView';\nimport PerformanceGoalMultiView from '../shared/PerformanceGoalMultiView';\nimport useFeedIntersectionObserver from '../../hooks/useFeedIntersectionObserver';\n\nconst PerformanceGoalCreated = ({\n entity,\n viewingAthlete,\n clubId,\n page,\n feedType,\n index,\n cursorData,\n rowData,\n athleteProfileId,\n timeAndLocation\n}) => {\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n index,\n isParentFeedEntry: true\n });\n\n const { trackAnalytics } = useFeedAnalytics({\n page,\n entity,\n entityId: rowData.goal_entries[0].entity_id,\n athleteProfileId,\n feedType,\n index,\n viewingAthleteId: viewingAthlete.id,\n clubId,\n inView\n });\n\n const [entityState] = useReducer(\n reducer,\n buildInitialState({\n trackAnalytics\n }),\n init\n );\n\n const providerState = {\n entityState\n };\n\n const bodyProps = {\n entity,\n intersectionObserverRef,\n index,\n cursorData,\n viewingAthlete,\n shareable: rowData.goal_entries[0].shareable,\n twitterUrl: rowData.goal_entries[0].twitter_url,\n isBoosted: rowData.goal_entries[0].is_boosted,\n timeAndLocation,\n goalEntries: rowData.goal_entries,\n entityId: rowData.goal_entries[0].entity_id\n };\n\n return (\n \n {rowData.goal_entries.length > 1 ? (\n \n ) : (\n \n )}\n \n );\n};\n\nPerformanceGoalCreated.propTypes = {\n entity: PropTypes.oneOf(['PerformanceGoalCreated']).isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n clubId: PropTypes.string.isRequired,\n athleteProfileId: PropTypes.string.isRequired,\n page: pageProps.isRequired,\n cursorData: cursorDataProps.isRequired,\n feedType: feedTypeProps.isRequired,\n index: indexProps.isRequired,\n timeAndLocation: timeAndLocationProps.isRequired,\n rowData: PropTypes.shape({\n goal_entries: PropTypes.arrayOf(\n PropTypes.shape({\n shareable: PropTypes.bool,\n is_boosted: PropTypes.bool,\n twitter_url: PropTypes.string.isRequired,\n entity_id: PropTypes.number.isRequired,\n description: PropTypes.string.isRequired,\n athlete_feed_entry_id: PropTypes.number.isRequired,\n athlete_id: PropTypes.number.isRequired\n })\n )\n }).isRequired\n};\n\nexport default PerformanceGoalCreated;\n","export { default } from './PerformanceGoalCreated';\n","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"ChallengeJoin--logo--FGNSY\"};","// extracted by mini-css-extract-plugin\nexport default {\"media\":\"AthleteJoinEntry--media--kEDKw\",\"title-text\":\"AthleteJoinEntry--title-text--sRiv7\",\"titleText\":\"AthleteJoinEntry--title-text--sRiv7\",\"details\":\"AthleteJoinEntry--details--1CrmU\",\"icon-wrapper\":\"AthleteJoinEntry--icon-wrapper--NWHem\",\"iconWrapper\":\"AthleteJoinEntry--icon-wrapper--NWHem\",\"entry-text\":\"AthleteJoinEntry--entry-text--7nlAn\",\"entryText\":\"AthleteJoinEntry--entry-text--7nlAn\",\"join-btn\":\"AthleteJoinEntry--join-btn--Mh-s+\",\"joinBtn\":\"AthleteJoinEntry--join-btn--Mh-s+\"};","const types = {\n DOB_UPDATE_FAILED: 'DOB_UPDATE_FAILED',\n DOB_UPDATE_REQUESTED: 'DOB_UPDATE_REQUESTED',\n DOB_UPDATE_SUCCESS: 'DOB_UPDATE_SUCCESS',\n MODAL_CHANGE_DATE: 'MODAL_CHANGE_DATE',\n MODAL_CLOSE: 'MODAL_CLOSE'\n};\n\nexport default types;\n","import types from './actions';\n\nexport default function reducer(state = {}, action) {\n switch (action.name) {\n case types.DOB_UPDATE_FAILED:\n return {\n ...state,\n gatingModal: {\n ...state.gatingModal,\n requestInProgress: false\n }\n };\n\n case types.DOB_UPDATE_REQUESTED:\n return {\n ...state,\n gatingModal: {\n ...state.gatingModal,\n requestInProgress: true\n }\n };\n\n case types.DOB_UPDATE_SUCCESS: {\n const { dateOfBirth, isTooYoung } = action;\n\n return {\n ...state,\n currentAthlete: { ...state.currentAthlete, dateOfBirth },\n gatingModal: {\n ...state.gatingModal,\n requestInProgress: !isTooYoung // stay busy until athlete is navigated away\n }\n };\n }\n\n case types.MODAL_CHANGE_DATE:\n return {\n ...state,\n gatingModal: {\n ...state.gatingModal,\n ageGate: {\n ...(state.gatingModal && state.gatingModal.ageGate),\n dateSelected: action.date\n }\n }\n };\n\n case types.MODAL_CLOSE:\n return {\n ...state,\n gatingModal: null\n };\n\n default:\n return state;\n }\n}\n","import React, { useReducer } from 'react';\nimport PropTypes from 'prop-types';\n\nimport createNetworkingClient from 'utils/networking-client';\n\nimport AgeGateModal from '../../../../../apps/challenges/shared/components/AgeGateModal';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\n\nimport actions from './actions';\nimport reducer from './reducers';\n\nconst FeedEntryAgeGate = ({\n minimumAge,\n joinUrl,\n joinMethod,\n redirectUrl,\n currentAthlete,\n onUpdateDOB\n}) => {\n const { locale } = useFeedEntityContext();\n\n const joinChallengeFn = () => {\n return createNetworkingClient()({\n method: joinMethod,\n url: joinUrl\n }).then(() => {\n window.location = redirectUrl;\n });\n };\n\n const [state, dispatch] = useReducer(reducer, {\n currentAthlete: null,\n gatingModal: {\n gatingConditions: { minimumAge },\n joinChallengeFn,\n ageGate: { dateSelected: new Date('1970-1-1') },\n requestInProgress: false\n }\n });\n\n const handleModalClose = () => dispatch({ name: actions.MODAL_CLOSE });\n const handleDateSelectionChange = (date) =>\n dispatch({ name: actions.MODAL_CHANGE_DATE, date });\n const handleDateUpdateInProgress = () =>\n dispatch({ name: actions.DOB_UPDATE_REQUESTED });\n const handleDateUpdateFailure = () =>\n dispatch({ name: actions.DOB_UPDATE_FAILED });\n const handleDateUpdateSuccess = (date) => {\n const serializedDate = [\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate()\n ].join('-');\n\n onUpdateDOB(serializedDate);\n\n const isTooYoung =\n new Date(date) >\n (() => {\n const d = new Date(new Date().toDateString());\n d.setFullYear(d.getFullYear() - minimumAge);\n return d;\n })();\n\n dispatch({\n name: actions.DOB_UPDATE_SUCCESS,\n dateOfBirth: serializedDate,\n isTooYoung\n });\n };\n\n const statefulAthlete = { ...currentAthlete, ...state.currentAthlete };\n\n return (\n \n );\n};\n\nFeedEntryAgeGate.defaultProps = {\n onUpdateDOB: () => {}\n};\n\nFeedEntryAgeGate.propTypes = {\n minimumAge: PropTypes.number.isRequired,\n joinUrl: PropTypes.string.isRequired,\n joinMethod: PropTypes.string.isRequired,\n redirectUrl: PropTypes.string.isRequired,\n currentAthlete: PropTypes.shape({\n id: PropTypes.number.isRequired,\n dateOfBirth: PropTypes.string\n }).isRequired,\n onUpdateDOB: PropTypes.func\n};\n\nexport default FeedEntryAgeGate;\n","import PropTypes from 'prop-types';\nimport { Markup } from 'interweave';\nimport React, { useState } from 'react';\nimport Button from '@strava/ui/Button';\nimport createNetworkingClient from 'utils/networking-client';\nimport I18n from 'utils/I18n';\nimport styles from './index.scss';\nimport { useFeedEntityContext } from '../../../state/FeedEntityContext';\nimport {\n indexProps,\n cursorDataProps,\n viewingAthleteProps\n} from '../../../props/feed-prop-types';\nimport FeedEntryAgeGate from '../FeedEntryAgeGate';\nimport Card from '../media/Card';\nimport EntryHeader from '../media/EntryHeader';\nimport EntryBody from '../media/EntryBody';\nimport Media from '../media/Media';\nimport MediaLeft from '../media/MediaLeft';\nimport MediaBody from '../media/MediaBody';\n\nconst AthleteJoinEntry = ({\n entity,\n entityId,\n title,\n badge,\n entityName,\n entityUrl,\n entityIcon,\n entityMemberCount,\n isMember,\n secondaryText,\n intersectionObserverRef,\n cursorData,\n index,\n minimumAge,\n joinMethod,\n joinUrl,\n viewingAthlete,\n labels\n}) => {\n const { entityState } = useFeedEntityContext();\n const isClub = () => entity === 'Club';\n\n const buttonLabelAndVariant = isMember\n ? [labels.join, 'default']\n : [labels.view, 'primary'];\n\n const [entryState, setEntryState] = useState({\n memberCountLabel: I18n.t(labels.memberCountKey, {\n count: entityMemberCount\n }),\n disabled: false, // controls whether the join button is enabled/disabled\n label: buttonLabelAndVariant[0], // join button label text\n variant: buttonLabelAndVariant[1], // join button variant\n openAgeGateModal: false,\n ageGateModalProps: {}\n });\n\n // joins either a challenge or a club and increments the participant/membership count\n const join = ({ url, payload }) => {\n createNetworkingClient()\n .post(url, payload, { headers: { Accept: 'text/javascript' } })\n .then(() => {\n setEntryState({\n label: labels.joined,\n variant: 'primary',\n disabled: true,\n memberCountLabel: I18n.t(labels.memberCountKey, {\n count: entityMemberCount + 1\n })\n });\n })\n .catch(() => {\n // TODO: [fumba] log error in monorepo\n setEntryState((prev) => ({\n ...prev,\n label: labels.error,\n disabled: false\n }));\n });\n };\n\n // Checks if the athlete qualifies for any age-gate requirements that might be present\n // Athletes are joined in the challenge if they meet the criteria otherwise an age-gating modal\n // is opened prompting further action.\n const ageGateAndJoinChallenge = () => {\n const youngestDob =\n minimumAge &&\n (() => {\n const d = new Date(new Date().toDateString());\n d.setFullYear(d.getFullYear() - parseInt(minimumAge, 10));\n return d;\n })();\n if (\n minimumAge &&\n (!viewingAthlete.dateOfBirth ||\n new Date(viewingAthlete.dateOfBirth) > youngestDob)\n ) {\n const ageGateModalProps = {\n minimumAge: parseInt(minimumAge, 10),\n joinUrl: entityUrl,\n redirectUrl: `/challenges/${entityId}#joined`,\n joinMethod,\n currentAthlete: {\n id: parseInt(viewingAthlete.id, 10),\n dateOfBirth: viewingAthlete.dateOfBirth\n }\n };\n // open age-gate modal\n setEntryState((prev) => ({\n ...prev,\n disabled: true,\n openAgeGateModal: true,\n ageGateModalProps\n }));\n } else {\n // viewing athlete passed age-gating requirements - join them in challenge\n setEntryState((prev) => ({\n ...prev,\n disabled: true\n }));\n const payload = { challenge_id: entityId };\n const url = joinUrl;\n if (joinMethod != null) {\n join({ payload, url });\n } else {\n window.open(joinUrl, '_blank');\n }\n }\n };\n\n const onJoinButtonClick = () => {\n if (isMember) {\n // Join button is used to navigate to club/challenge detail page if the athlete is already joined\n entityState.trackAnalytics({\n action: 'click',\n element: `view_${entity.toLowerCase()}`\n });\n window.location.href = entityUrl;\n return;\n }\n entityState.trackAnalytics({\n action: 'click',\n element: `join_${entity.toLowerCase()}`\n });\n\n setEntryState((prev) => ({\n ...prev,\n disabled: true\n }));\n if (isClub()) {\n // Join Club\n const payload = { club_id: entityId };\n const url = `/clubs/${entityId}/members`;\n join({ payload, url });\n } else {\n // Challenge - age gate check & Join if applicable\n ageGateAndJoinChallenge();\n }\n };\n\n const clickGroupHeader = () => {\n entityState.trackAnalytics({\n action: 'click',\n element: 'group_header',\n properties: { element_source: entity.toLowerCase() }\n });\n };\n\n const clickTitleText = () => {\n entityState.trackAnalytics({\n action: 'click',\n element: 'title',\n properties: { element_source: entity.toLowerCase() }\n });\n };\n\n return (\n \n \n \n \n \n \n\n \n \n {badge}\n \n

    \n \n {entityName}\n \n

    \n
    \n {entityIcon && (\n
    {entityIcon}
    \n )}\n
    \n {entryState.memberCountLabel}\n {secondaryText && {secondaryText}}\n
    \n
    \n\n \n {entryState.label}\n \n
    \n
    \n
    \n\n {entryState.openAgeGateModal && (\n \n )}\n \n );\n};\n\nAthleteJoinEntry.propTypes = {\n entity: PropTypes.oneOf(['Club', 'Challenge']).isRequired,\n entityId: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n badge: PropTypes.node.isRequired,\n entityName: PropTypes.string.isRequired,\n entityUrl: PropTypes.string.isRequired,\n entityIcon: PropTypes.node,\n entityMemberCount: PropTypes.number.isRequired,\n isMember: PropTypes.bool.isRequired,\n secondaryText: PropTypes.string.isRequired,\n intersectionObserverRef: PropTypes.func.isRequired,\n cursorData: cursorDataProps.isRequired,\n index: indexProps.isRequired,\n minimumAge: PropTypes.number,\n joinMethod: PropTypes.string,\n joinUrl: PropTypes.string,\n viewingAthlete: viewingAthleteProps,\n labels: PropTypes.shape({\n join: PropTypes.string.isRequired,\n view: PropTypes.string.isRequired,\n joined: PropTypes.string.isRequired,\n memberCountKey: PropTypes.string.isRequired,\n error: PropTypes.string\n }).isRequired\n};\n\nAthleteJoinEntry.defaultProps = {\n entityIcon: null,\n minimumAge: null,\n joinMethod: '',\n viewingAthlete: null,\n joinUrl: null\n};\n\nexport default AthleteJoinEntry;\n","export { default } from './AthleteJoinEntry';\n","import React, { useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport getIcon from 'utils/icon-mapper';\nimport I18n from 'utils/I18n';\nimport styles from './styles.scss';\nimport useFeedAnalytics from '../../hooks/useFeedAnalytics';\nimport {\n pageProps,\n viewingAthleteProps,\n cursorDataProps,\n feedTypeProps,\n indexProps\n} from '../../props/feed-prop-types';\nimport FeedEntityContext from '../../state/FeedEntityContext';\nimport { init, reducer } from '../../state/feed-entity-reducer';\nimport { buildInitialState } from '../../state/feed-entity-init-state';\n\nimport AthleteJoinEntry from '../shared/AthleteJoinEntry';\nimport useFeedIntersectionObserver from '../../hooks/useFeedIntersectionObserver';\n\nconst i18nPrefix = 'components.feed.challenges';\n\nconst ChallengeJoin = ({\n viewingAthlete,\n clubId,\n page,\n entity,\n feedType,\n index,\n cursorData,\n rowData,\n athleteProfileId,\n locale\n}) => {\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n index,\n isParentFeedEntry: true\n });\n\n const { trackAnalytics } = useFeedAnalytics({\n page,\n entity,\n entityId: rowData.entity_id,\n athleteProfileId,\n feedType,\n index,\n viewingAthleteId: viewingAthlete.id,\n clubId,\n inView\n });\n\n const [entityState] = useReducer(\n reducer,\n buildInitialState({\n trackAnalytics\n }),\n init\n );\n\n const providerState = {\n entityState,\n locale\n };\n\n const logo = (\n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'challenge_image'\n });\n }}\n >\n \n \n );\n\n const bodyProps = {\n entity,\n title: rowData.title,\n badge: logo,\n entityName: rowData.challenge_name,\n entityUrl: rowData.challenge_url,\n entityIcon: (\n
    \n {getIcon(`sports_${rowData.displayed_icon}_normal_xsmall`)}\n
    \n ),\n entityMemberCount: rowData.participant_count,\n isMember: !rowData.challenge_joinable,\n secondaryText: rowData.challenge_ended ? '' : rowData.days_left,\n intersectionObserverRef,\n index,\n cursorData,\n entityId: rowData.entity_id,\n minimumAge:\n rowData.gating_conditions && rowData.gating_conditions.minimum_age,\n joinMethod: rowData.join_method,\n joinUrl: rowData.join_url,\n viewingAthlete,\n labels: {\n join: rowData.virtual_race\n ? I18n.t(`${i18nPrefix}.view_virtual_race`)\n : I18n.t(`${i18nPrefix}.view_challenge`),\n view: rowData.join_button_text,\n joined: I18n.t(`${i18nPrefix}.joined`),\n memberCountKey: `${i18nPrefix}.participants`,\n error: I18n.t(`${i18nPrefix}.error`)\n }\n };\n\n return (\n \n \n \n );\n};\n\nChallengeJoin.propTypes = {\n // feed entity could be Activity, group_activity, Post etc\n entity: PropTypes.oneOf(['Challenge']).isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n clubId: PropTypes.string.isRequired,\n athleteProfileId: PropTypes.string.isRequired,\n page: pageProps.isRequired,\n cursorData: cursorDataProps.isRequired,\n feedType: feedTypeProps.isRequired,\n // range of number 0...19 representing rows returned by the server per feed load\n index: indexProps.isRequired,\n rowData: PropTypes.shape({\n title: PropTypes.string.isRequired,\n entry_logo_url: PropTypes.string.isRequired,\n challenge_name: PropTypes.string.isRequired,\n challenge_url: PropTypes.string.isRequired,\n entity_id: PropTypes.number.isRequired,\n displayed_icon: PropTypes.string.isRequired,\n participant_count: PropTypes.number.isRequired,\n challenge_joinable: PropTypes.bool.isRequired,\n join_method: PropTypes.string.isRequired,\n join_url: PropTypes.string.isRequired,\n join_button_text: PropTypes.string.isRequired,\n challenge_ended: PropTypes.bool.isRequired,\n days_left: PropTypes.string,\n virtual_race: PropTypes.bool,\n gating_conditions: PropTypes.shape({\n minimum_age: PropTypes.number\n })\n }).isRequired,\n locale: PropTypes.string.isRequired\n};\n\nexport default ChallengeJoin;\n","export { default } from './ChallengeJoin';\n","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"SimplePromo--logo--UH8dJ\"};","import React, { useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport createNetworkingClient from 'utils/networking-client';\nimport styles from './styles.scss';\nimport useFeedAnalytics from '../../hooks/useFeedAnalytics';\nimport {\n pageProps,\n viewingAthleteProps,\n cursorDataProps,\n feedTypeProps,\n indexProps\n} from '../../props/feed-prop-types';\nimport FeedEntityContext from '../../state/FeedEntityContext';\nimport { init, reducer } from '../../state/feed-entity-reducer';\nimport { buildInitialState } from '../../state/feed-entity-init-state';\n\nimport PromoEntry from '../shared/PromoEntry';\nimport useFeedIntersectionObserver from '../../hooks/useFeedIntersectionObserver';\n\nconst SimplePromo = ({\n viewingAthlete,\n clubId,\n page,\n entity,\n feedType,\n index,\n cursorData,\n rowData,\n athleteProfileId\n}) => {\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n index,\n isParentFeedEntry: true\n });\n\n const { trackAnalytics } = useFeedAnalytics({\n page,\n entity,\n entityId: rowData.trackable_id, // TODO use entityId computed in Feed.js once react feed container goes to prod\n athleteProfileId,\n feedType,\n index,\n viewingAthleteId: viewingAthlete.id,\n clubId,\n inView\n });\n\n const [entityState] = useReducer(\n reducer,\n buildInitialState({\n trackAnalytics\n }),\n init\n );\n\n const providerState = {\n entityState\n };\n\n const logo = (\n {\n createNetworkingClient({ baseUrl: null, headers: null }).get(\n rowData.click.resource\n );\n entityState.trackAnalytics({\n action: 'click',\n element: 'simple_promo_image'\n });\n }}\n >\n \n \n );\n\n const bodyProps = {\n entity,\n badge: logo,\n impression: rowData.impression.resource,\n click: rowData.click.resource,\n headline: rowData.headline,\n description: rowData.description,\n ctaUrl: rowData.cta_action.resource,\n intersectionObserverRef,\n index,\n cursorData,\n viewingAthlete,\n ctaText: rowData.cta_text\n };\n\n return (\n \n \n \n );\n};\n\nSimplePromo.propTypes = {\n // feed entity could be Activity, group_activity, Post etc\n entity: PropTypes.oneOf(['FancyPromo', 'SimplePromo']).isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n clubId: PropTypes.string.isRequired,\n athleteProfileId: PropTypes.string.isRequired,\n page: pageProps.isRequired,\n cursorData: cursorDataProps.isRequired,\n feedType: feedTypeProps.isRequired,\n // range of number 0...19 representing rows returned by the server per feed load\n index: indexProps.isRequired,\n rowData: PropTypes.shape({\n headline: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n trackable_id: PropTypes.string,\n image: PropTypes.string,\n impression: PropTypes.shape({\n resource: PropTypes.string\n }),\n click: PropTypes.shape({\n resource: PropTypes.string\n }),\n background_image: PropTypes.string,\n cta_text: PropTypes.string,\n cta_action: PropTypes.shape({\n resource: PropTypes.string\n })\n }).isRequired\n};\n\nexport default SimplePromo;\n","export { default } from './SimplePromo';\n","// extracted by mini-css-extract-plugin\nexport default {\"activity-icon\":\"GroupActivity--activity-icon--mGNC2\",\"activityIcon\":\"GroupActivity--activity-icon--mGNC2\",\"headline-image\":\"GroupActivity--headline-image--QGjPU\",\"headlineImage\":\"GroupActivity--headline-image--QGjPU\",\"entry-body\":\"GroupActivity--entry-body--OlHqQ\",\"entryBody\":\"GroupActivity--entry-body--OlHqQ\",\"entry-media\":\"GroupActivity--entry-media--ehRC+\",\"entryMedia\":\"GroupActivity--entry-media--ehRC+\",\"list-entries\":\"GroupActivity--list-entries--WR0LJ\",\"listEntries\":\"GroupActivity--list-entries--WR0LJ\",\"avatar\":\"GroupActivity--avatar--jquJz\",\"child-entry\":\"GroupActivity--child-entry--0NEr-\",\"childEntry\":\"GroupActivity--child-entry--0NEr-\",\"entry-header\":\"GroupActivity--entry-header--OwbcB\",\"entryHeader\":\"GroupActivity--entry-header--OwbcB\",\"entry-footer\":\"GroupActivity--entry-footer--Q4dBv\",\"entryFooter\":\"GroupActivity--entry-footer--Q4dBv\",\"headline-text-btn\":\"GroupActivity--headline-text-btn--QRivU\",\"headlineTextBtn\":\"GroupActivity--headline-text-btn--QRivU\",\"no-achievements-and-maps-photos\":\"GroupActivity--no-achievements-and-maps-photos--SP7gl\",\"noAchievementsAndMapsPhotos\":\"GroupActivity--no-achievements-and-maps-photos--SP7gl\"};","// extracted by mini-css-extract-plugin\nexport default {\"entry-block\":\"EntryBlock--entry-block--tFaE4\",\"entryBlock\":\"EntryBlock--entry-block--tFaE4\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './entry-block.scss';\n\nconst EntryBlock = ({ children, className, ...options }) => {\n const classNames = [styles.entryBlock];\n if (className) {\n classNames.push(className);\n }\n\n return (\n
    \n {children}\n
    \n );\n};\n\nEntryBlock.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string\n};\n\nEntryBlock.defaultProps = {\n className: null\n};\n\nexport default EntryBlock;\n","export { default } from './EntryBlock';\n","import React, { useReducer, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ActivityIcon from 'components/ActivityIcon';\nimport { Markup } from 'interweave';\nimport { isEmpty, snakeCase } from 'lodash-es';\nimport Button from '@strava/ui/Button';\nimport styles from './styles.scss';\nimport useFeedAnalytics from '../../hooks/useFeedAnalytics';\nimport PhotosAndMapImage from '../shared/PhotosAndMapImage';\nimport {\n pageProps,\n viewingAthleteProps,\n cursorDataProps,\n feedTypeProps,\n indexProps,\n timeAndLocationProps,\n mapProps,\n photoListProps\n} from '../../props/feed-prop-types';\nimport FeedEntityContext from '../../state/FeedEntityContext';\nimport { init, reducer } from '../../state/feed-entity-reducer';\nimport { buildInitialState } from '../../state/feed-entity-init-state';\nimport LocationAndTime from '../shared/LocationAndTime';\nimport { getPhotoWithMaxDimension } from '../../utils';\nimport HeaderWithOwnerMetadata from '../shared/HeaderWithOwnerMetadata/HeaderWithOwnerMetadata';\nimport ActivityEntryBody from '../shared/ActivityEntryBody';\nimport MaharajAchievementCelebration from '../shared/MaharajAchievementCelebration';\nimport KudosAndComments from '../shared/KudosAndComments';\nimport CommentDeleteAlertDialog from '../shared/CommentDeleteAlertDialog';\nimport { OPEN_MODAL_OTHER_ATHLETES_TAB } from '../../state/feed-entity-actions';\nimport useFeedIntersectionObserver from '../../hooks/useFeedIntersectionObserver';\n\nimport Card from '../shared/media/Card';\nimport EntryHeader from '../shared/media/EntryHeader';\nimport Media from '../shared/media/Media';\nimport MediaLeft from '../shared/media/MediaLeft';\nimport MediaBody from '../shared/media/MediaBody';\nimport EntryMedia from '../shared/media/EntryMedia';\nimport EntryBlock from '../shared/media/EntryBlock';\nimport EntryBody from '../shared/media/EntryBody';\nimport EntryFooter from '../shared/media/EntryFooter';\n\nconst GroupActivity = ({\n viewingAthlete,\n clubId,\n page,\n entity,\n feedType,\n index,\n cursorData,\n rowData,\n athleteProfileId,\n timeAndLocation,\n switchMapAndPhoto,\n photos,\n kudosAndComments,\n reactionsEnabled,\n iconExperimentCohort,\n embedDropdownEnabled\n}) => {\n const headLineActivity = rowData.activities[0];\n\n const headlineEntityId = headLineActivity.entity_id\n ? headLineActivity.entity_id.toString()\n : null;\n\n const activityIds = useCallback(\n () => rowData.activities.map((a) => a.entity_id),\n [rowData.activities]\n );\n\n const mentionedAthletesByActivity = Object.fromEntries(\n rowData.activities.map((a) => {\n return [a.entity_id, a.description_mentioned_athlete_ids || []];\n })\n );\n\n const analyticProps = {\n page,\n entity,\n athleteProfileId,\n entityId: headlineEntityId,\n activityIds: activityIds(),\n feedType,\n index,\n viewingAthleteId: viewingAthlete.id,\n clubId,\n properties: {\n mentioned_athletes: mentionedAthletesByActivity\n }\n };\n\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n index,\n isParentFeedEntry: true\n });\n\n const { trackAnalytics } = useFeedAnalytics({\n ...analyticProps,\n inView\n });\n\n const commentsByActivityId = useCallback(() => {\n const commentsHash = {};\n if (!isEmpty(kudosAndComments)) {\n Object.entries(kudosAndComments).forEach((entry) => {\n commentsHash[entry[0].toString()] = entry[1].comments;\n });\n }\n return commentsHash;\n }, [kudosAndComments]);\n\n const [entityState, dispatch] = useReducer(\n reducer,\n buildInitialState({\n trackAnalytics,\n comments: commentsByActivityId(),\n entity: snakeCase(entity),\n parentEntityId: headlineEntityId\n }),\n init\n );\n\n const providerState = {\n entityState,\n dispatch,\n analyticProps\n };\n\n const buildHeader = () => {\n const elements = [];\n // activity icon\n if (headLineActivity.activity_class_name) {\n elements.push(\n \n
    \n \n
    \n
    \n );\n }\n // headline title, location and time\n elements.push(\n \n \n dispatch({\n type: OPEN_MODAL_OTHER_ATHLETES_TAB,\n payload: {\n element: 'group_header',\n selectedEntityId: headlineEntityId\n }\n })\n }\n >\n \n \n\n \n \n );\n return elements;\n };\n\n const headlineBannerProps = () => {\n let bannerImage;\n if (switchMapAndPhoto) {\n // replace activity map with a photo\n const headlinePhoto = headLineActivity.photos[0];\n if (headlinePhoto) {\n const photoUrl = getPhotoWithMaxDimension(headlinePhoto.urls);\n bannerImage = { url: photoUrl, alt: headlinePhoto.caption };\n } else {\n // fallback (this scenario should ideally not exist in prod)\n bannerImage = { url: '', alt: '' };\n }\n } else {\n bannerImage = rowData.map;\n }\n return {\n activityId: headLineActivity.entity_id.toString(),\n activityMap: bannerImage,\n entryType: snakeCase(entity),\n isRoutable: headLineActivity.is_routable,\n feedName: page,\n isVirtual: headLineActivity.is_virtual,\n isCommute: headLineActivity.is_commute,\n workoutType: headLineActivity.workout_type,\n privacyTagKey: headLineActivity.privacy_tag_key\n };\n };\n\n const entryBodyProps = (activity) => {\n return {\n stats: activity.stats,\n description: activity.description,\n flagged: activity.flagged,\n activityName: activity.name,\n activityId: activity.entity_id.toString(),\n ownedByCurrentAthlete: activity.owned_by_current_athlete,\n segAndBestEffortAchievements: activity.achievements,\n powerAndSegmentGoalAchievements: activity.performance_goals,\n cumulativeGoalAchievement: activity.goals,\n sportType: activity.type,\n athleteFirstName: activity.athlete_firstname\n };\n };\n\n const buildListEntries = () => {\n return rowData.activities.map((activity) => {\n const entityOwner = {\n displayImage: activity.athlete_avatar_url,\n name: activity.athlete_name,\n memberType: activity.member_type,\n profileUrl: `/athletes/${activity.athlete_id}`,\n type: 'athlete',\n id: activity.athlete_id.toString()\n };\n const noAchievementsAndMapsPhotos =\n isEmpty(activity.web_achievement) &&\n (photos && isEmpty(photos[activity.entity_id]));\n return (\n
  • \n {/* Entry Header - avatar, social actions */}\n \n\n {/* Entry Body = activity title, description, stats and achievements */}\n \n \n \n\n {/* Maharaj achievements */}\n {!isEmpty(activity.web_achievement) && (\n \n \n \n )}\n\n {/* Map and Photos */}\n {photos && !isEmpty(photos[activity.entity_id]) && (\n \n \n \n )}\n\n {/* Kudos And Comments */}\n \n \n \n
  • \n );\n });\n };\n\n return (\n \n \n {/* headline title, activity icon, time and location */}\n \n {buildHeader()}\n \n\n {/* heading map or photo */}\n \n \n \n\n {/* individual athlete activity entries */}\n \n
      {buildListEntries()}
    \n
    \n \n \n
    \n );\n};\n\nGroupActivity.propTypes = {\n // feed entity could be Activity, group_activity, Post etc\n entity: PropTypes.oneOf(['GroupActivity']).isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n clubId: PropTypes.string.isRequired,\n reactionsEnabled: PropTypes.bool.isRequired,\n iconExperimentCohort: PropTypes.string,\n page: pageProps.isRequired,\n cursorData: cursorDataProps.isRequired,\n feedType: feedTypeProps.isRequired,\n // range of number 0...19 representing rows returned by the server per feed load\n index: indexProps.isRequired,\n rowData: PropTypes.shape({\n title: PropTypes.string.isRequired,\n map: mapProps,\n activities: PropTypes.arrayOf(\n PropTypes.shape({\n activity_class_name: PropTypes.string,\n entity_id: PropTypes.number,\n activity_map: mapProps,\n is_routable: PropTypes.bool,\n is_commute: PropTypes.bool,\n is_virtual: PropTypes.bool,\n workout_type: PropTypes.string,\n privacy_tag_key: PropTypes.string,\n photos: PropTypes.arrayOf(\n PropTypes.shape({\n urls: PropTypes.shape({}).isRequired,\n caption: PropTypes.string\n })\n )\n })\n )\n }).isRequired,\n photos: PropTypes.shape({\n photoList: photoListProps\n }).isRequired,\n timeAndLocation: timeAndLocationProps.isRequired,\n athleteProfileId: PropTypes.string.isRequired,\n switchMapAndPhoto: PropTypes.bool.isRequired,\n kudosAndComments: PropTypes.shape({}).isRequired,\n embedDropdownEnabled: PropTypes.bool\n};\n\nGroupActivity.defaultProps = {\n iconExperimentCohort: null,\n embedDropdownEnabled: false\n};\n\nexport default GroupActivity;\n","export { default } from './GroupActivity';\n","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"ClubJoin--avatar--+N9qG\"};","import React, { useReducer } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Avatar from '@strava/ui/Avatar';\nimport SportsRunNormalXsmall from '@strava/icons/SportsRunNormalXsmall';\nimport SportsWaterNormalXsmall from '@strava/icons/SportsWaterNormalXsmall';\nimport SportsBikeNormalXsmall from '@strava/icons/SportsBikeNormalXsmall';\nimport I18n from 'utils/I18n';\nimport styles from './styles.scss';\nimport useFeedAnalytics from '../../hooks/useFeedAnalytics';\nimport {\n pageProps,\n viewingAthleteProps,\n cursorDataProps,\n feedTypeProps,\n indexProps\n} from '../../props/feed-prop-types';\nimport FeedEntityContext from '../../state/FeedEntityContext';\nimport { init, reducer } from '../../state/feed-entity-reducer';\nimport { buildInitialState } from '../../state/feed-entity-init-state';\nimport AthleteJoinEntry from '../shared/AthleteJoinEntry';\nimport useFeedIntersectionObserver from '../../hooks/useFeedIntersectionObserver';\n\nconst i18nPrefix = 'components.feed.clubs';\n\nconst ClubJoin = ({\n viewingAthlete,\n clubId,\n page,\n entity,\n feedType,\n index,\n cursorData,\n rowData,\n athleteProfileId\n}) => {\n const { inView, intersectionObserverRef } = useFeedIntersectionObserver({\n index,\n isParentFeedEntry: true\n });\n\n const { trackAnalytics } = useFeedAnalytics({\n page,\n entity,\n entityId: rowData.entity_id,\n athleteProfileId,\n feedType,\n index,\n viewingAthleteId: viewingAthlete.id,\n clubId,\n inView\n });\n\n const [entityState] = useReducer(\n reducer,\n buildInitialState({\n trackAnalytics\n }),\n init\n );\n\n const providerState = {\n entityState\n };\n\n const clubIcon = () => {\n switch (rowData.club_type) {\n case 'cycling':\n return ;\n case 'running':\n return ;\n case 'swimming':\n return ;\n default:\n return null;\n }\n };\n\n const avatar = (\n {\n entityState.trackAnalytics({\n action: 'click',\n element: 'profile_picture'\n });\n }}\n />\n );\n\n const bodyProps = {\n entity,\n title: rowData.title,\n badge: avatar,\n entityName: rowData.club_name,\n entityUrl: rowData.club_url,\n entityIcon: clubIcon(),\n entityMemberCount: rowData.member_count,\n isMember: rowData.membership === 'member',\n secondaryText: rowData.location,\n intersectionObserverRef,\n index,\n cursorData,\n entityId: rowData.entity_id,\n labels: {\n join: I18n.t(`${i18nPrefix}.view`),\n view: I18n.t(`${i18nPrefix}.join`),\n joined: I18n.t(`${i18nPrefix}.joined`),\n memberCountKey: `${i18nPrefix}.members`,\n error: I18n.t(`${i18nPrefix}.error`)\n }\n };\n\n return (\n \n \n \n );\n};\n\nClubJoin.propTypes = {\n // feed entity could be Activity, group_activity, Post etc\n entity: PropTypes.oneOf(['Club']).isRequired,\n viewingAthlete: viewingAthleteProps.isRequired,\n clubId: PropTypes.string.isRequired,\n page: pageProps.isRequired,\n cursorData: cursorDataProps.isRequired,\n feedType: feedTypeProps.isRequired,\n // range of number 0...19 representing rows returned by the server per feed load\n index: indexProps.isRequired,\n rowData: PropTypes.shape({\n title: PropTypes.string.isRequired,\n club_avatar: PropTypes.string.isRequired,\n club_verified: PropTypes.bool.isRequired,\n club_name: PropTypes.string.isRequired,\n entity_id: PropTypes.number.isRequired,\n entity_owner: PropTypes.string,\n club_url: PropTypes.string.isRequired,\n location: PropTypes.string.isRequired,\n member_count: PropTypes.number.isRequired,\n club_type: PropTypes.string.isRequired,\n membership: PropTypes.string\n }).isRequired,\n athleteProfileId: PropTypes.string.isRequired\n};\n\nexport default ClubJoin;\n","export { default } from './ClubJoin';\n","import {\n UPDATE_NUM_ENTRIES,\n UPDATE_IS_RESTORING_SCROLL_POSITION,\n TOGGLE_IS_ACTIVITY_VIDEO_MUTED\n} from './feed-actions';\n\nexport function reducer(state, action) {\n switch (action.type) {\n case UPDATE_NUM_ENTRIES: {\n const { numEntries } = action.payload;\n return {\n ...state,\n numEntries\n };\n }\n case UPDATE_IS_RESTORING_SCROLL_POSITION: {\n const { status } = action.payload;\n return {\n ...state,\n isRestoringScrollPosition: status\n };\n }\n case TOGGLE_IS_ACTIVITY_VIDEO_MUTED: {\n const { muted } = action.payload;\n return {\n ...state,\n isActivityVideoMuted: muted\n };\n }\n default:\n throw new Error(`${action.type} - not recognized`);\n }\n}\n\nexport default { reducer };\n","import { useState } from 'react';\nimport createNetworkingClient from 'utils/networking-client';\nimport { isDev } from 'utils/dev-utils';\n\nconst useFetchFeedEntries = ({\n clubId,\n feedType,\n currentAthleteId,\n page,\n useMockData = false,\n preFetchedEntries\n}) => {\n const [entries, setEntries] = useState(preFetchedEntries || []); // profile-feed currently pre-fetches entry data and does not use\n const [pagination, setPagination] = useState({\n maxEntries: true,\n hasMore: page !== 'profile' || useMockData // profile feed does not use pagination\n });\n const [error, setError] = useState();\n const [isLoading, setIsLoading] = useState(false);\n\n const errorState = (e) => {\n setError(e);\n // TODO [monorepo] - log error to sentry\n };\n\n const buildEndpointUrl = (cursorData) => {\n const { before, rank } = cursorData; // See README for how before and rank cursor works\n\n let url;\n switch (page) {\n case 'dashboard':\n url = `/dashboard/feed`;\n break;\n case 'club':\n url = `/clubs/${clubId}/feed`;\n break;\n case 'profile':\n // profile feed entries are pre-fetched since it is still reloaded on interval graph filters and is not paginated\n return null;\n default:\n return null;\n }\n\n url = url.concat(`?feed_type=${feedType}`);\n url = currentAthleteId\n ? url.concat(`&athlete_id=${currentAthleteId}`)\n : url;\n url = clubId ? url.concat(`&club_id=${clubId}`) : url;\n url = before ? url.concat(`&before=${before}`) : url; // See README for how before and rank cursor works\n url = rank ? url.concat(`&cursor=${rank}`) : url;\n\n return url;\n };\n\n const timeout = (ms) => {\n return new Promise((resolve) => setTimeout(resolve, ms));\n };\n\n const loadMockData = async () => {\n const delay = 1000;\n const hasMore = true; // change this to false to stop infinite loading (only the first page will be loaded)\n const maxEntries = true;\n\n await timeout(delay);\n setIsLoading(false);\n import('../dev/feed-mock-data.json').then((mockData) => {\n setEntries((current) => [...current, ...mockData.entries]);\n setPagination({\n maxEntries,\n hasMore\n });\n });\n };\n\n const loadEntries = async ({ cursorData }) => {\n setIsLoading(true);\n if (useMockData && isDev()) {\n // only load mocked data in development mode to avoid prod data from being manipulated\n // by developers (eg reporting photo, deleting comment)\n await loadMockData();\n } else {\n const url = buildEndpointUrl(cursorData);\n if (url) {\n try {\n await createNetworkingClient()\n .get(url, { params: {} })\n .then((response) => {\n if (response && response.status === 200) {\n const { data } = response;\n const fetchedEntries = data.entries;\n setEntries((current) => [...current, ...fetchedEntries]);\n setPagination({\n maxEntries: data.pagination.maxEntries,\n hasMore:\n data.pagination.hasMore && fetchedEntries.length !== 0 // show limit message when no entries were fetched\n });\n setIsLoading(false);\n } else {\n // responses other than 200\n errorState(response.error);\n }\n })\n .catch((err) => {\n errorState(err);\n });\n } catch (err) {\n errorState(err);\n }\n } else {\n errorState(new Error(`endpoint for page - '${page}' is not defined`));\n }\n }\n };\n\n return { isLoading, entries, pagination, error, loadEntries };\n};\n\nexport default useFetchFeedEntries;\n","import { useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport queryString from 'query-string';\nimport { isNil } from 'lodash-es';\n\n/**\n * Persists the scroll position for the feed into session storage so that the athlete can be\n * positioned on the last seen entry when they navigate away from the feed and back using the\n * browsers back button.\n */\nconst useFeedScrollRestoration = ({\n feedType,\n page,\n numEntries // number of entries to be fetched when the athlete navigates back to the feed\n}) => {\n // unique key since feed component can be mounted on different pages.\n // A page which might also have different variations of the feed within itself.\n const key = `${page}-${feedType}-scroll-top`;\n\n // browser history since this hook is used within 's BrowserRouter component\n const history = useHistory();\n\n /**\n * Saves the current scroll position and pushes a new url to the history stack.\n */\n const saveScrollPosition = useCallback(() => {\n if (isNil(sessionStorage)) {\n return;\n }\n // the scroll position is stored in sessionStorage vs localStorage since it is\n // cleared when the tab is closed.\n sessionStorage.setItem(key, window.scrollY);\n\n // preserve all current search params eg. dashboard?feed_type=following\n const searchParams = queryString.parse(window.location.search);\n // add new search param to the url eg. dashboard?feed_type=following&num_entries = 10\n searchParams.num_entries = numEntries;\n\n // #push - see https://v5.reactrouter.com/web/api/history\n history.push({\n search: queryString.stringify(searchParams)\n });\n }, [history, key, numEntries]);\n\n /**\n * Clears scroll position and removes num_entries search param from the browsers history stack\n */\n const clearScrollPosition = useCallback(() => {\n if (isNil(sessionStorage)) {\n return;\n }\n sessionStorage.removeItem(key);\n\n const searchParams = queryString.parse(window.location.search);\n delete searchParams.num_entries;\n history.push({\n search: queryString.stringify(searchParams)\n });\n }, [history, key]);\n\n const getScrollPosition = useCallback(() => {\n if (isNil(sessionStorage)) {\n return 0;\n }\n const value = window.sessionStorage.getItem(key);\n return value ? Number(value) : 0;\n }, [key]);\n\n return { getScrollPosition, saveScrollPosition, clearScrollPosition };\n};\n\nexport default useFeedScrollRestoration;\n","import React, { useReducer, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport { Markup } from 'interweave';\nimport Spinner from '@strava/ui/Spinner';\nimport { minBy, snakeCase } from 'lodash-es';\nimport useInfiniteScroll from 'react-infinite-scroll-hook';\nimport { devLog } from 'utils/dev-utils';\nimport styles from './feed.scss';\n\nimport Activity from './components/Activity';\nimport Post from './components/Post';\nimport FancyPromo from './components/FancyPromo';\nimport PerformanceGoalCreated from './components/PerformanceGoalCreated';\nimport ChallengeJoin from './components/ChallengeJoin';\nimport SimplePromo from './components/SimplePromo';\nimport GroupActivity from './components/GroupActivity';\nimport ClubJoin from './components/ClubJoin';\n\nimport { reducer } from './state/feed-reducer';\n\nimport { feedTypeProps, pageProps } from './props/feed-prop-types';\nimport useFetchFeedEntries from './hooks/useFetchFeedEntries';\nimport useFeedScrollRestoration from './hooks/useFeedScrollRestoration';\nimport FeedContext from './state/FeedContext';\nimport { UPDATE_IS_RESTORING_SCROLL_POSITION } from './state/feed-actions';\n\nimport {\n ACTIVITY,\n CHALLENGE,\n CLUB,\n FANCY_PROMO,\n GROUP_ACTIVITY,\n PERFORMANCE_GOAL_CREATED,\n POST,\n SIMPLE_PROMO\n} from './constants/FeedEntryTypes';\n\n// Cursor pagination is key for the feed so this function has been deliberately\n// exported so that it can be unit tested separately.\nexport const computeMinCursorData = (entries) => {\n return {\n minBeforeEntry: minBy(entries, (e) => {\n return e.cursorData.updated_at;\n }),\n minRankEntry: minBy(entries, (e) => {\n return e.cursorData.rank;\n })\n };\n};\n\nconst Feed = ({\n currentAthleteId,\n page,\n feedType,\n athleteProfileId,\n clubId,\n useMockData,\n reactionsEnabled,\n iconExperimentCohort,\n preFetchedEntries,\n locale,\n isAutoplayEnabled\n}) => {\n const {\n isLoading,\n error,\n entries,\n pagination,\n loadEntries\n } = useFetchFeedEntries({\n currentAthleteId,\n clubId,\n feedType,\n page,\n useMockData,\n preFetchedEntries\n });\n\n const [entityState, dispatch] = useReducer(reducer, {\n numEntries: 0,\n scrollTop: 0,\n page,\n feedType,\n isRestoringScrollPosition: false,\n isActivityVideoMuted: true\n });\n\n const {\n saveScrollPosition,\n getScrollPosition,\n clearScrollPosition\n } = useFeedScrollRestoration({ ...entityState });\n\n const providerState = {\n entityState,\n dispatch\n };\n\n useEffect(() => {\n // restore feed position if navigation is through the browser's history traversal operation\n if (performance) {\n const navigationEntries = performance.getEntriesByType('navigation');\n if (navigationEntries.length) {\n if (navigationEntries[0].type === 'back_forward') {\n const scrollPosition = getScrollPosition();\n if (scrollPosition) {\n devLog(`[Feed] restoring scroll position to ${scrollPosition}`);\n\n dispatch({\n type: UPDATE_IS_RESTORING_SCROLL_POSITION,\n payload: { status: true }\n });\n window.scrollTo(0, scrollPosition);\n clearScrollPosition();\n dispatch({\n type: UPDATE_IS_RESTORING_SCROLL_POSITION,\n payload: { status: false }\n });\n }\n }\n }\n } else {\n // TODO - log error or warning in sentry on the monorepo\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const { maxEntries, hasMore } = pagination;\n const i18nPrefix = 'components.feed';\n\n // return the proper feed card that can be rendered\n const renderEntry = (params) => {\n const { key, index } = params;\n const entryProps = Object.assign(entries[index], {\n athleteProfileId, // for analytics - when viewing feed on athlete page\n clubId, // for analytics - when viewing feed on club details page\n index,\n page,\n reactionsEnabled,\n iconExperimentCohort,\n feedType,\n key,\n locale,\n isAutoplayEnabled\n });\n\n let entry;\n const entityName = snakeCase(entryProps.entity);\n switch (entityName) {\n case ACTIVITY:\n entry = ;\n break;\n case POST:\n entry = ;\n break;\n case FANCY_PROMO:\n entry = ;\n break;\n case PERFORMANCE_GOAL_CREATED:\n entry = ;\n break;\n case CHALLENGE:\n entry = ;\n break;\n case SIMPLE_PROMO:\n entry = ;\n break;\n case GROUP_ACTIVITY:\n entry = ;\n break;\n case CLUB:\n entry = ;\n break;\n default:\n devLog(`Could not translate props into entry - ${entityName}`);\n entry =
    N/A RF
    ; // TODO: Replace this with sentry error logging in monorepo\n }\n return (\n saveScrollPosition()}\n onKeyDown={() => saveScrollPosition()}\n role=\"button\"\n tabIndex={0}\n className={styles.entryContainer}\n key={key}\n >\n {entry}\n \n );\n };\n\n const endMessage = () => {\n if (page === 'dashboard' && !isLoading) {\n const content = maxEntries\n ? `${i18nPrefix}.no_more.limit`\n : `${i18nPrefix}.no_more.days`;\n return (\n
    \n {I18n.t(content)}\n
    \n \n
    \n );\n }\n return null;\n };\n\n const loader = () => {\n return (\n
    \n
    \n {error ? I18n.t(`${i18nPrefix}.error_message`) : }\n
    \n
    \n );\n };\n\n const loadMoreRows = () => {\n let minBeforeEntry;\n let minRankEntry;\n if (entries.length > 0) {\n ({ minBeforeEntry, minRankEntry } = computeMinCursorData(entries));\n }\n const before = minBeforeEntry ? minBeforeEntry.cursorData.updated_at : null;\n const rank = minRankEntry ? minRankEntry.cursorData.rank : null;\n devLog(`[Feed#loadMoreRows] before: ${before} rank: ${rank}`);\n loadEntries({ cursorData: { before, rank } });\n };\n\n const [sentryRef] = useInfiniteScroll({\n loading: isLoading,\n hasNextPage: hasMore,\n onLoadMore: loadMoreRows,\n // When there is an error, we stop infinite loading.\n // It can be reactivated by setting \"error\" state as undefined.\n disabled: !!error,\n // `rootMargin` is passed to `IntersectionObserver`.\n // We can use it to trigger 'onLoadMore' when the sentry comes near to become\n // visible, instead of becoming fully visible on the screen.\n rootMargin: '0px 0px 1000px 0px'\n });\n\n return (\n \n {entries.map((_, index) => renderEntry({ key: index, index }))}\n {!hasMore && endMessage()}\n\n {(isLoading || hasMore) &&
    {loader()}
    }\n
    \n );\n};\n\nFeed.propTypes = {\n currentAthleteId: PropTypes.number.isRequired,\n page: pageProps.isRequired,\n feedType: feedTypeProps.isRequired,\n athleteProfileId: PropTypes.string.isRequired,\n clubId: PropTypes.string.isRequired,\n useMockData: PropTypes.bool.isRequired,\n reactionsEnabled: PropTypes.bool.isRequired,\n iconExperimentCohort: PropTypes.string,\n preFetchedEntries: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n locale: PropTypes.string.isRequired,\n isAutoplayEnabled: PropTypes.bool.isRequired\n};\n\nFeed.defaultProps = {\n iconExperimentCohort: null\n};\n\nexport default Feed;\n","import React from 'react';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport Feed from './Feed';\n\nconst FeedRouter = (props) => {\n return (\n \n \n \n );\n};\n\nexport default FeedRouter;\n","export { default } from './FeedRouter';\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"media--container--mMuGD\",\"entry\":\"media--entry--nflNG\",\"entry-block\":\"media--entry-block--Orvh8\",\"entryBlock\":\"media--entry-block--Orvh8\",\"entry-header\":\"media--entry-header--31079\",\"entryHeader\":\"media--entry-header--31079\",\"media\":\"media--media--srMNh\",\"media-left\":\"media--media-left--naNZ9\",\"mediaLeft\":\"media--media-left--naNZ9\",\"media-actions\":\"media--media-actions--e7uE8\",\"mediaActions\":\"media--media-actions--e7uE8\",\"media-body\":\"media--media-body--2+Kk1\",\"mediaBody\":\"media--media-body--2+Kk1\",\"entry-body\":\"media--entry-body--G40Sh\",\"entryBody\":\"media--entry-body--G40Sh\",\"entry-footer\":\"media--entry-footer--MzUvu\",\"entryFooter\":\"media--entry-footer--MzUvu\",\"entry-media\":\"media--entry-media--Zty7u\",\"entryMedia\":\"media--entry-media--Zty7u\"};","import React, { useRef } from 'react';\nimport Card from './Card';\nimport EntryHeader from './EntryHeader';\nimport Media from './Media';\nimport MediaLeft from './MediaLeft';\nimport MediaActions from './MediaActions';\nimport MediaBody from './MediaBody';\nimport styles from './feed-media-showcase.scss';\nimport EntryBlock from './EntryBlock';\nimport EntryBody from './EntryBody';\nimport EntryFooter from './EntryFooter';\nimport EntryMedia from './EntryMedia/EntryMedia';\n\nconst FeedMediaShowCase = () => {\n const ref = useRef();\n\n const cursorData = {\n updated_at: 2,\n rank: 1\n };\n\n return (\n
    \n
    \n \n EntryHeader | Media (default)\n \n Media\n \n MediaLeft\n MediaBody\n \n MediaActions\n \n \n \n EntryBlock\n \n
      \n
    • \n \n EntryHeader\n \n
    • \n
    • \n \n EntryHeader\n \n
    • \n
    \n
    \n EntryBody (default)\n \n \n MediaBody\n \n \n EntryBody inset\n \n \n MediaBody\n \n \n
    \n
    \n\n
    \n \n EntryHeader | Media - centered\n \n \n MediaLeft\n MediaBody\n \n MediaActions\n \n \n \n \n
    \n\n
    \n \n EntryHeader | Media | MediaBody only\n \n \n MediaBody\n \n \n \n
    \n\n
    \n \n EntryFooter | default\n \n Media\n \n EntryFooter | inset (true)\n \n Media\n \n \n
    \n\n
    \n \n EntryMedia | default\n \n Media\n \n EntryMedia | inset (true)\n \n Media\n \n \n
    \n
    \n );\n};\n\nexport default FeedMediaShowCase;\n","// Pages that use the feed pack also use stuff like MentionableComments\n// So, we will import the main 'strava_with_framework' that imports\n// and registers that component.\nimport './strava_with_framework';\n\nimport ReactComponentMounter from '../utils/react-component-mounter';\n\n// Feed specific components:\nimport FeedRouter from '../components/Feed';\nimport FeedMediaShowCase from '../components/Feed/components/shared/media/FeedMediaShowCase';\nimport Activity from '../components/Feed/components/Activity';\nimport Post from '../components/Feed/components/Post';\nimport ChallengeJoin from '../components/Feed/components/ChallengeJoin';\nimport ClubJoin from '../components/Feed/components/ClubJoin';\nimport FancyPromo from '../components/Feed/components/FancyPromo';\nimport SimplePromo from '../components/Feed/components/SimplePromo';\nimport GroupActivity from '../components/Feed/components/GroupActivity';\nimport PerformanceGoalCreated from '../components/Feed/components/PerformanceGoalCreated';\n\n// Modules from \nimport EmailVerificationCTA from '../components/EmailVerificationCTA';\nimport NotificationEmailVerificationCTA from '../components/EmailVerificationCTA/placements/NotificationEmailVerificationCTA';\n\nReactComponentMounter.register({\n Activity,\n ChallengeJoin,\n ClubJoin,\n EmailVerificationCTA,\n FancyPromo,\n FeedRouter,\n FeedMediaShowCase,\n GroupActivity,\n NotificationEmailVerificationCTA,\n PerformanceGoalCreated,\n Post,\n SimplePromo\n});\n","/* (ignored) */"],"names":["React","I18n","createNetworkingClient","Modal","styles","I18nCloseModal","I18nHeadline","I18nPrompt","I18nResendEmail","I18nWrongEmail","UrlResendVerificationEmail","UrlChangeEmail","EmailVerificationCTA","state","modalIsOpen","resendEmailInProgress","resendEmail","setState","post","then","catch","closeModal","componentDidMount","props","resendOnMount","render","children","className","email","optionalExplanation","cta","t","modal","dialog","closeButton","confirmEmailIcon","promptText","t_html","pending_email","class_name","emailText","wrongEmailText","email_settings_path","Component","defaultProps","NotificationEmailVerificationCTA","iconURL","text","wrapper","FeedContext","createContext","displayName","useFeedContext","useContext","FeedEntityContext","useFeedEntityContext","UPDATE_NUM_ENTRIES","UPDATE_IS_RESTORING_SCROLL_POSITION","TOGGLE_IS_ACTIVITY_VIDEO_MUTED","ACTIVITY","POST","FANCY_PROMO","PERFORMANCE_GOAL_CREATED","CHALLENGE","SIMPLE_PROMO","GROUP_ACTIVITY","CLUB","PropTypes","cursorDataProps","shape","updated_at","number","isRequired","rank","timeAndLocationProps","displayDate","string","displayDateAtTime","location","timestampFormat","entityOwnerProps","displayImage","memberType","name","profileUrl","type","id","entityAthleteProps","avatarUrl","athleteId","athleteName","sex","firstName","indexProps","cumulativeGoalAchievementProps","amount","powerAndSegmentGoalAchievementsProps","arrayOf","url","description","segAndBestEffortAchievementsProps","id_string","elapsed_time","featured","bool","hidden","distance_based_best_effort","statsProps","mapProps","alt","photoProps","large","caption_escaped","photo_id","viewing_athlete_id","owner_id","editable","viewingAthleteProps","dateOfBirth","pageProps","oneOf","feedTypeProps","analyticsContextProps","track","func","category","page","photoListProps","commentsProps","comment_id","deletable","reportable","quarantinable","athlete","avatar_url","member_type","highlightedKudosersProps","destination_url","display_name","show_name","kudosAndCommentsProps","canKudo","kudosCount","highlightedKudosers","comments","commentsEnabled","reactionsEnabled","entitiesWithKudosAndComments","Markup","PowerAndSegmentGoalAchievements","powerAndSegmentGoalAchievements","activityId","length","achievementsLink","powerAndSegmentGoalAchievementsMore","more_goals_link","count","default","FeaturedBestEffortAchievements","segAndBestEffortAchievements","filter","elem","slice","map","achievement","entry","push","activity_id","chunk","Stats","Stat","ActivityStats","stats","stat","value","statLabel","OPEN_MODAL_COMMENTS_TAB","OPEN_MODAL_KUDOS_TAB","OPEN_MODAL_ACHIEVEMENTS_TAB","OPEN_MODAL_OTHER_ATHLETES_TAB","CLOSE_MODAL","OPEN_COMMENT_REACTION_LIST","CLOSE_COMMENT_REACTION_LIST","ADD_KUDO","DELETE_COMMENT_CANCEL","DELETE_COMMENT_COMPLETE","DELETE_COMMENT_START","ADD_COMMENT_START","ADD_COMMENT_COMPLETE","ADD_COMMENT_FAILED","ADD_COMMENT_REACTION","SET_AUTOPLAY_VIDEO","SET_AUTOPLAY_VIDEO_IN_VIEW","SvgAchievementsTrophyNormalSmall","Button","Cldr","AchievementCount","entityId","dispatch","mediaRight","textRight","statSubtext","statText","trophyCountBtn","achievementsTrophy","payload","element","selectedEntityId","appIconWrapper","iconWrapper","formatDecimal","useState","ActionsFlagHighlightedXsmall","colors","ELLIPSIS","MAX_LENGTH","ActivityTextBody","activityName","ownedByCurrentAthlete","flagged","entityState","readMore","setReadMore","isExpandable","splitDescription","cleanDescription","trim","firstSection","substr","Math","min","lastIndexOf","handleMentionClick","e","target","href","match","trackAnalytics","action","properties","clicked_athlete_id","addMentionClickTracking","nodeName","innerText","undefined","content","join","element_source","BRAND_DANGER","descriptionBody","descriptionReadMore","ACTIVITY_LIST","CumulativeGoalAchievement","cumulativeGoalAchievement","sportType","athleteFirstName","displayKey","prefix","lowercaseType","toLowerCase","includes","Media","centered","options","classNames","media","mediaCenter","MediaBody","mediaBody","isEmpty","FeaturedSegmentEffortAndBestEffortAchievements","ActivityEntryBody","activityEntryContainer","achievementsSummary","anchor_container_click_data","useCallback","useEffect","useRef","isNil","snakeCase","trackV2","devLog","useFeedAnalytics","entity","athleteProfileId","feedType","index","clubId","viewingAthleteId","activityIds","inView","isRestoringScrollPosition","parentLevelProperties","entityName","inGroup","source","hash","in_group","club_id","profile_athlete","post_id","challenge_id","headline_activity_id","group_activity_ids","trackable_id","performance_goal_id","childElementFields","feedAnalyticsCommonFields","isFirstRenderRef","current","client","cache","useFeedRitmoCapping","errorState","updateRitmo","elementId","path","promo","Error","key","response","status","error","getPhotoWithMaxDimension","photoUrlHash","Object","keys","reduce","a","b","buildTimeAgoTimestamp","timestamp","timestampParsed","DOMParser","parseFromString","body","querySelector","getAttribute","timeToReplace","innerHTML","timeAgo","timespanFormatter","constructor","timeago","Date","parse","replace","roundUpNearest10","num","n","ceil","useInView","useFeedIntersectionObserver","isParentFeedEntry","threshold","intersectionObserverRef","dispatchFeed","numEntries","ActivityDistanceNormalXsmall","MapVisPrompt","hideAnywhereSetting","paths","experimentVar","units","measurementUnits","i18nPrefix","analyticProps","analyticsProperties","hide_anywhere","promptImpression","onButtonClick","window","hideAnywhere","mapVisPrompt","button","ClampLines","AchievementCelebration","subtitle","image","imageCaption","image_caption","achievementCelebration","celebrationBadge","celebrationText","celebrationTitle","celebrationSubtitle","tag","label","activityMapTag","buildActivityMapTags","isVirtual","isCommute","workoutType","privacyTagKey","tags","tagRace","Map","activityMap","isRoutable","entryTypeClassName","isGroupActivity","elements","handleRouteButtonClick","activityMapCreateRoute","btn","btnSm","textBold","activityMapTags","entryImage","entryImageWrapper","videojs","cx","Poc","lazy","Controls","VideoItem","onClick","onReady","playOnHover","isAutoPlayItem","isActivityVideoMuted","isAutoplayEnabled","video","setVideo","hoverTimerRef","play","clearTimeout","setTimeout","getAllPlayers","p","paused","forEach","pause","base","video_id","has_description","activity_athlete_id","duration","player","controls","loop","muted","useMemo","StravaMediaLightbox","PhotoGrid","photoList","maxNumPhotosToShow","singleImageHighlighted","isOpen","photoIndex","params","setParams","orderIndex","media_type","image_id","order","photoCount","showPhotoLightbox","firstVideoId","filtered","snowplowMediaClickEvent","isImage","openLightBox","onMediaClick","data","entity_id","entity_type","element_entity_type","element_entity_id","photoGrid","photoGridElements","highlightedImageForPosts","photo","photoId","caption","autoPlayVideoInView","autoPlayVideo","showEnhancedTag","enhanced_photo","enhancedTag","extraPhotos","entryMoreImages","moreTextWrapper","moreText","reject","ACTIVITY_MAX_PHOTO_COUNT","GROUP_ACTIVITY_MAX_PHOTO_COUNT","POST_MAX_PHOTO_COUNT","imageEntriesContainerClass","entryType","totalNumEntryImages","showMap","images1Up","images2Up","images3Up","images4Up","images5Up","images6Up","PhotosAndMapImage","feedName","isPost","showPhotoGrid","showPost","groupActivityMap","postImage","imagesContainerClass","containerClassNames","feedImageHeight","athleteProfile","club","photosAndMapImageWrapper","entryImages","MentionsInput","Mention","Avatar","setMentionInputStyles","sortAndFilter","fetchAthletes","StravaMentionsInput","placeHolder","suggestionLimit","autoFocus","onInputChange","clearInputToggle","inputHeight","mentionableAthletes","setMentionableAthletes","inputValue","setInputValue","firstRender","mentionInputStyles","isSubscribed","mentionableFollowers","nameFromId","find","parseInt","display","filteredMentionableAthletes","query","results","indexOf","fetchEntityAthletes","mentionableEntityOwners","concat","renderSuggestion","avatarStyle","marginRight","suggestion","profile","metaContainer","mentions","mentions__highlighter","highlighter","mentions__suggestions","suggestions","mentions__suggestions__list","suggestionList","event","newValue","newPlainTextValue","mentionedAthlete","MentionableCommentForm","viewingAthlete","buttonText","parent","comment","setComment","setClearInputToggle","placeHolderProp","buttonTextProp","entityEndpoint","parseComment","formattedTokens","token","handleSubmitCommentComplete","commentEntry","handleSubmitCommentFail","submitComment","preventDefault","handleChange","mentionableCommentWrapper","avatar","postCommentBtn","isSubmittingComment","FistBumpNoDashesIconUnfilled","color","size","O50_STRAVA_ORANGE","FistBumpWithDashesIconFilled","FistBumpWithDashesIconUnfilled","HeartIconUnfilledSVG","HeartIconFilledSVG","HeartIconUnfilled","HeartIconFilled","CommentReactionIcon","canCommentReactStatus","iconExperimentCohort","N70_GRAVEL","reactionIcon","CommentReaction","hasReacted","commentReactionCount","commentId","setCanCommentReactStatus","reactionCount","setReactionCount","onClickViewCommentReactionList","postCommentReaction","prevReactionCount","commentReactionContainer","commentReactionButton","commentReactCounter","viewCommentReactionsButton","AvatarAndMeta","athleteMetaData","rowContent","showCommentReactions","entryId","activity_link","spacer","activityLink","avatarAndMeta","meta","kudosUpdateEndpoint","Spinner","ModalWithTabs","ModalTabs","ModalTabList","ModalTab","ModalTabPanels","ModalTabPanel","LinkButton","AchievementsMedalPrSmall","AchievementsMedal02Small","AchievementsMedal03Small","AchievementsBadgeHighlightedSmall","AchievementsKomHighlightedSmall","AchievementsTrophy02Small","AchievementsTrophy03Small","AchievementsTrophy04Small","AchievementsTrophy05Small","AchievementsTrophy06Small","AchievementsTrophy07Small","AchievementsTrophy08Small","AchievementsTrophy09Small","AchievementsTrophy10Small","SvgActionsArrowLeftNormalSmall","CommentReactionList","KudosCommentsAndAchievementsModal","title","hasOtherAthletes","entityOwner","hasAchievements","correctedTabIndex","tabIndexFromReducer","selectedTabIndex","setIndex","athletes","groupedActivityData","setGroupedActivityData","hover","setHover","isOwner","kudosable","kudoData","setKudosData","commentReactionListData","setCommentReactionListData","isLoading","setIsLoading","followRequestApprovalStatusMap","setAthleteFollowRequestMap","isViewingCommentReactionsList","isViewingCommentReactionList","setIsViewingReactionList","fetchKudoList","get","fetchCommentReactionList","selectedCommentId","selectedComment","reaction_count","isOtherAthletesTab","isKudosTab","fetchOtherAthletes","toggleHover","prev","postKudo","viewAthleteKudoData","is_following","isRecentlyFollowedAthlete","kudoDataRow","requestApprovalStatus","isRecentlyRequestedAthlete","onKudoDataRowButtonClick","kudoserId","delete","followId","prevState","assign","follow","following_id","follower_id","approved","follow_id","leaveAthleteGroup","processFollowButtonAttributes","variant","is_private","buildFollowButton","followButtonAttributes","followBtn","spinner","entriesFromFetchedData","dataList","components","buildKudoList","kudoAllowed","kudoEntries","noResults","footer","footerActionBtn","buildCommentReactionList","buildOtherAthleteList","groupAthletesEntries","deleteComment","buildCommentList","thread","reactions_summary","has_reacted","timeAgoTimestamp","timestampAndCommentActions","commentActions","actionLinkButton","commentsForm","legacySpriteToStravaUiIcon","sprite","SILVER","GOLD","BRONZE","buildAchievementList","achievements","achievementIcon","achievementRow","segmentName","elapsedTime","onTabChange","selectedTab","modalTitle","kudosTabTitle","commentsTabTitle","acheivementsTabTitle","otherAthletesTabTitle","commentReactionListBackButton","commentReactionListBackButtonChildren","dismissModal","tabContent","CommentsThread","onSeeMoreCommentsClick","numComments","totalComments","max","mediaLeft","nameAndTime","reportAndDeleteButtons","commentText","moreCommentsButton","MediaActions","mediaActions","AvatarGroup","SvgActionsKudoHighlightedXsmall","SvgActionsKudoNormalXsmall","SvgActionsCommentNormalXsmall","KudosAndComments","kudosAndComments","entityTitle","openCommentsModalOnIconClick","showHairlineOnTop","initialLoadHighlightedKudosers","canKudoStatus","setCanKudoStatus","currentKudoCount","setCurrentKudoCount","showForm","setShowForm","hasKudoed","setHasKudoed","setHighlightedKudosers","commentIconButtonTitle","showKudosCallToAction","kudoIconButtonTitle","handleAvatarGroupClick","showHighlightedKudoers","kudosFacePile","kudoer","handleClickKudoFail","onClickKudoSuccessful","highlightedKudoser","onClickKudo","kudoPosted","onClickComment","kudosAndCommentsCtaText","countButton","countWrapper","kudosAndCommentsIconButtons","socialButton","kudoed","mentionableCommentsForm","hairline","entryComments","openKudosCommentModal","init","parentEntityId","newComment","openCommentDeleteDialog","reducer","entityComments","commentReactionPosted","ModalBody","ModalActions","CommentDeleteAlertDialog","close","buildInitialState","overrides","showDate","showLocation","Subtitle","subtitleWrapper","Dropdown","DropdownItem","DropdownLink","EmbedModal","EntryActions","shareable","twitterUrl","embedDropdownEnabled","isEmbedModalOpen","setIsEmbedModalOpen","toggleEmbedModalOpen","facebookShareUrl","activityUrl","openShareWindow","left","screen","width","top","height","open","entryActions","dropdown","dropdownOption","EntryHeader","child","entryHeader","childEntry","MediaLeft","bigBadge","smallBadge","ActionsStarHighlightedXsmall","LocationAndTime","SocialShareDropdownActions","HeaderWithOwnerMetadata","timeAndLocation","isBoosted","iconContainer","groupActivityAvatar","SvgActionsLockClosedNormalXsmall","SvgNavigationGroupNormalXsmall","VisibilityMessage","visibility","icon","message","visibilitySection","visibilityIcon","HiddenStatIndicator","hiddenStatIndicatorString","showVisibilityMessage","sectionStyle","statIndicatorSection","iconStyle","statIndicatorIcon","forwardRef","Card","ref","cursorData","feedEntry","card","EntryBody","inset","impression","entryBody","entryInset","EntryMedia","entryMedia","EntryFooter","entryFooter","useReducer","ActivityIcon","MaharajAchievementCelebration","Activity","activity","descriptionMentionedAthleteIds","maharajAchievement","mapAndPhotos","mentioned_athletes","providerState","translatedSportType","buildEntryBody","entryIcon","activityIcon","showHiddenStatIndicator","pageHeight","innerHeight","document","documentElement","clientHeight","rootMargin","inViewAutoPlayRef","inViewAutoPlay","observerRes","node","buildEntryFooter","videoIcon","Post","sharedContents","path_prefix","originator_id","originator_avatar_url","originator_name","parent_type","entryExpandedLink","videoThumbnailIcon","typeClass","charAt","toUpperCase","sharedContentContainer","sharedContent","thumbnail_url","sharedContentImage","sharedContentVideoIcon","sharedContentThumbnail","sharedContentText","sharedContentHeader","sharedContentDescription","sharedContentDomain","hostname","bodyStyle","postBody","summary","postBodyTitle","entryTitle","highlightPhoto","primary_photo","urls","photoUrl","unique_id","toString","is_boosted","is_sharable","twitter_url","can_kudo","kudos_count","highlighted_kudosers","comments_enabled","BackgroundHeaderImage","backgroundImage","entryMediaContainer","backgroundHeaderImage","PromoEntry","badge","click","headline","ctaText","ctaUrl","baseUrl","headers","titleText","details","ctaBtn","FancyPromo","rowData","logo","cta_action","resource","cta_text","bodyProps","background_image","PerformanceGoalSingleView","goalEntries","goalEntry","joinable","athlete_id","athlete_avatar_url","athlete_display_name","athlete_member_type","athlete_feed_entry_id","goal_path","GoalEntry","iconSrc","iconUrl","iconAlt","PerformanceGoalMultiView","showAllEntries","setShowAllEntries","firstGoalEntry","nextFiveGoalEntries","restOfGoalEntries","every","goal_type","joinBtn","goal_id","show","PerformanceGoalCreated","goal_entries","types","DOB_UPDATE_FAILED","DOB_UPDATE_REQUESTED","DOB_UPDATE_SUCCESS","MODAL_CHANGE_DATE","MODAL_CLOSE","gatingModal","requestInProgress","isTooYoung","currentAthlete","ageGate","dateSelected","date","AgeGateModal","actions","FeedEntryAgeGate","minimumAge","joinUrl","joinMethod","redirectUrl","onUpdateDOB","locale","joinChallengeFn","method","gatingConditions","handleModalClose","handleDateSelectionChange","handleDateUpdateInProgress","handleDateUpdateFailure","handleDateUpdateSuccess","serializedDate","getFullYear","getMonth","getDate","d","toDateString","setFullYear","statefulAthlete","AthleteJoinEntry","entityUrl","entityIcon","entityMemberCount","isMember","secondaryText","labels","isClub","buttonLabelAndVariant","view","memberCountLabel","memberCountKey","disabled","openAgeGateModal","ageGateModalProps","entryState","setEntryState","Accept","joined","ageGateAndJoinChallenge","youngestDob","onJoinButtonClick","clickGroupHeader","clickTitleText","entryOwner","entryText","getIcon","ChallengeJoin","challenge_url","challenge_name","entry_logo_url","displayed_icon","participant_count","challenge_joinable","challenge_ended","days_left","gating_conditions","minimum_age","join_method","join_url","virtual_race","join_button_text","SimplePromo","EntryBlock","entryBlock","GroupActivity","switchMapAndPhoto","photos","headLineActivity","activities","headlineEntityId","mentionedAthletesByActivity","fromEntries","description_mentioned_athlete_ids","commentsByActivityId","commentsHash","entries","buildHeader","activity_class_name","activityIconWrapper","headlineTextBtn","headlineBannerProps","bannerImage","headlinePhoto","is_routable","is_virtual","is_commute","workout_type","privacy_tag_key","entryBodyProps","owned_by_current_athlete","performance_goals","goals","athlete_firstname","buildListEntries","athlete_name","noAchievementsAndMapsPhotos","web_achievement","headlineImage","listEntries","SportsRunNormalXsmall","SportsWaterNormalXsmall","SportsBikeNormalXsmall","ClubJoin","clubIcon","club_type","club_avatar","club_name","club_url","club_verified","member_count","membership","isDev","useFetchFeedEntries","currentAthleteId","useMockData","preFetchedEntries","setEntries","maxEntries","hasMore","pagination","setPagination","setError","buildEndpointUrl","before","timeout","ms","Promise","resolve","loadMockData","delay","mockData","loadEntries","fetchedEntries","err","useHistory","queryString","useFeedScrollRestoration","history","saveScrollPosition","sessionStorage","setItem","scrollY","searchParams","search","num_entries","stringify","clearScrollPosition","removeItem","getScrollPosition","getItem","Number","minBy","useInfiniteScroll","computeMinCursorData","minBeforeEntry","minRankEntry","Feed","scrollTop","performance","navigationEntries","getEntriesByType","scrollPosition","scrollTo","renderEntry","entryProps","entryContainer","endMessage","feedPagination","noEntries","loader","loadMoreRows","loading","hasNextPage","onLoadMore","sentryRef","_","BrowserRouter","Router","FeedRouter","FeedMediaShowCase","container","ReactComponentMounter","register"],"sourceRoot":""}