+
Account: ${escapeHtml(username)}
+
+
+ `;
+
+ pendingSaveWrap.appendChild(card);
+
+ card.querySelector("#pending-save-btn").addEventListener("click", async () => {
+ clearWrap(mainErrorWrap);
+ try {
+ const payload = {
+ title: pending.title,
+ source: pending.source,
+ fields: pending.fields,
+ category: pending.category,
+ tags: pending.tags,
+ allow_ui: pending.allow_ui,
+ allow_rest_api: pending.allow_rest_api,
+ };
+ await sendMessage("CREATE_SECRET", payload);
+ pendingSaveWrap.classList.add("d-none");
+ pendingSaveWrap.innerHTML = "";
+ mainErrorWrap.classList.remove("d-none");
+ showWrapAlert(mainErrorWrap, "success", "Credentials saved");
+ loadSecrets();
+ } catch (err) {
+ mainErrorWrap.classList.remove("d-none");
+ showWrapAlert(mainErrorWrap, "error", err.message);
+ }
+ });
+
+ card.querySelector("#pending-dismiss-btn").addEventListener("click", async () => {
+ try {
+ await sendMessage("CLEAR_PENDING_SAVE");
+ } catch {
+ // ignore
+ }
+ pendingSaveWrap.classList.add("d-none");
+ pendingSaveWrap.innerHTML = "";
+ });
+}
+
+async function init() {
+ try {
+ const settings = await sendMessage("GET_SETTINGS");
+ baseUrlInput.value = settings.baseUrl || "https://creds.gnexus.space";
+
+ const pending = await sendMessage("GET_PENDING_SAVE");
+ if (pending) {
+ if (!settings.token) {
+ settingsDrawer.show();
+ return;
+ }
+ renderPendingSave(pending);
+ await loadSecrets();
+ return;
+ }
+
+ if (!settings.token) {
+ if (settings.baseUrl) baseUrlInput.value = settings.baseUrl;
+ settingsDrawer.show();
+ return;
+ }
+ await loadSecrets();
+ } catch (err) {
+ settingsDrawer.show();
+ mainErrorWrap.classList.remove("d-none");
+ showWrapAlert(mainErrorWrap, "error", err.message);
+ }
+}
+
+async function loadSecrets(query = "", force = false) {
+ try {
+ loaderWrap.classList.remove("d-none");
+ loaderWrap.innerHTML = `
+
${escapeHtml(secret.title)}
+ ${meta ? `
${meta}
` : ""}
+
+