v-if="showAnalyzeBtn"
@click="gotoAnalyze()"
)
- | {{ st.tr["Analyse"] }}
+ | {{ st.tr["Analysis mode"] }}
.row
.col-sm-12.col-md-8.col-md-offset-2.col-lg-6.col-lg-offset-3
div(
gameInfo: {
vname: "",
mode: "versus",
- }
+ },
+ V: null,
};
},
watch: {
},
computed: {
showAnalyzeBtn: function() {
- return (this.display=='rules' && (!window.V || V.CanAnalyze));
+ return this.V && this.V.CanAnalyze;
},
content: function() {
if (!this.gameInfo.vname) return ""; //variant not set yet
return getDiagram(args);
},
re_setVariant: async function(vname) {
- const vModule = await import("@/variants/" + vname + ".js");
- window.V = vModule.VariantRules;
- this.gameInfo.vname = vname;
+ await import("@/variants/" + vname + ".js")
+ .then((vModule) => {
+ this.V = window.V = vModule.VariantRules;
+ this.gameInfo.vname = vname;
+ })
+ .catch((err) => {
+ // Soon after component creation, st.tr might be uninitialized.
+ // Set a timeout to let a chance for the message to show translated.
+ const text = "Mispelled variant name";
+ setTimeout(() => {
+ alert(this.st.tr[text] || text);
+ this.$router.replace("/variants");
+ }, 500);
+ });
},
startGame: function(mode) {
if (this.gameInProgress) return;