fix (admin): multi tabs issues

This commit is contained in:
MickaelK 2025-08-04 13:01:05 +10:00
parent d4f5cb9ecf
commit 5e7c5094b6
2 changed files with 12 additions and 0 deletions

View file

@ -1,4 +1,5 @@
import { createElement, createRender } from "../../lib/skeleton/index.js";
import rxjs, { effect } from "../../lib/rx.js";
import { qs } from "../../lib/dom.js";
import { CSS } from "../../helpers/loader.js";
@ -25,4 +26,12 @@ export default AdminHOC(async function(render) {
componentStorageBackend(createRender(qs($page, "[data-bind=\"backend\"]")));
componentAuthenticationMiddleware(createRender(qs($page, "[data-bind=\"authentication_middleware\"]")));
// feature: request to reload page
effect(rxjs.fromEvent(new BroadcastChannel("admin"), "message").pipe(
rxjs.filter(({ data }) => data === "reload"),
rxjs.mergeMap(() => rxjs.fromEvent(document, "visibilitychange")),
rxjs.filter(() => document.visibilityState === "visible"),
rxjs.tap(() => location.reload()),
));
});

View file

@ -128,5 +128,8 @@
document.querySelector("form").onsubmit = (e) => {
e.target.querySelector("button").setAttribute("disabled", "true");
};
// feature: request admin refresh
const bus = new BroadcastChannel("admin");
bus.postMessage("reload");
})();
</script>