import React, { useState } from 'react'; import { Avatar, Group, Menu, Text, Button, Flex } from "@mantine/core"; import { useAuth } from 'react-oidc-context'; import { strings } from '../strings/strings'; import { useMediaQuery } from '@mantine/hooks'; import { dimensions } from '../dimensions/dimensions'; import ColorSchemeToggle from './buttons/ColorSchemeToggle'; import { keycloakConfig } from '../..'; interface UserMenuProps { user: { name: string; image: string } } const UserMenu = ({ user }: UserMenuProps) => { const [userMenuOpened, setUserMenuOpened] = useState(false); const auth = useAuth() const isMiddleScreen = useMediaQuery(dimensions.middleScreenSize) const handleAboutMe = () => { throw Error('Not yet implemented') } const handleLogout = async () => { await auth.removeUser() const id_token_hint = auth.user?.id_token await auth.signoutRedirect({ post_logout_redirect_uri: keycloakConfig.redirect_uri, id_token_hint: id_token_hint }) } return ( setUserMenuOpened(false)} onOpen={() => setUserMenuOpened(true)} withinPortal > { isMiddleScreen ? {strings.changeTheme} : <> } {/* {strings.settings} {strings.aboutMe} */} {strings.logout} ); }; export default UserMenu;