My-extension/update_id.js

51 lines
1.6 KiB
JavaScript

const browserAPI = globalThis.browser ?? globalThis.chrome;
const statusEl = document.getElementById("status");
function getQueryParams() {
const params = new URLSearchParams(window.location.search);
const entries = {};
for (const [key, value] of params.entries()) {
entries[key] = value;
}
return entries;
}
async function updateClientId(newId) {
if (!newId || !newId.trim()) {
throw new Error("Пустой ID");
}
await browserAPI.storage.local.set({ clientId: newId });
console.log("[UI] clientId установлен:", newId);
return newId;
}
async function processUrlParams() {
try {
const params = getQueryParams();
if (!params.clientId) {
statusEl.innerHTML = `<div class="error">Ошибка: отсутствует параметр clientId</div>
<p>Используйте: <code>?clientId=your ID</code></p>`;
return;
}
console.log("[UI] Получен clientId из URL:", params.clientId);
const savedId = await updateClientId(params.clientId);
statusEl.innerHTML = `<div class="success"> ID успешно установлен!</div>
<p>Новый идентификатор: <code>${savedId}</code></p>
<p>Страница закроется через 5 секунд...</p>`;
setTimeout(() => {
window.close();
}, 5000);
} catch (error) {
console.error("[UI] Ошибка:", error);
statusEl.innerHTML = `<div class="error">Ошибка: ${error.message}</div>`;
}
}
document.addEventListener("DOMContentLoaded", processUrlParams);