File tree Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import { ensureUserIsAdmin } from '../admin';
11
11
import { Tip } from '@gw2treasures/ui/components/Tip/Tip' ;
12
12
import { ProviderIcon } from '@/components/Provider/Provider' ;
13
13
import { FlexRow } from '@gw2treasures/ui/components/Layout/FlexRow' ;
14
+ import { Gravatar } from '@/components/User/Gravatar' ;
14
15
15
16
function getUsers ( ) {
16
17
return db . user . findMany ( {
@@ -35,7 +36,7 @@ export default async function AdminUserPage() {
35
36
36
37
< Users . Table >
37
38
< Users . Column id = "id" title = "Id" hidden > { ( { id } ) => < Code inline borderless > { id } </ Code > } </ Users . Column >
38
- < Users . Column id = "name" title = "Username" sortBy = "name" > { ( { name } ) => name } </ Users . Column >
39
+ < Users . Column id = "name" title = "Username" sortBy = "name" > { ( { name, defaultEmail } ) => < FlexRow > < Gravatar email = { defaultEmail ?. email } /> { name } </ FlexRow > } </ Users . Column >
39
40
< Users . Column id = "providers" title = "Providers" sortBy = "name" >
40
41
{ ( { providers } ) => (
41
42
< FlexRow wrap >
Original file line number Diff line number Diff line change
1
+ /* eslint-disable @next/next/no-img-element */
2
+ import { createHash } from 'node:crypto' ;
3
+ import { FC } from 'react' ;
4
+
5
+ interface GravatarProps {
6
+ email ?: string
7
+ }
8
+
9
+ export const Gravatar : FC < GravatarProps > = ( { email } ) => {
10
+ if ( ! email ) {
11
+ return null ;
12
+ }
13
+
14
+ const hash = createHash ( 'sha256' ) . update ( email . trim ( ) . toLocaleLowerCase ( ) ) . digest ( 'hex' ) ;
15
+
16
+ return (
17
+ < img src = { `https://gravatar.com/avatar/${ hash } ?s=48` } alt = "" width = { 24 } height = { 24 } style = { { borderRadius : 2 } } />
18
+ ) ;
19
+ } ;
You can’t perform that action at this time.
0 commit comments