mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-26 21:36:23 +00:00
26 lines
909 B
JavaScript
26 lines
909 B
JavaScript
|
import { router, navigate } from "https://unpkg.com/million/dist/router.mjs"
|
||
|
|
||
|
export const init = (loader) => {
|
||
|
// 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)
|
||
|
}
|