Add typing to CopyableInputBox.ts.
This commit is contained in:
parent
1b1a7a1d2d
commit
73cc78125f
|
@ -4,8 +4,12 @@ import { makeElement } from "../htmlUtils";
|
|||
import ClipboardJS from "clipboard";
|
||||
import i18next from "i18next";
|
||||
|
||||
export function CopyableInputBox(text, copyable = true) {
|
||||
let inputBoxDiv = makeElement({ tag: "div" });
|
||||
interface CopyableInputBoxType extends HTMLElement {
|
||||
setText(text: string): void;
|
||||
}
|
||||
|
||||
export function CopyableInputBox(text: string, copyable = true): CopyableInputBoxType {
|
||||
const inputBoxDiv = (makeElement({ tag: "div" }) as CopyableInputBoxType);
|
||||
let inputBoxCopyButton = null;
|
||||
if (copyable) {
|
||||
inputBoxCopyButton = makeElement({
|
||||
|
@ -17,26 +21,26 @@ export function CopyableInputBox(text, copyable = true) {
|
|||
"aria-label": i18next.t("copy_input_box_copy_icon_text")
|
||||
},
|
||||
thenRun: (e) => {
|
||||
let clipboard = new ClipboardJS(e);
|
||||
const clipboard = new ClipboardJS(e);
|
||||
addClipboardNotifications(clipboard, 600);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
let inputBoxInput = makeElement({
|
||||
const inputBoxInput = makeElement({
|
||||
tag: "input",
|
||||
class: ["uk-input"],
|
||||
attributes: { "readonly": true, "type": "text" },
|
||||
});
|
||||
|
||||
let inputBoxInner = MarginInline([
|
||||
const inputBoxInner = MarginInline([
|
||||
inputBoxCopyButton,
|
||||
inputBoxInput
|
||||
]);
|
||||
inputBoxDiv.appendChild(inputBoxInner);
|
||||
|
||||
inputBoxDiv.setText = function (text) {
|
||||
inputBoxInput.value = `${text}`;
|
||||
(inputBoxInput as HTMLInputElement).value = `${text}`;
|
||||
if (copyable) {
|
||||
inputBoxCopyButton.dataset.clipboardText = `${text}`;
|
||||
}
|
19
src/elements/renewSelf.ts
Normal file
19
src/elements/renewSelf.ts
Normal file
|
@ -0,0 +1,19 @@
|
|||
import { appendAPIURL, getHeaders } from "../api/apiUtils";
|
||||
|
||||
export async function renewSelf(): Promise<void> {
|
||||
const request = new Request(appendAPIURL("/v1/auth/token/renew-self"), {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
...getHeaders(),
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({})
|
||||
});
|
||||
return fetch(request).then(response => {
|
||||
return response.json();
|
||||
}).then(data => {
|
||||
if ("errors" in data) {
|
||||
throw new Error(data.errors[0]);
|
||||
}
|
||||
});
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
import { CopyableInputBox } from "../../elements/CopyableInputBox.js";
|
||||
import { CopyableInputBox } from "../../elements/CopyableInputBox";
|
||||
import { Page } from "../../types/Page";
|
||||
import { changePage, setPageContent, setTitleElement } from "../../pageUtils";
|
||||
import { getCapabilities } from "../../api/getCapabilities";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { CopyableInputBox } from "../elements/CopyableInputBox.js";
|
||||
import { CopyableInputBox } from "../elements/CopyableInputBox";
|
||||
import { Margin } from "../elements/Margin.js";
|
||||
import { Page } from "../types/Page";
|
||||
import { makeElement } from "../htmlUtils";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { CopyableInputBox } from "../../elements/CopyableInputBox.js";
|
||||
import { CopyableInputBox } from "../../elements/CopyableInputBox";
|
||||
import { DoesNotExistError } from "../../types/internalErrors";
|
||||
import { Page } from "../../types/Page";
|
||||
import { changePage, setErrorText, setPageContent, setTitleElement } from "../../pageUtils";
|
||||
|
|
Loading…
Reference in a new issue