Apply store pattern to track global app state
[vchess.git] / client / src / main.js
CommitLineData
625022fd
BA
1import Vue from "vue";
2import App from "./App.vue";
3import router from "./router";
c66a829b
BA
4// Global store: see https://medium.com/fullstackio/managing-state-in-vue-js-23a0352b1c87
5import { store } from "./store";
625022fd
BA
6
7Vue.config.productionTip = false;
8
9new Vue({
10 router,
11 render: function(h) {
12 return h(App);
98db2082 13 },
ccd4a2b7 14// watch: {
ccd4a2b7
BA
15// $route: function(newRoute) {
16// //console.log(this.$route.params);
17// console.log("navig to " + newRoute);
18// //TODO: conn.send("enter", newRoute)
19// },
20// },
c66a829b
BA
21 created: function() {
22 window.doClick = (elemId) => { document.getElementById(elemId).click() };
23
24 //TODO: si une partie en cours dans storage, rediriger vers cette partie
25 //(à condition que l'URL n'y corresponde pas déjà !)
26 // TODO: à l'arrivée sur le site : set peerID (un identifiant unique
27 // en tout cas...) si pas trouvé dans localStorage "myid"
28 // (l'identifiant de l'utilisateur si connecté)
29// if (!!localStorage["variant"])
30// location.hash = "#game?id=" + localStorage["gameId"];
31 },
32 // Later, for icons (if using feather):
33// mounted: function() {
34// feather.replace();
35// },
36 mounted: function() {
37 store.initialize();
38 },
625022fd
BA
39}).$mount("#app");
40
41// TODO: get rules, dynamic import
42// Load a rules page (AJAX)
43// router.get("/rules/:vname([a-zA-Z0-9]+)", access.ajax, (req,res) => {
c66a829b
BA
44// const lang = selectLanguage(req, res);
45// res.render("rules/" + req.params["vname"] + "/" + lang);
625022fd 46// });
03470390
BA
47//
48// board2, 3, 4 automatiquement, mais rules separement (les 3 pour une)
49// game : aussi systématique
50// problems: on-demand
51//
03470390 52// See https://router.vuejs.org/guide/essentials/dynamic-matching.html#reacting-to-params-changes
c66a829b
BA
53// created: function() {
54// window.onhashchange = this.setDisplay;
55// },
8d61fc4a 56//});