import { CopyableModal } from "../../../elements/CopyableModal"; import { Form } from "../../../elements/Form"; import { Margin } from "../../../elements/Margin"; import { Page } from "../../../types/Page"; import { SecretTitleElement } from "../SecretTitleElement"; import { getTransitKey } from "../../../api/transit/getTransitKey"; import { objectToMap } from "../../../utils"; import { render } from "preact"; import { setErrorText } from "../../../pageUtils"; import { transitRewrap } from "../../../api/transit/transitRewrap"; import UIkit from "uikit"; import i18next from "i18next"; type versionOption = { version: string; label: string }; export class TransitRewrapPage extends Page { constructor() { super(); } async goBack(): Promise { await this.router.changePage("TRANSIT_VIEW_SECRET"); } async render(): Promise { const transitKey = await getTransitKey(this.state.baseMount, this.state.secretItem); const stringVersions = Array.from( objectToMap(transitKey.keys).keys(), ).reverse() as unknown as string[]; const versions = stringVersions.map((val): number => parseInt(val, 10)); // get the selectable version options in the same // format the official UI uses. // e.g: ["2 (latest)", "1"] const options: versionOption[] = versions.map((val): versionOption => { const i18nkey = val == Math.max(...versions) ? "transit_rewrap_latest_version_option_text" : "transit_rewrap_version_option_text"; return { version: String(val), label: i18next.t(i18nkey, { version_num: String(val) }), }; }); render(
await this.onSubmit(data)}>