Skip to content

Commit 779092c

Browse files
authored
feat: user details modal for moderators (#4764)
* feat: user details modal for moderators * fix: casing
1 parent 9aa06fb commit 779092c

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

apps/frontend/src/locales/en-US/index.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1781,6 +1781,9 @@
17811781
"profile.details.label.email": {
17821782
"message": "Email"
17831783
},
1784+
"profile.details.label.email-verified": {
1785+
"message": "Email verified"
1786+
},
17841787
"profile.details.label.has-password": {
17851788
"message": "Has password"
17861789
},

apps/frontend/src/pages/user/[id].vue

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
</NewModal>
3333
<NewModal v-if="auth.user && isStaff(auth.user)" ref="userDetailsModal" header="User details">
3434
<div class="flex flex-col gap-3">
35-
<div class="flex flex-col gap-1">
35+
<div v-if="isAdmin(auth.user)" class="flex flex-col gap-1">
3636
<span class="text-lg font-bold text-primary">{{
3737
formatMessage(messages.emailLabel)
3838
}}</span>
@@ -52,14 +52,29 @@
5252
</div>
5353
</div>
5454

55-
<div class="flex flex-col gap-1">
55+
<div v-if="!isAdmin(auth.user)" class="flex flex-col gap-1">
56+
<span class="text-lg font-bold text-primary">{{
57+
formatMessage(messages.emailVerifiedLabel)
58+
}}</span>
59+
<span class="flex w-fit items-center gap-1">
60+
<CheckIcon v-if="user.email_verified" class="h-4 w-4 text-brand" />
61+
<XIcon v-else class="h-4 w-4 text-red" />
62+
{{
63+
user.email_verified
64+
? formatMessage(messages.yesLabel)
65+
: formatMessage(messages.noLabel)
66+
}}
67+
</span>
68+
</div>
69+
70+
<div v-if="isAdmin(auth.user)" class="flex flex-col gap-1">
5671
<span class="text-lg font-bold text-primary">{{
5772
formatMessage(messages.authProvidersLabel)
5873
}}</span>
5974
<span>{{ user.auth_providers.join(', ') }}</span>
6075
</div>
6176

62-
<div class="flex flex-col gap-1">
77+
<div v-if="isAdmin(auth.user)" class="flex flex-col gap-1">
6378
<span class="text-lg font-bold text-primary">{{
6479
formatMessage(messages.paymentMethodsLabel)
6580
}}</span>
@@ -473,7 +488,7 @@ import {
473488
TagItem,
474489
useRelativeTime,
475490
} from '@modrinth/ui'
476-
import { isAdmin, UserBadge } from '@modrinth/utils'
491+
import { isAdmin, isStaff, UserBadge } from '@modrinth/utils'
477492
import { IntlFormatted } from '@vintl/vintl/components'
478493
479494
import TenMClubBadge from '~/assets/images/badges/10m-club.svg?component'
@@ -489,7 +504,6 @@ import CollectionCreateModal from '~/components/ui/create/CollectionCreateModal.
489504
import ModalCreation from '~/components/ui/create/ProjectCreateModal.vue'
490505
import NavTabs from '~/components/ui/NavTabs.vue'
491506
import ProjectCard from '~/components/ui/ProjectCard.vue'
492-
import { isStaff } from '~/helpers/users.js'
493507
import { reportUser } from '~/utils/report-helpers.ts'
494508
495509
const data = useNuxtApp()
@@ -531,6 +545,10 @@ const messages = defineMessages({
531545
id: 'profile.details.label.email',
532546
defaultMessage: 'Email',
533547
},
548+
emailVerifiedLabel: {
549+
id: 'profile.details.label.email-verified',
550+
defaultMessage: 'Email verified',
551+
},
534552
emailVerifiedTooltip: {
535553
id: 'profile.details.tooltip.email-verified',
536554
defaultMessage: 'Email verified',

0 commit comments

Comments
 (0)