51 lines
1.6 KiB
JavaScript
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); |