@@ -25,46 +25,51 @@ export const UserIdentifier = ({
25
25
// HOOKS
26
26
const { email : currentUserEmail } = useUserEmail ( )
27
27
28
+ if ( ! email ) {
29
+ return null
30
+ }
31
+
28
32
// CONSTANTS
29
33
const isCurrentUser = email === currentUserEmail
34
+ const isApiToken = email . startsWith ( API_TOKEN_PREFIX )
35
+
36
+ const renderIcon = ( ) => {
37
+ if ( isApiToken ) {
38
+ return < Icon name = "ic-key" color = "N700" size = { 20 } />
39
+ }
40
+
41
+ return isUserGroup ? (
42
+ < Icon name = "ic-users" color = "N700" size = { 20 } />
43
+ ) : (
44
+ getAlphabetIcon ( email , 'dc__no-shrink m-0-imp' )
45
+ )
46
+ }
47
+
48
+ const renderText = ( ) => {
49
+ if ( isCurrentUser ) {
50
+ return 'You'
51
+ }
52
+
53
+ if ( isApiToken ) {
54
+ return email . split ( ':' ) ?. [ 1 ] || '-'
55
+ }
56
+
57
+ return email
58
+ }
30
59
31
60
return (
32
61
< div className = { `flexbox dc__gap-8 ${ rootClassName || '' } ` } >
33
- { email . startsWith ( API_TOKEN_PREFIX ) ? (
34
- < UserIdentifierTooltip tooltipContent = { tooltipContent } >
35
- < Icon name = "ic-key" color = "N700" size = { 20 } />
36
- < div className = "flexbox dc__gap-2" >
37
- < Tooltip
38
- { ...( tooltipContent
39
- ? { content : email , alwaysShowTippyOnHover : false }
40
- : { content : email } ) }
41
- >
42
- < span className = "cn-9 fs-13 fw-4 lh-20 dc__truncate" >
43
- { isCurrentUser ? 'You' : email . split ( ':' ) ?. [ 1 ] || '-' }
44
- </ span >
45
- </ Tooltip >
46
- { children }
47
- </ div >
48
- </ UserIdentifierTooltip >
49
- ) : (
50
- < UserIdentifierTooltip tooltipContent = { tooltipContent } >
51
- { isUserGroup ? (
52
- < Icon name = "ic-users" color = "N700" size = { 20 } />
53
- ) : (
54
- getAlphabetIcon ( email , 'dc__no-shrink m-0-imp' )
55
- ) }
56
- < div className = "flexbox dc__gap-2" >
57
- < Tooltip
58
- { ...( tooltipContent
59
- ? { content : email , alwaysShowTippyOnHover : false }
60
- : { content : email } ) }
61
- >
62
- < span className = "cn-9 fs-13 fw-4 lh-20 dc__truncate" > { isCurrentUser ? 'You' : email } </ span >
63
- </ Tooltip >
64
- { children }
65
- </ div >
66
- </ UserIdentifierTooltip >
67
- ) }
62
+ < UserIdentifierTooltip tooltipContent = { tooltipContent } >
63
+ { renderIcon ( ) }
64
+ < div className = "flexbox dc__gap-2" >
65
+ < Tooltip
66
+ { ...( tooltipContent ? { content : email , alwaysShowTippyOnHover : false } : { content : email } ) }
67
+ >
68
+ < span className = "cn-9 fs-13 fw-4 lh-20 dc__truncate" > { renderText ( ) } </ span >
69
+ </ Tooltip >
70
+ { children }
71
+ </ div >
72
+ </ UserIdentifierTooltip >
68
73
</ div >
69
74
)
70
75
}
0 commit comments