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/cards/AggregatePromiseCard.ts

28 lines
922 B
TypeScript
Raw Normal View History

2020-12-01 21:17:07 +00:00
import { customElement, html, property, TemplateResult } from "lit-element";
import { until } from "lit-html/directives/until";
import { AggregateCard } from "./AggregateCard";
2020-12-02 14:44:40 +00:00
import "../Spinner";
import { SpinnerSize } from "../Spinner";
2020-12-01 21:17:07 +00:00
2020-12-05 21:08:42 +00:00
@customElement("ak-aggregate-card-promise")
2020-12-01 21:17:07 +00:00
export class AggregatePromiseCard extends AggregateCard {
2020-12-02 14:44:40 +00:00
@property({attribute: false})
promise?: Promise<Record<string, unknown>>;
2020-12-01 21:17:07 +00:00
promiseProxy(): Promise<TemplateResult> {
if (!this.promise) {
return new Promise<TemplateResult>(() => html``);
}
return this.promise.then(s => {
return html`<i class="fa fa-check-circle"></i>&nbsp;${s.toString()}`;
2020-12-01 21:17:07 +00:00
});
}
renderInner(): TemplateResult {
return html`<p class="center-value">
2020-12-05 21:08:42 +00:00
${until(this.promiseProxy(), html`<ak-spinner size="${SpinnerSize.Large}"></ak-spinner>`)}
2020-12-01 21:17:07 +00:00
</p>`;
}
}