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/standalone/loading/index.ts

60 lines
2 KiB
TypeScript
Raw Normal View History

import { globalAK } from "@goauthentik/common/global";
import { autoDetectLanguage } from "@goauthentik/common/ui/locale";
import { Interface } from "@goauthentik/elements/Base";
import { t } from "@lingui/macro";
import { CSSResult, TemplateResult, css, html } from "lit";
import { customElement } from "lit/decorators.js";
import PFEmptyState from "@patternfly/patternfly/components/EmptyState/empty-state.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFSpinner from "@patternfly/patternfly/components/Spinner/spinner.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import { UiThemeEnum } from "@goauthentik/api";
autoDetectLanguage();
@customElement("ak-loading")
export class Loading extends Interface {
static get styles(): CSSResult[] {
return [
PFBase,
PFPage,
PFSpinner,
PFEmptyState,
css`
:host([theme="dark"]) h1 {
color: var(--ak-dark-foreground);
}
`,
];
}
async getTheme(): Promise<UiThemeEnum> {
return globalAK()?.tenant.uiTheme || UiThemeEnum.Automatic;
}
render(): TemplateResult {
return html` <section
class="ak-static-page pf-c-page__main-section pf-m-no-padding-mobile pf-m-xl"
>
<div class="pf-c-empty-state" style="height: 100vh;">
<div class="pf-c-empty-state__content">
<span
class="pf-c-spinner pf-m-xl"
role="progressbar"
aria-valuetext="${t`Loading...`}"
>
<span class="pf-c-spinner__clipper"></span>
<span class="pf-c-spinner__lead-ball"></span>
<span class="pf-c-spinner__tail-ball"></span>
</span>
<h1 class="pf-c-title pf-m-lg">${t`Loading...`}</h1>
</div>
</div>
</section>`;
}
}