ADD: Key press preview

This commit is contained in:
Robert Kossessa
2024-03-13 04:03:11 +01:00
parent f54d9e2072
commit a8e2ec7892
2 changed files with 36 additions and 11 deletions

View File

@@ -1,14 +1,15 @@
<template> <template>
<div class="flex"> <div class="flex">
<button <button
v-for="(color, key) in keys" v-for="(keyObject, key) in keys"
:key="key" :key="key"
:class="{ :class="{
'outline outline-white ': key === selected, 'outline outline-white ': key === selected,
'outline-zinc-400 hover:outline': key !== selected 'outline-zinc-400 hover:outline': key !== selected,
'bg-black/20': keyObject.pressed
}" }"
class="flex aspect-square flex-1 items-center justify-center rounded-[2px] outline-2 transition-all" class="flex aspect-square flex-1 items-center justify-center rounded-[2px] outline-2 transition-all"
:style="`box-shadow: 0 3px 20px -2px ${color.hex()}`" :style="`box-shadow: 0 3px 20px -2px ${keyObject.color.hex()}`"
@click="$emit('select', key)" @click="$emit('select', key)"
> >
<span <span
@@ -27,10 +28,22 @@ defineProps({
keys: { keys: {
type: Object, type: Object,
default: () => ({ default: () => ({
a: Color.hsl(265, 100, 50), a: {
b: Color.hsl(280, 100, 50), color: Color.hsl(265, 100, 50),
c: Color.hsl(300, 100, 50), pressed: false
d: Color.hsl(330, 100, 50) },
b: {
color: Color.hsl(0, 100, 50),
pressed: false
},
c: {
color: Color.hsl(120, 100, 50),
pressed: false
},
d: {
color: Color.hsl(60, 100, 50),
pressed: false
}
}) })
}, },
selected: { selected: {

View File

@@ -126,10 +126,22 @@ const { keyColor } = storeToRefs(deviceStore)
const keyColors = computed(() => { const keyColors = computed(() => {
return { return {
a: Color(keyColor.value('a', deviceStore.keyStates.a)), a: {
b: Color(keyColor.value('b', deviceStore.keyStates.b)), color: Color(keyColor.value('a', deviceStore.keyStates.a)),
c: Color(keyColor.value('c', deviceStore.keyStates.c)), pressed: deviceStore.keyStates.a
d: Color(keyColor.value('d', deviceStore.keyStates.d)) },
b: {
color: Color(keyColor.value('b', deviceStore.keyStates.b)),
pressed: deviceStore.keyStates.b
},
c: {
color: Color(keyColor.value('c', deviceStore.keyStates.c)),
pressed: deviceStore.keyStates.c
},
d: {
color: Color(keyColor.value('d', deviceStore.keyStates.d)),
pressed: deviceStore.keyStates.d
}
} }
}) })