env.esq/src/main.js

21 lines
708 B
JavaScript
Raw Normal View History

2020-11-27 17:05:20 +01:00
import {xhrRequest} from "./utils/xhr.js";
2020-11-27 21:28:54 +01:00
import {RootViewModel} from "./RootViewModel.js";
import {RootView} from "./RootView.js";
2020-12-01 12:06:37 +01:00
import {Preferences} from "./Preferences.js";
2020-11-30 21:05:26 +01:00
import {guessApplicablePlatforms} from "./client/Platform.js";
2020-11-27 17:05:20 +01:00
2020-11-27 21:28:54 +01:00
export async function main(container) {
2020-11-30 21:05:26 +01:00
const vm = new RootViewModel({
request: xhrRequest,
openLink: url => location.href = url,
platforms: guessApplicablePlatforms(navigator.userAgent),
2020-12-01 12:06:37 +01:00
preferences: new Preferences(window.localStorage),
2020-11-30 21:05:26 +01:00
});
2020-11-30 11:24:08 +01:00
vm.updateHash(location.hash);
2020-11-27 21:28:54 +01:00
window.__rootvm = vm;
const view = new RootView(vm);
container.appendChild(view.mount());
2020-11-30 11:24:08 +01:00
window.addEventListener('hashchange', event => {
vm.updateHash(location.hash);
});
2020-11-27 17:05:20 +01:00
}