Newer
Older
<div v-if="editedKeyboard !== null">
<a title="Back to keyboards" href="#" v-on:click="editedKeyboard = null">
⏴
</a>
<input type="text" v-model="keyboardName" />
<button type="button" v-on:click="updateKeyboardName">Save</button>
<KeyboardConfiguration :keyboard-index="editedKeyboard" />
<div v-else-if="selectedKeyboard !== null">
<a
title="Back to keyboards"
href="#"
v-on:click="selectedKeyboard = null"
<span>{{ keyboards[selectedKeyboard].name }}</span>
<KeyboardDisplay :keyboard-index="selectedKeyboard" />
</div>
<div v-else>
<strong>Keyboards manager</strong>
<hr />
<table class="keyboards">
<thead>
<tr>
<th>Keyboard</th>
<th>No. of keys</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr v-for="(k, index) in keyboards" :key="index">
<a href="#" v-on:click="selectedKeyboard = index">{{ k.name }}</a>
</td>
<td>{{ k.characters.length }}</td>
<td>
<button type="button" v-on:click="editedKeyboard = index">
Edit
</button>
</td>
</tr>
</tbody>
</table>
import { mapMutations } from "vuex";
import { mapState } from "vuex";
import KeyboardConfiguration from "./KeyboardConfiguration.vue";
import KeyboardDisplay from "./KeyboardDisplay.vue";
export default {
components: {
KeyboardConfiguration,
keyboardName: null,
computed: {
...mapState(["keyboards"]),
},
methods: {
...mapMutations(["updateName"]),
updateKeyboardName() {
this.updateName({
index: this.editedKeyboard,
name: this.keyboardName,
});
},
},
watch: {
editedKeyboard() {
if (this.editedKeyboard !== null)
this.keyboardName = this.keyboards[this.editedKeyboard].name;
},
},