139 lines
4.9 KiB
JavaScript
139 lines
4.9 KiB
JavaScript
var __async = (__this, __arguments, generator) => {
|
|
return new Promise((resolve, reject) => {
|
|
var fulfilled = (value) => {
|
|
try {
|
|
step(generator.next(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var rejected = (value) => {
|
|
try {
|
|
step(generator.throw(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
});
|
|
};
|
|
import { j as createSpinner, g as api, $ as $el } from "./index-DIiqwEjy.js";
|
|
class UserSelectionScreen {
|
|
show(users, user) {
|
|
return __async(this, null, function* () {
|
|
const userSelection = document.getElementById("comfy-user-selection");
|
|
userSelection.style.display = "";
|
|
return new Promise((resolve) => {
|
|
const input = userSelection.getElementsByTagName("input")[0];
|
|
const select = userSelection.getElementsByTagName("select")[0];
|
|
const inputSection = input.closest("section");
|
|
const selectSection = select.closest("section");
|
|
const form = userSelection.getElementsByTagName("form")[0];
|
|
const error = userSelection.getElementsByClassName("comfy-user-error")[0];
|
|
const button = userSelection.getElementsByClassName(
|
|
"comfy-user-button-next"
|
|
)[0];
|
|
let inputActive = null;
|
|
input.addEventListener("focus", () => {
|
|
inputSection.classList.add("selected");
|
|
selectSection.classList.remove("selected");
|
|
inputActive = true;
|
|
});
|
|
select.addEventListener("focus", () => {
|
|
inputSection.classList.remove("selected");
|
|
selectSection.classList.add("selected");
|
|
inputActive = false;
|
|
select.style.color = "";
|
|
});
|
|
select.addEventListener("blur", () => {
|
|
if (!select.value) {
|
|
select.style.color = "var(--descrip-text)";
|
|
}
|
|
});
|
|
form.addEventListener("submit", (e) => __async(this, null, function* () {
|
|
var _a, _b, _c;
|
|
e.preventDefault();
|
|
if (inputActive == null) {
|
|
error.textContent = "Please enter a username or select an existing user.";
|
|
} else if (inputActive) {
|
|
const username = input.value.trim();
|
|
if (!username) {
|
|
error.textContent = "Please enter a username.";
|
|
return;
|
|
}
|
|
input.disabled = select.disabled = // @ts-expect-error
|
|
input.readonly = // @ts-expect-error
|
|
select.readonly = true;
|
|
const spinner = createSpinner();
|
|
button.prepend(spinner);
|
|
try {
|
|
const resp = yield api.createUser(username);
|
|
if (resp.status >= 300) {
|
|
let message = "Error creating user: " + resp.status + " " + resp.statusText;
|
|
try {
|
|
const res = yield resp.json();
|
|
if (res.error) {
|
|
message = res.error;
|
|
}
|
|
} catch (error2) {
|
|
}
|
|
throw new Error(message);
|
|
}
|
|
resolve({ username, userId: yield resp.json(), created: true });
|
|
} catch (err) {
|
|
spinner.remove();
|
|
error.textContent = (_c = (_b = (_a = err.message) != null ? _a : err.statusText) != null ? _b : err) != null ? _c : "An unknown error occurred.";
|
|
input.disabled = select.disabled = // @ts-expect-error
|
|
input.readonly = // @ts-expect-error
|
|
select.readonly = false;
|
|
return;
|
|
}
|
|
} else if (!select.value) {
|
|
error.textContent = "Please select an existing user.";
|
|
return;
|
|
} else {
|
|
resolve({
|
|
username: users[select.value],
|
|
userId: select.value,
|
|
created: false
|
|
});
|
|
}
|
|
}));
|
|
if (user) {
|
|
const name = localStorage["Comfy.userName"];
|
|
if (name) {
|
|
input.value = name;
|
|
}
|
|
}
|
|
if (input.value) {
|
|
input.focus();
|
|
}
|
|
const userIds = Object.keys(users != null ? users : {});
|
|
if (userIds.length) {
|
|
for (const u of userIds) {
|
|
$el("option", { textContent: users[u], value: u, parent: select });
|
|
}
|
|
select.style.color = "var(--descrip-text)";
|
|
if (select.value) {
|
|
select.focus();
|
|
}
|
|
} else {
|
|
userSelection.classList.add("no-users");
|
|
input.focus();
|
|
}
|
|
}).then((r) => {
|
|
userSelection.remove();
|
|
return r;
|
|
});
|
|
});
|
|
}
|
|
}
|
|
window.comfyAPI = window.comfyAPI || {};
|
|
window.comfyAPI.userSelection = window.comfyAPI.userSelection || {};
|
|
window.comfyAPI.userSelection.UserSelectionScreen = UserSelectionScreen;
|
|
export {
|
|
UserSelectionScreen
|
|
};
|
|
//# sourceMappingURL=userSelection-BifVfRyx.js.map
|