• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

alkem-io / client-web / #6263

16 Nov 2023 11:59AM UTC coverage: 5.91%. First build
#6263

Pull #5203

travis-ci

Pull Request #5203: IconButton Labels

184 of 8743 branches covered (0.0%)

Branch coverage included in aggregate %.

1 of 43 new or added lines in 37 files covered. (2.33%)

1281 of 16046 relevant lines covered (7.98%)

0.19 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/ui/platformNavigation/PlatformNavigationUserAvatar.tsx
1
import React, { ReactElement, Ref } from 'react';
2
import { useCurrentUserContext } from '@/domain/community/userCurrent/useCurrentUserContext';
3
import { Box, CircularProgress, Paper, useTheme } from '@mui/material';
4
import Avatar from '@/core/ui/avatar/Avatar';
5
import { Person } from '@mui/icons-material';
6
import { gutters } from '@/core/ui/grid/utils';
7
import SwapColors from '@/core/ui/palette/SwapColors';
8
import MenuTriggerButton from '@/core/ui/tooltip/MenuTriggerButton';
9
import { PLATFORM_NAVIGATION_MENU_Z_INDEX } from './constants';
10
import NavigationItemContainer from '@/core/ui/navigation/NavigationItemContainer';
11
import { useTranslation } from 'react-i18next';
12
import BadgeLabel from '@/core/ui/icon/BadgeLabel';
13
import { RoleName } from '@/core/apollo/generated/graphql-schema';
14

15
interface PlatformNavigationUserAvatarProps {
16
  children: ReactElement<{ onClose?: () => void }>;
17
  drawer?: boolean;
18
}
×
NEW
19

×
20
const PlatformNavigationUserAvatar = ({ drawer, children }: PlatformNavigationUserAvatarProps) => {
×
21
  const { t } = useTranslation();
22
  const { userModel, isAuthenticated, loadingMe, platformRoles } = useCurrentUserContext();
×
23

24
  const theme = useTheme();
×
25

26
  const showBetaBadge = userModel && isAuthenticated && platformRoles.includes(RoleName.PlatformBetaTester);
27

28
  return (
29
    <MenuTriggerButton
30
      keepMounted
×
31
      drawer={drawer}
32
      placement="bottom-end"
33
      renderTrigger={({ ref, onClick, ...props }) => (
34
        <SwapColors>
35
          <NavigationItemContainer ref={ref as Ref<HTMLDivElement>} position="relative" overflow="visible">
36
            <Paper
37
              component={Avatar}
38
              src={userModel?.profile.avatar?.uri}
39
              sx={{
×
40
                padding: 0,
41
                cursor: 'pointer',
42
                position: 'relative',
43
              }}
44
              alt={t('buttons.userMenu')}
×
45
              onClick={onClick}
46
              {...props}
47
            >
48
              {loadingMe && (
49
                <SwapColors>
50
                  <CircularProgress size={gutters()(theme)} color="primary" />
51
                </SwapColors>
52
              )}
53
              {!loadingMe && !isAuthenticated && <Person color="primary" />}
54
            </Paper>
55
            {showBetaBadge && (
56
              <BadgeLabel
57
                count="Beta"
58
                size="small"
59
                sx={{
60
                  position: 'absolute',
61
                  bottom: '-8px',
62
                  right: '-12px',
63
                  zIndex: PLATFORM_NAVIGATION_MENU_Z_INDEX + 1,
64
                }}
65
              />
66
            )}
67
            <Box
68
              position="absolute"
69
              top={0}
70
              bottom={0}
71
              left={0}
72
              right={0}
73
              padding={gutters(0.25)}
74
              display="flex"
75
              alignItems="stretch"
76
              sx={{ pointerEvents: 'none' }}
77
            >
78
              <Box
79
                component="a"
80
                flexGrow={1}
81
                href=""
82
                aria-label={t('common.my-profile')}
83
                onClick={event => {
84
                  event.preventDefault();
85
                  onClick?.(event);
86
                }}
87
              />
88
            </Box>
89
          </NavigationItemContainer>
90
        </SwapColors>
91
      )}
92
      zIndex={PLATFORM_NAVIGATION_MENU_Z_INDEX}
93
    >
94
      {children}
95
    </MenuTriggerButton>
96
  );
97
};
98

99
export default PlatformNavigationUserAvatar;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc