Rename API and generalize router API
parent
771ebd8031
commit
d38f9bec70
@ -1,25 +1,12 @@
|
||||
import { router, navigate } from "https://unpkg.com/million@1.8.9-0/dist/router.mjs"
|
||||
|
||||
export const init = (loader) => {
|
||||
export const attachSPARouting = (draw) => {
|
||||
// SPA navigation for access later
|
||||
window.navigate = navigate
|
||||
// We only mutate document.title and content within .singlePage element
|
||||
router(".singlePage")
|
||||
// We need on initial load, then subsequent redirs
|
||||
window.addEventListener("million:navigate", () => callback(loader))
|
||||
window.addEventListener("DOMContentLoaded", () => callback(loader))
|
||||
}
|
||||
|
||||
export const callback = (loader) => {
|
||||
// requestAnimationFrame() delays graph draw until SPA routing is finished
|
||||
const draw = () => {
|
||||
const container = document.getElementById("graph-container")
|
||||
// retry if the graph is not ready
|
||||
if (!container) return requestAnimationFrame(draw)
|
||||
// clear the graph in case there is anything within it
|
||||
container.textContent = ""
|
||||
|
||||
loader()
|
||||
}
|
||||
requestAnimationFrame(draw)
|
||||
window.addEventListener("million:navigate", () => requestAnimationFrame(draw))
|
||||
window.addEventListener("DOMContentLoaded", () => requestAnimationFrame(draw))
|
||||
}
|
||||
|
Loading…
Reference in New Issue