diff --git a/packages/ui/src/components/user/UserPageHeader.vue b/packages/ui/src/components/user/UserPageHeader.vue index c07c81da0a3..ea5b013c2a1 100644 --- a/packages/ui/src/components/user/UserPageHeader.vue +++ b/packages/ui/src/components/user/UserPageHeader.vue @@ -49,6 +49,12 @@ :value="projectsCount" :label="formatMessage(messages.profileProjectCountLabel, { count: projectsCount })" /> + (), { summary: null, @@ -254,6 +266,7 @@ const props = withDefaults( isBlocked: false, projectsCount: 0, downloads: 0, + followers: 0, }, ) @@ -282,6 +295,7 @@ const formatDateTime = useFormatDateTime({ dateStyle: 'long', }) const downloadsTooltip = computed(() => formatNumber(props.downloads)) +const followersTooltip = computed(() => formatNumber(props.followers)) const joinedTooltip = computed(() => formatDateTime(props.user.created)) const moreActions = computed(() => [ diff --git a/packages/ui/src/layouts/shared/user-profile/layout.vue b/packages/ui/src/layouts/shared/user-profile/layout.vue index 398a53a4e63..1d76e5f928b 100644 --- a/packages/ui/src/layouts/shared/user-profile/layout.vue +++ b/packages/ui/src/layouts/shared/user-profile/layout.vue @@ -238,6 +238,7 @@ :is-blocked="isBlocked" :projects-count="projects.length" :downloads="sumDownloads" + :followers="sumFollowers" @manage-projects="openPath('/dashboard/projects')" @report="reportProfile" @block="handleBlockAction" @@ -898,6 +899,10 @@ const navLinks = computed(() => { const sumDownloads = computed(() => projects.value.reduce((total, project) => total + project.downloads, 0), ) + +const sumFollowers = computed(() => + projects.value.reduce((total, project) => total + project.followers, 0), +) const profileHeaderSummary = computed(() => { if (!user.value) return '' if (user.value.bio) return user.value.bio diff --git a/packages/ui/src/locales/en-US/index.json b/packages/ui/src/locales/en-US/index.json index 40733fad95d..acc188e89a4 100644 --- a/packages/ui/src/locales/en-US/index.json +++ b/packages/ui/src/locales/en-US/index.json @@ -3425,6 +3425,9 @@ "profile.label.download-count": { "defaultMessage": "{count, plural, one {download} other {downloads}}" }, + "profile.label.follower-count": { + "defaultMessage": "{count, plural, one {follower} other {followers}}" + }, "profile.label.joined": { "defaultMessage": "Joined" },