34 lines
953 B
JavaScript
34 lines
953 B
JavaScript
|
|
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,
|
||
|
|
});
|
||
|
|
|
||
|
|
if (response?.valid) {
|
||
|
|
setStatus(
|
||
|
|
response.username
|
||
|
|
? `成功:@${response.username}\n${response.message ?? ""}`
|
||
|
|
: response.message ?? "同步成功"
|
||
|
|
);
|
||
|
|
} else {
|
||
|
|
setStatus(response?.message ?? "同步失敗", true);
|
||
|
|
}
|
||
|
|
} catch (error) {
|
||
|
|
setStatus(error instanceof Error ? error.message : "同步失敗", true);
|
||
|
|
} finally {
|
||
|
|
syncBtn.disabled = false;
|
||
|
|
}
|
||
|
|
});
|