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"
|
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
|
// SPA navigation for access later
|
||||||
window.navigate = navigate
|
window.navigate = navigate
|
||||||
// We only mutate document.title and content within .singlePage element
|
// We only mutate document.title and content within .singlePage element
|
||||||
router(".singlePage")
|
router(".singlePage")
|
||||||
// We need on initial load, then subsequent redirs
|
// 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
|
// requestAnimationFrame() delays graph draw until SPA routing is finished
|
||||||
const draw = () => {
|
window.addEventListener("million:navigate", () => requestAnimationFrame(draw))
|
||||||
const container = document.getElementById("graph-container")
|
window.addEventListener("DOMContentLoaded", () => requestAnimationFrame(draw))
|
||||||
// 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)
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue