Finished. Now some last styling
[vchess.git] / client / src / components / Language.vue
index 35c717f..ac4faa7 100644 (file)
@@ -7,26 +7,38 @@ div
       "fr": "Français",
     };
   input#modalLang.modal(type="checkbox")
-  div(role="dialog")
+  div(role="dialog" data-checkbox="modalLang")
     #language.card
       label.modal-close(for="modalLang")
-      form
+      form(@change="setLanguage")
         fieldset
-          label(for="langSelect") {{ $tr["Language"] }}
+          label(for="langSelect") {{ st.tr["Language"] }}
           select#langSelect
             each language,langCode in langName
-              option(value=langCode selected=(lang==langCode))
+              option(value=langCode)
                 =language
 </template>
 
 <script>
+import { store } from "@/store";
 export default {
-  name: "Language",
-       methods: {
-    // Used both on index and variant page, to switch language
+  name: "my-language",
+  data: function() {
+    return {
+      st: store.state,
+    };
+  },
+  mounted: function() {
+    // TODO: better style would be in pug directly, but how?
+    document.querySelectorAll("#langSelect > option").forEach(opt => {
+      if (opt.value == this.st.lang)
+        opt.selected = true;
+    });
+  },
+  methods: {
     setLanguage: function(e) {
       localStorage["lang"] = e.target.value;
-      this.$lang = e.target.value;
+      store.setLanguage(e.target.value);
     },
        },
 };