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