import { html, TemplateResult } from "lit"; import { customElement, property } from "lit/decorators.js"; import { translateText } from "../client/Utils"; import { assetUrl } from "../core/AssetUrls"; import { BaseModal } from "./components/BaseModal"; import { modalHeader } from "./components/ui/ModalHeader"; interface LanguageOption { code: string; svg: string; native: string; en: string; } @customElement("language-modal") export class LanguageModal extends BaseModal { protected routerName = "language"; @property({ type: Array }) languageList: LanguageOption[] = []; @property({ type: String }) currentLang = "en"; private selectLanguage = (lang: string) => { this.dispatchEvent( new CustomEvent("language-selected", { detail: { lang }, bubbles: true, composed: true, }), ); this.close(); }; protected renderHeaderSlot() { return modalHeader({ title: translateText("select_lang.title"), onBack: () => this.close(), ariaLabel: translateText("common.back"), }); } protected renderBody(): TemplateResult { return html`
`; } }