components/video.vue: fix keyup-on-blur code
the code authored in 52ee737276
(probably)
worked in the browser due to string to numeric type autoconversion but
didn't typecheck during container build.
namely, Object.keys(this.activeKeys) will always return a string[];
however, we need number[] for the sendData() call to typecheck.
this replaces the untyped object holding active keys with a Set<number>,
which is more expressive anyway.
This commit is contained in:
parent
40a9819253
commit
cf84eec999
@ -161,7 +161,7 @@
|
||||
private observer = new ResizeObserver(this.onResise.bind(this))
|
||||
private focused = false
|
||||
private fullscreen = false
|
||||
private activeKeys: any = {}
|
||||
private activeKeys: Set<number> = new Set()
|
||||
|
||||
get admin() {
|
||||
return this.$accessor.user.admin
|
||||
@ -409,10 +409,9 @@
|
||||
return
|
||||
}
|
||||
|
||||
let keys = Object.keys(this.activeKeys)
|
||||
for(let key of keys) {
|
||||
for (let key of this.activeKeys) {
|
||||
this.$client.sendData('keyup', { key })
|
||||
delete this.activeKeys[key]
|
||||
this.activeKeys.delete(key)
|
||||
}
|
||||
}
|
||||
|
||||
@ -503,7 +502,7 @@
|
||||
|
||||
let key = this.getCode(e)
|
||||
this.$client.sendData('keydown', { key })
|
||||
this.activeKeys[key] = true
|
||||
this.activeKeys.add(key)
|
||||
}
|
||||
|
||||
onKeyUp(e: KeyboardEvent) {
|
||||
@ -513,7 +512,7 @@
|
||||
|
||||
let key = this.getCode(e)
|
||||
this.$client.sendData('keyup', { key })
|
||||
delete this.activeKeys[key]
|
||||
this.activeKeys.delete(key)
|
||||
}
|
||||
|
||||
onResise() {
|
||||
|
Reference in New Issue
Block a user