feat(don): indicate new donates in page title
This commit is contained in:
@@ -311,10 +311,30 @@ export function DonateAdminPage({
|
|||||||
// component cuz simplicity sake
|
// component cuz simplicity sake
|
||||||
export function DonateWatcher() {
|
export function DonateWatcher() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const [newDonates, setNewDonates] = useState(0);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (newDonates <= 0) return ((document.title = "โดเนททั้งหมด"), undefined);
|
||||||
|
var blink = true;
|
||||||
|
const interval = setInterval(() => {
|
||||||
|
blink = !blink;
|
||||||
|
document.title = blink ? "โดเนททั้งหมด" : `${newDonates} โดเนทใหม่`;
|
||||||
|
}, 1000);
|
||||||
|
return () => clearInterval(interval);
|
||||||
|
}, [newDonates]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
function listener() {
|
||||||
|
setNewDonates(0);
|
||||||
|
}
|
||||||
|
window.addEventListener("focus", listener);
|
||||||
|
return () => window.removeEventListener("focus", listener);
|
||||||
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!router) return;
|
if (!router) return;
|
||||||
return sse.donate.subMany({
|
return sse.donate.subMany({
|
||||||
ping: router.refresh.bind(router),
|
ping: () => (router.refresh(), setNewDonates((x) => x + 1)),
|
||||||
update: router.refresh.bind(router),
|
update: router.refresh.bind(router),
|
||||||
}).clean;
|
}).clean;
|
||||||
}, [router]);
|
}, [router]);
|
||||||
|
|||||||
Reference in New Issue
Block a user