import { DoesNotExistError } from "../../types/internalErrors.js"; import { Page } from "../../types/Page.js"; import { changePage, setErrorText, setTitleElement } from "../../pageUtils.js"; import { getTransitKeys } from "../../api.js"; import { makeElement } from "../../htmlUtils.js"; import { pageState } from "../../globalPageState.js"; import i18next from 'i18next'; export class TransitViewPage extends Page { constructor() { super(); } goBack() { changePage("HOME"); } async render() { pageState.currentSecret = ""; setTitleElement(pageState); let newButton = makeElement({ tag: "button", text: "New", class: ["uk-button", "uk-button-primary", "uk-margin-bottom"], onclick: () => { changePage("TRANSIT_NEW_KEY"); } }); pageContent.appendChild(newButton); try { let res = await getTransitKeys(pageState.currentBaseMount); pageContent.appendChild(makeElement({ tag: "ul", class: ["uk-nav", "uk-nav-default"], children: [ ...res.map(function (secret) { return makeElement({ tag: "li", children: makeElement({ tag: "a", text: secret, onclick: _ => { pageState.currentSecret = secret; changePage("TRANSIT_VIEW_SECRET"); } }) }); }) ] })); } catch (e) { if (e == DoesNotExistError) { pageContent.appendChild(makeElement({ tag: "p", text: i18next.t("transit_view_none_here_text") })); } else { setErrorText(e.message); } } } get name() { return i18next.t("transit_view_title"); } }