This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/web/src/elements/sidebar/SidebarUser.ts

59 lines
2 KiB
TypeScript
Raw Normal View History

import { css, CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element";
// @ts-ignore
import NavStyle from "@patternfly/patternfly/components/Nav/nav.css";
// @ts-ignore
import fa from "@fortawesome/fontawesome-free/css/all.css";
// @ts-ignore
import AvatarStyle from "@patternfly/patternfly/components/Avatar/avatar.css";
import { User } from "../../api/user";
2020-12-02 13:45:19 +00:00
import { until } from "lit-html/directives/until";
@customElement("pb-sidebar-user")
export class SidebarUser extends LitElement {
static get styles(): CSSResult[] {
return [
fa,
NavStyle,
AvatarStyle,
css`
:host {
display: flex;
width: 100%;
flex-direction: row;
justify-content: space-between;
}
.pf-c-nav__link {
align-items: center;
}
.user-avatar {
display: flex;
flex-direction: row;
}
.user-avatar > span {
line-height: var(--pf-c-avatar--Height);
padding-left: var(--pf-global--spacer--sm);
font-size: var(--pf-global--FontSize--lg);
}
.user-logout {
flex-shrink: 3;
max-width: 75px;
}
`,
];
}
2020-12-02 13:45:19 +00:00
render(): TemplateResult {
return html`
2020-11-26 22:35:59 +00:00
<a href="#/-/user/" class="pf-c-nav__link user-avatar" id="user-settings">
2020-12-02 13:45:19 +00:00
${until(User.me().then(u => {
2020-12-02 14:44:40 +00:00
return html`<img class="pf-c-avatar" src="${u.avatar}" alt="" />
2020-12-02 13:45:19 +00:00
<span>${u.username}</span>`;
2020-12-02 14:44:40 +00:00
}), html``)}
</a>
2020-11-26 22:35:59 +00:00
<a href="/flows/-/default/invalidation/" class="pf-c-nav__link user-logout" id="logout">
<i class="fas fa-sign-out-alt" aria-hidden="true"></i>
</a>
`;
}
}