Files
ScoreSaberUtils-Script/src/pages/page-handler.ts
Liam c8990f21cd
Some checks failed
Deploy App / docker (ubuntu-latest) (push) Failing after 7s
re-code the userscript
2024-04-25 23:39:26 +01:00

34 lines
803 B
TypeScript

import Page from "./page";
import PlayerPage from "./impl/player-page";
import {pageChangeCallback} from "../common/page-utils";
export default class PageHandler {
private pages: Page[] = [];
constructor() {
// Register the pages to handle
this.registerPage(new PlayerPage());
// Handle page changes
pageChangeCallback((path) => {
console.log(`Page changed to: ${path}`);
for (let page of this.pages) {
if (path.startsWith(page.route)) {
console.log(`Handling page: ${page.route}`);
page.onLoad();
}
}
});
}
/**
* Registers a page to be handled
*
* @param page The page to register
*/
private registerPage(page: Page) {
console.log(`Registered page: ${page.route}`)
this.pages.push(page);
}
}