69 lines
1.7 KiB
JavaScript
69 lines
1.7 KiB
JavaScript
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");
|
|
}
|
|
}
|