summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/components/AppHeaderTools.js
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-web/opendc-web-ui/src/components/AppHeaderTools.js')
-rw-r--r--opendc-web/opendc-web-ui/src/components/AppHeaderTools.js16
1 files changed, 11 insertions, 5 deletions
diff --git a/opendc-web/opendc-web-ui/src/components/AppHeaderTools.js b/opendc-web/opendc-web-ui/src/components/AppHeaderTools.js
index 02e5d265..3e58b209 100644
--- a/opendc-web/opendc-web-ui/src/components/AppHeaderTools.js
+++ b/opendc-web/opendc-web-ui/src/components/AppHeaderTools.js
@@ -39,7 +39,9 @@ import { useAuth } from '../auth'
import { GithubIcon, HelpIcon } from '@patternfly/react-icons'
function AppHeaderTools() {
- const auth = useAuth()
+ const { logout, user, isAuthenticated, isLoading } = useAuth()
+ const username = isAuthenticated || isLoading ? user?.name : 'Anonymous'
+ const avatar = isAuthenticated || isLoading ? user?.picture : '/img/avatar.svg'
const [isKebabDropdownOpen, setKebabDropdownOpen] = useState(false)
const kebabDropdownItems = [
@@ -56,7 +58,11 @@ function AppHeaderTools() {
const [isDropdownOpen, setDropdownOpen] = useState(false)
const userDropdownItems = [
<DropdownGroup key="group 2">
- <DropdownItem key="group 2 logout" onClick={() => auth.logout({ returnTo: window.location.origin })}>
+ <DropdownItem
+ key="group 2 logout"
+ isDisabled={!isAuthenticated}
+ onClick={() => logout({ returnTo: window.location.origin })}
+ >
Logout
</DropdownItem>
</DropdownGroup>,
@@ -105,7 +111,7 @@ function AppHeaderTools() {
isOpen={isDropdownOpen}
toggle={
<DropdownToggle onToggle={() => setDropdownOpen(!isDropdownOpen)}>
- {auth?.user?.name ?? (
+ {username ?? (
<Skeleton
fontSize="xs"
width="150px"
@@ -119,8 +125,8 @@ function AppHeaderTools() {
/>
</PageHeaderToolsItem>
</PageHeaderToolsGroup>
- {auth?.user?.picture ? (
- <Avatar src={auth.user.picture} alt="Avatar image" />
+ {avatar ? (
+ <Avatar src={avatar} alt="Avatar image" />
) : (
<Skeleton className="pf-c-avatar" shape="circle" width="2.25rem" screenreaderText="Loading avatar" />
)}