clickable quick select and quick-select reorder
This commit is contained in:
parent
f24c2cd191
commit
1b3360862f
1 changed files with 20 additions and 5 deletions
|
@ -24,12 +24,21 @@ const inventory = computed(() => {
|
||||||
})
|
})
|
||||||
|
|
||||||
const quickSelect = ref([0, 1, 2, 3, 4, 5, 6, 7, 8])
|
const quickSelect = ref([0, 1, 2, 3, 4, 5, 6, 7, 8])
|
||||||
|
const hoveredItem = ref<number | null>(null)
|
||||||
|
|
||||||
function setSelection(i: number) {
|
function setSelection(i: number) {
|
||||||
selectedIndex.value = i
|
selectedIndex.value = i
|
||||||
emit('selection', inventory.value[i])
|
emit('selection', inventory.value[i])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function quickSelection(i: number) {
|
||||||
|
if (props.shown && hoveredItem.value !== null) {
|
||||||
|
quickSelect.value[i] = hoveredItem.value
|
||||||
|
} else {
|
||||||
|
setSelection(i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function handleQuickSelect(event: KeyboardEvent) {
|
function handleQuickSelect(event: KeyboardEvent) {
|
||||||
switch (event.key) {
|
switch (event.key) {
|
||||||
case '1':
|
case '1':
|
||||||
|
@ -41,11 +50,8 @@ function handleQuickSelect(event: KeyboardEvent) {
|
||||||
case '7':
|
case '7':
|
||||||
case '8':
|
case '8':
|
||||||
case '9':
|
case '9':
|
||||||
setSelection(quickSelect.value[parseInt(event.key) - 1])
|
quickSelection(quickSelect.value[parseInt(event.key) - 1])
|
||||||
break
|
break
|
||||||
|
|
||||||
default:
|
|
||||||
console.log('pressed key', event.key)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +62,11 @@ onUnmounted(() => document.removeEventListener('keypress', handleQuickSelect))
|
||||||
<template>
|
<template>
|
||||||
<section id="quick-select">
|
<section id="quick-select">
|
||||||
<ol>
|
<ol>
|
||||||
<li class="item" :class="inventory[i] && getItemClass(inventory[i])" v-for="i in quickSelect">
|
<li v-for="idx, i in quickSelect"
|
||||||
|
class="item"
|
||||||
|
:class="inventory[idx] && getItemClass(inventory[idx])"
|
||||||
|
@click="setSelection(idx)"
|
||||||
|
>
|
||||||
<span> {{ i + 1 }} </span>
|
<span> {{ i + 1 }} </span>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
@ -76,12 +86,17 @@ onUnmounted(() => document.removeEventListener('keypress', handleQuickSelect))
|
||||||
selected: selectedIndex === i
|
selected: selectedIndex === i
|
||||||
}]"
|
}]"
|
||||||
@click="setSelection(i)"
|
@click="setSelection(i)"
|
||||||
|
@mouseover="hoveredItem = i"
|
||||||
|
@mouseout="hoveredItem = null"
|
||||||
>
|
>
|
||||||
<b>
|
<b>
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
<template v-if="item.amount > 1">
|
<template v-if="item.amount > 1">
|
||||||
(×{{ item.amount }})
|
(×{{ item.amount }})
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="quickSelect.indexOf(i) >= 0">
|
||||||
|
[{{ quickSelect.indexOf(i) + 1 }}]
|
||||||
|
</template>
|
||||||
</b>
|
</b>
|
||||||
</li>
|
</li>
|
||||||
</template>
|
</template>
|
||||||
|
|
Loading…
Add table
Reference in a new issue