/* eslint-disable */ // @ts-nocheck import { Avatar, AvatarProps, DropdownItem, Masthead, MastheadBrand, MastheadBrandProps, MastheadContent, MastheadMainProps, MastheadToggle, PageToggleButton, Toolbar, ToolbarContent, ToolbarItem, } from "../../@patternfly/react-core"; import { BarsIcon } from "../../@patternfly/react-icons"; import { TFunction } from "i18next"; import type { Keycloak, KeycloakTokenParsed } from "oidc-spa/keycloak-js"; import { ReactNode } from "react"; import { useTranslation } from "react-i18next"; import { DefaultAvatar } from "./DefaultAvatar"; import { KeycloakDropdown } from "./KeycloakDropdown"; function loggedInUserName( token: KeycloakTokenParsed | undefined, t: TFunction, ) { if (!token) { return t("unknownUser"); } const givenName = token.given_name; const familyName = token.family_name; const preferredUsername = token.preferred_username; if (givenName && familyName) { return t("fullName", { givenName, familyName }); } return givenName || familyName || preferredUsername || t("unknownUser"); } type BrandLogo = MastheadBrandProps; type KeycloakMastheadProps = MastheadMainProps & { keycloak: Keycloak; brand: BrandLogo; avatar?: AvatarProps; features?: { hasLogout?: boolean; hasManageAccount?: boolean; hasUsername?: boolean; }; kebabDropdownItems?: ReactNode[]; dropdownItems?: ReactNode[]; toolbarItems?: ReactNode[]; toolbar?: ReactNode; }; const KeycloakMasthead = ({ keycloak, brand: { src, alt, className, ...brandProps }, avatar, features: { hasLogout = true, hasManageAccount = true, hasUsername = true, } = {}, kebabDropdownItems, dropdownItems = [], toolbarItems, toolbar, ...rest }: KeycloakMastheadProps) => { const { t } = useTranslation(); const extraItems = []; if (hasManageAccount) { extraItems.push( keycloak.accountManagement()} > {t("manageAccount")} , ); } if (hasLogout) { extraItems.push( keycloak.logout()}> {t("signOut")} , ); } const picture = keycloak.idTokenParsed?.picture; return ( {alt} {toolbar} {toolbarItems?.map((item, index) => ( {item} ))} {picture || avatar?.src ? ( ) : ( )} ); }; export default KeycloakMasthead;