restructure project, add claudemd
This commit is contained in:
51
web/auth/checkBundleVersion.js
Normal file
51
web/auth/checkBundleVersion.js
Normal file
@@ -0,0 +1,51 @@
|
||||
let bundleStaleNotified = false;
|
||||
|
||||
export function checkBundleVersion(response) {
|
||||
const serverVersion = response.headers.get("X-Bundle-Version");
|
||||
const clientVersion = window.__BUNDLE_VERSION__;
|
||||
if (!serverVersion || !clientVersion || serverVersion === clientVersion) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (bundleStaleNotified) {
|
||||
return;
|
||||
}
|
||||
bundleStaleNotified = true;
|
||||
|
||||
const bar = document.createElement("div");
|
||||
bar.setAttribute("role", "status");
|
||||
bar.style.cssText = [
|
||||
"position:fixed",
|
||||
"top:0",
|
||||
"left:0",
|
||||
"right:0",
|
||||
"z-index:99999",
|
||||
"padding:12px 16px",
|
||||
"background:#141620",
|
||||
"color:#fff",
|
||||
"text-align:center",
|
||||
"font:14px system-ui,sans-serif",
|
||||
"box-shadow:0 2px 8px rgba(0,0,0,0.2)",
|
||||
].join(";");
|
||||
|
||||
const message = document.createElement("span");
|
||||
message.textContent = "A new version of National CD Rateline is available.";
|
||||
|
||||
const button = document.createElement("button");
|
||||
button.type = "button";
|
||||
button.textContent = "Refresh";
|
||||
button.style.cssText = "margin-left:12px;padding:4px 12px;cursor:pointer;border:0;border-radius:4px;background:#fff;color:#141620;font:inherit";
|
||||
|
||||
button.addEventListener("click", () => {
|
||||
window.location.reload();
|
||||
});
|
||||
|
||||
bar.append(message, button);
|
||||
document.body.prepend(bar);
|
||||
}
|
||||
|
||||
export async function apiFetch(url, options) {
|
||||
const response = await fetch(url, options);
|
||||
checkBundleVersion(response);
|
||||
return response;
|
||||
}
|
||||
Reference in New Issue
Block a user