-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate.js
More file actions
69 lines (44 loc) · 1.31 KB
/
Copy pathupdate.js
File metadata and controls
69 lines (44 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
if("serviceWorker" in navigator){
navigator.serviceWorker.register("sw.js").then(reg=>{
function checkUpdate(){
reg.update();
}
setInterval(checkUpdate,60000);
reg.addEventListener("updatefound",()=>{
const worker=reg.installing;
worker.addEventListener("statechange",()=>{
if(worker.state==="installed" && navigator.serviceWorker.controller){
const popup=document.createElement("div");
popup.style.cssText=`
position:fixed;
left:50%;
bottom:20px;
transform:translateX(-50%);
width:min(90%,420px);
background:#0f172a;
color:#fff;
padding:18px;
border-radius:16px;
box-shadow:0 15px 40px rgba(0,0,0,.45);
border:1px solid #334155;
z-index:999999;
font-family:Segoe UI,sans-serif;
`;
popup.innerHTML=`
<h3 style="margin:0 0 8px;font-size:20px;">🚀 Update Available</h3>
<p style="margin:0 0 16px;color:#cbd5e1;">A new version of Python Learning is ready.</p>
<button id="updateNow" style="padding:12px 18px;border:none;border-radius:10px;background:#38bdf8;color:#02111f;font-weight:700;cursor:pointer;">Update Now</button>
`;
document.body.appendChild(popup);
document.getElementById("updateNow").onclick=()=>{
worker.postMessage({action:"skipWaiting"});
location.reload();
};
}
});
});
navigator.serviceWorker.addEventListener("controllerchange",()=>{
location.reload();
});
}).catch(err=>console.log(err));
}