nuxt-prawo-jazdy/components/question/Advanced.vue
2025-04-15 19:51:13 +02:00

57 lines
1.2 KiB
Vue

<script lang="ts" setup>
defineProps<{
question: AdvancedQuestion | undefined;
}>();
const answer = defineModel<string | null | undefined>();
</script>
<template>
<div
class="flex flex-col gap-5 border-t px-4 py-5 border-slate-300 bg-slate-100"
>
<div class="text-xl">
{{ question?.text }}
</div>
<div class="flex flex-col gap-3">
<div
v-for="[element, value] of Object.entries({
A: question?.answer_a,
B: question?.answer_b,
C: question?.answer_c,
})"
:key="`btn_answer_${element}_${value}`"
>
<input
:id="`odp_${element}`"
v-model="answer"
type="radio"
name="abc"
:value="element"
class="hidden"
/>
<label :for="`odp_${element}`">
<div
:class="answer === element ? ' !btn-secondary' : ''"
class="btn btn-primary btn-lg"
>
{{ element }}
</div>
<span class="block">{{ value }}</span>
</label>
</div>
</div>
</div>
</template>
<style scoped>
label {
@apply cursor-pointer flex flex-row gap-2 items-center;
&:hover {
@apply bg-slate-200;
}
}
span {
@apply text-lg;
}
</style>