diff options
Diffstat (limited to 'src/client')
5 files changed, 13 insertions, 11 deletions
diff --git a/src/client/app/common/scripts/stream.ts b/src/client/app/common/scripts/stream.ts index 23f839ae85..a1b4223b55 100644 --- a/src/client/app/common/scripts/stream.ts +++ b/src/client/app/common/scripts/stream.ts @@ -21,7 +21,7 @@ export default class Stream extends EventEmitter { const user = os.store.state.i; - this.stream = new ReconnectingWebsocket(wsUrl + (user ? `?i=${user.token}` : '')); + this.stream = new ReconnectingWebsocket(wsUrl + (user ? `?i=${user.token}` : ''), '', { minReconnectionDelay: 1 }); // https://github.com/pladaria/reconnecting-websocket/issues/91 this.stream.addEventListener('open', this.onOpen); this.stream.addEventListener('close', this.onClose); this.stream.addEventListener('message', this.onMessage); diff --git a/src/client/app/common/views/components/games/reversi/reversi.game.vue b/src/client/app/common/views/components/games/reversi/reversi.game.vue index bd0401f785..315fb464b2 100644 --- a/src/client/app/common/views/components/games/reversi/reversi.game.vue +++ b/src/client/app/common/views/components/games/reversi/reversi.game.vue @@ -200,6 +200,7 @@ export default Vue.extend({ // 通信を取りこぼしてもいいように定期的にポーリングさせる if (this.game.isStarted && !this.game.isEnded) { this.pollingClock = setInterval(() => { + if (this.game.isEnded) return; const crc32 = CRC32.str(this.logs.map(x => x.pos.toString()).join('')); this.connection.send('check', { crc32: crc32 diff --git a/src/client/app/common/views/components/games/reversi/reversi.room.vue b/src/client/app/common/views/components/games/reversi/reversi.room.vue index 9ee1a78b86..c1657f49e5 100644 --- a/src/client/app/common/views/components/games/reversi/reversi.room.vue +++ b/src/client/app/common/views/components/games/reversi/reversi.room.vue @@ -230,7 +230,7 @@ export default Vue.extend({ this.game.map = Object.values(maps).find(x => x.name == this.mapName).data; } this.$forceUpdate(); - this.updateSettings(); + this.updateSettings('map'); }, onPixelClick(pos, pixel) { diff --git a/src/client/app/common/views/components/signin.vue b/src/client/app/common/views/components/signin.vue index 671158a113..03ee51d06e 100644 --- a/src/client/app/common/views/components/signin.vue +++ b/src/client/app/common/views/components/signin.vue @@ -10,7 +10,7 @@ <span>{{ $t('password') }}</span> <template #prefix><fa icon="lock"/></template> </ui-input> - <ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required> + <ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="text" pattern="^[0-9]{6}$" autocomplete="off" spellcheck="false" required> <span>{{ $t('@.2fa') }}</span> <template #prefix><fa icon="gavel"/></template> </ui-input> diff --git a/src/client/app/common/views/components/ui/select.vue b/src/client/app/common/views/components/ui/select.vue index e8b45a4a29..ec5145ca30 100644 --- a/src/client/app/common/views/components/ui/select.vue +++ b/src/client/app/common/views/components/ui/select.vue @@ -5,10 +5,9 @@ <span class="label" ref="label"><slot name="label"></slot></span> <div class="prefix" ref="prefix"><slot name="prefix"></slot></div> <select ref="input" - :value="v" + v-model="v" :required="required" :disabled="disabled" - @input="$emit('input', $event.target.value)" @focus="focused = true" @blur="focused = false" > @@ -56,20 +55,22 @@ export default Vue.extend({ }, data() { return { - v: this.value, focused: false }; }, computed: { + v: { + get() { + return this.value; + }, + set(v) { + this.$emit('input', v); + } + }, filled(): boolean { return this.v != '' && this.v != null; } }, - watch: { - value(v) { - this.v = v; - } - }, mounted() { if (this.$refs.prefix) { this.$refs.label.style.left = (this.$refs.prefix.offsetLeft + this.$refs.prefix.offsetWidth) + 'px'; |