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