import { t } from "@lingui/macro"; import { customElement, html, TemplateResult } from "lit-element"; import { AdminApi, Version } from "@goauthentik/api"; import { DEFAULT_CONFIG } from "../../../api/Config"; import { AdminStatusCard, AdminStatus } from "./AdminStatusCard"; @customElement("ak-admin-status-version") export class VersionStatusCard extends AdminStatusCard { getPrimaryValue(): Promise { return new AdminApi(DEFAULT_CONFIG).adminVersionRetrieve(); } getStatus(value: Version): Promise { if (value.buildHash) { return Promise.resolve({ icon: "fa fa-check-circle pf-m-success", message: html` ${t`Build hash: `} ${value.buildHash?.substring(0, 7)} `, }); } if (value.outdated) { return Promise.resolve({ icon: "fa fa-exclamation-triangle pf-m-warning", message: html`${t`${value.versionLatest} is available!`}`, }); } return Promise.resolve({ icon: "fa fa-check-circle pf-m-success", message: html`${t`Up-to-date!`}`, }); } renderValue(): TemplateResult { return html`${this.value?.versionCurrent}`; } }