<script setup lang="ts"> import { range } from 'lodash'; defineProps<{ result: ResultEndType; countBasic: number; countAdvanced: number; now: string | null | undefined; }>(); const emit = defineEmits<{ changeNow: [value: string]; changeCount: [num: number]; }>(); </script> <template> <div class="flex flex-col items-stretch p-4 gap-6 border-l border-base-300 bg-base-100" > <NuxtLink to="/" class="btn btn-warning btn-xl"> Wróć na stronę główną </NuxtLink> <button class="btn btn-info btn-lg" @click="emit('changeNow', 'basic')"> Pytania podstawowe </button> <div class="grid grid-cols-[repeat(auto-fit,50px)] gap-2 justify-around w-full" > <input v-for="num in range(0, 20)" :key="`choose-${num}-basic`" type="radio" :aria-label="(num + 1).toString()" class="btn btn-md" name="chooser" :class="`${ result.basic[num].question?.correct_answer === result.basic[num].chosen_answer ? 'btn-success' : 'btn-error' } ${now === 'basic' && countBasic === num ? 'outline-set-solid outline-2' : ''}`" :checked="now === 'basic' ? countBasic === num : false" @click=" emit('changeNow', 'basic'); emit('changeCount', num); " /> </div> <button class="btn btn-info btn-lg" @click="emit('changeNow', 'advanced')"> Pytania specjalistyczne </button> <div class="grid grid-cols-[repeat(auto-fit,50px)] gap-2 justify-around w-full" > <input v-for="num in range(0, 12)" :key="`choose-${num}-advanced`" type="radio" :aria-label="`${num + 1}`" class="btn btn-md" name="chooser" :class="`${ result.advanced[num].question?.correct_answer === result.advanced[num].chosen_answer ? 'btn-success' : 'btn-error' } ${now === 'advanced' && countAdvanced === num ? 'outline-set-solid outline-2' : ''}`" :checked="now === 'advanced' ? countAdvanced === num : false" @click=" emit('changeNow', 'advanced'); emit('changeCount', num); " /> </div> <div class="flex-1"> <div class="*:inline">Punkty: <slot name="points" /> / 74</div> <div class="*:inline">Wynik: <slot name="resultTrueFalse" /></div> </div> <NuxtLink to="/exam" class="btn btn-warning btn-xl"> Rozpocznij jeszcze raz </NuxtLink> </div> </template> <style scoped> .outline-set-solid { outline-style: solid; } </style>