matrix.to/src/main.js

21 lines
708 B
JavaScript
Raw Normal View History

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