import { CSSResultGroup, LitElement, TemplateResult, html, unsafeCSS } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { Message } from '../types.js'; import { TROUBLESHOOTING_URL } from '../const.js'; import { localize } from '../localize/localize.js'; import messageStyle from '../scss/message.scss'; @customElement('frigate-card-message') export class FrigateCardMessage extends LitElement { @property({ attribute: false }) protected message = ''; @property({ attribute: false }) protected icon?; // Render the menu. protected render(): TemplateResult { const icon = this.icon ? this.icon : 'mdi:information-outline'; return html`
${this.message ? html`${this.message}` : ''}
`; } static get styles(): CSSResultGroup { return unsafeCSS(messageStyle); } } @customElement('frigate-card-error-message') export class FrigateCardErrorMessage extends LitElement { @property({ attribute: false }) protected error = ''; protected render(): TemplateResult { return html` ${localize('error.troubleshooting')}.`} .icon=${'mdi:alert-circle'} > `; } } @customElement('frigate-card-progress-indicator') export class FrigateCardProgressIndicator extends LitElement { protected render(): TemplateResult { return html`
`; } static get styles(): CSSResultGroup { return unsafeCSS(messageStyle); } } export function renderMessage(message: Message): TemplateResult { if (message.type == 'error') { return html` `; } else if (message.type == 'info') { return html` `; } return html``; } export function renderProgressIndicator(): TemplateResult { return html` `; }