mirror of
https://github.com/musistudio/claude-code-router.git
synced 2026-07-09 17:18:24 +00:00
46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
const root = document.getElementById("ccr-chrome-login-import");
|
|
const button = document.getElementById("ccr-confirm-import");
|
|
const statusElement = document.getElementById("ccr-import-status");
|
|
|
|
if (root && button && statusElement) {
|
|
const importUrl = root.getAttribute("data-import-url") || "";
|
|
button.disabled = false;
|
|
button.textContent = "Confirm and Import";
|
|
setStatus("CCR Login Import extension is connected. Review the domains, then confirm.");
|
|
|
|
button.addEventListener("click", () => {
|
|
void confirmImport(importUrl);
|
|
});
|
|
}
|
|
|
|
async function confirmImport(importUrl) {
|
|
button.disabled = true;
|
|
setStatus("Importing Chrome cookies and localStorage into CCR...");
|
|
try {
|
|
const response = await chrome.runtime.sendMessage({
|
|
importUrl,
|
|
type: "ccr-login-import-confirm"
|
|
});
|
|
if (!response?.ok) {
|
|
throw new Error(response?.error || "Chrome login import failed.");
|
|
}
|
|
const result = response.result || {};
|
|
setStatus(
|
|
`Imported ${result.cookieImported || 0} cookies and ${result.localStorageImported || 0} localStorage items. Skipped ${result.skipped || 0}.`,
|
|
"ok"
|
|
);
|
|
button.textContent = "Imported";
|
|
} catch (error) {
|
|
button.disabled = false;
|
|
setStatus(formatError(error), "error");
|
|
}
|
|
}
|
|
|
|
function setStatus(message, kind = "") {
|
|
statusElement.textContent = message;
|
|
statusElement.className = `status ${kind}`.trim();
|
|
}
|
|
|
|
function formatError(error) {
|
|
return error instanceof Error ? error.message : String(error);
|
|
}
|