haixunMaster/extension/haixun-threads-sync/popup.js

42 lines
1.2 KiB
JavaScript
Raw Normal View History

2026-06-21 12:50:31 +00:00
const syncBtn = document.getElementById("sync");
const statusEl = document.getElementById("status");
function setStatus(text, isError = false) {
statusEl.textContent = text;
statusEl.style.color = isError ? "#b45309" : "#166534";
}
syncBtn.addEventListener("click", async () => {
syncBtn.disabled = true;
setStatus("同步中…");
try {
const { serverUrl } = await chrome.storage.sync.get(["serverUrl"]);
const response = await chrome.runtime.sendMessage({
action: "sync",
serverUrl,
2026-06-23 16:55:10 +00:00
apiVersion: "go-v1",
2026-06-21 12:50:31 +00:00
});
2026-06-23 16:55:10 +00:00
if (!response) {
throw new Error(
chrome.runtime.lastError?.message ??
"擴充背景程序無回應。請到 chrome://extensions 重新載入擴充"
);
}
if (response.success !== false && response.valid !== false) {
2026-06-21 12:50:31 +00:00
setStatus(
response.username
? `成功:@${response.username}\n${response.message ?? ""}`
: response.message ?? "同步成功"
);
} else {
2026-06-23 16:55:10 +00:00
setStatus(response.message ?? "同步失敗", true);
2026-06-21 12:50:31 +00:00
}
} catch (error) {
setStatus(error instanceof Error ? error.message : "同步失敗", true);
} finally {
syncBtn.disabled = false;
}
});