MCPcopy
hub / github.com/tiagozip/cap / openCreateKey

Function openCreateKey

standalone/public/js/createKey.js:7–93  ·  view source on GitHub ↗
(namePrefill = "")

Source from the content-addressed store, hash-verified

5import { createModal } from "./utils.js";
6
7async function openCreateKey(namePrefill = "") {
8 const modal = createModal(
9 "Add a key",
10 `<div class="content">
11 <label for="key-name">Key name</label>
12 <input type="text" name="key-name" class="key-name-input" placeholder="Blog comments" value="${namePrefill}" max-length="200" required>
13 </div>
14
15 <button class="create-key-button primary">Create key</button>`
16 );
17 modal.querySelector(".key-name-input").focus();
18
19 if (!namePrefill)
20 document.querySelector(".create-key-button").disabled = true;
21
22 modal.querySelector(".key-name-input").addEventListener("input", (event) => {
23 modal.querySelector(".create-key-button").disabled =
24 !event.target.value.trim();
25 });
26
27 modal
28 .querySelector(".key-name-input")
29 .addEventListener("keydown", (event) => {
30 if (event.target.value.trim() && event.key === "Enter") {
31 modal.querySelector(".create-key-button").click();
32 }
33 });
34
35 modal.querySelector(".close-button").addEventListener("click", () => {
36 document.body.removeChild(modal);
37 });
38
39 modal
40 .querySelector(".create-key-button")
41 .addEventListener("click", async () => {
42 const name = modal.querySelector(".key-name-input").value.trim();
43
44 modal.querySelector(".create-key-button").disabled = true;
45
46 try {
47 const { siteKey, secretKey } = await sendApiRequest("POST", "/keys", {
48 name,
49 });
50
51 document.body.removeChild(modal);
52
53 const successModal = createModal(
54 "Key created",
55 `<div class="content">
56 <label for="site-key">Site key</label>
57 <input type="text" name="site-key" value="${siteKey}" readonly>
58
59 <label for="secret-key">Secret key</label>
60 <input type="text" name="secret-key" value="${secretKey}" readonly>
61
62 <p class="small-text">Make sure to copy your secret key as it will not be shown again later.</p>
63 </div>
64

Callers 1

createKey.jsFile · 0.85

Calls 5

createModalFunction · 0.90
loadKeyPageFunction · 0.85
initHomepageFunction · 0.85
setStateFunction · 0.85
addEventListenerMethod · 0.80

Tested by

no test coverage detected