<style scoped>
    .question {
      padding: 0.5em;
    }

    button {
      width: 80%;
      margin-bottom: 5%;
    }    
    
    .slider {
        -webkit-appearance: none;
        appearance: none;
        width: 100%;
        height: 1em;
        background: #d3d3d3;
        outline: none;
        opacity: 0.7;
        -webkit-transition: .2s;
        transition: opacity .2s;
    }

    .slider:hover {
        opacity: 1;
    }

    .slider::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 2.5em;
        height: 2.5em;
        background: #e94a47;
        cursor: pointer;
    }

    .slider::-moz-range-thumb {
        width: 2.5em;
        height: 2.5em;
        background: #e94a47;
        cursor: pointer;
    }
</style>

<template>
    <div class="question">
        <p>{{ question }}</p>
        <div class="button-wrapper bottom-aligned">
            <div v-if="type === 'yesno'" class="question-choice">
                <button v-on:click="$store.commit('nextQuestion')">Ja</button>
                <button v-on:click="$store.commit('nextQuestion')">Nein</button>
            </div>
            <div v-if="type === 'slider'" class="question-slider">
                <p>{{ selection }}</p>
                <input v-model="selection" type="range" min="0" max="150" value="18" class="slider">
            </div>
            <div v-if="type === 'choice'" class="question-options">
                <button v-bind:key="answer.text"
                        v-for="answer in answers"
                        v-on:click="answerQuestion(answer.value)">{{ answer.text }}</button>
            </div>
            <router-link v-bind:to="'/questionnaire/help/' + $route.params.id" style="text-decoration: none"><button class="alert">Ich brauche Hilfe zu dieser Frage</button></router-link>
        </div>
    </div>
</template>

<script>
    import router from "@/router";

    export default {
        name: "Question",
        props: {
            type: String,
            question: String,
            answers: Array
        },
        data() {
            return {
                selection: 0
            }
        },
        methods: {
            answerQuestion(value) {
                this.$store.commit('answerQuestion', {
                    id: this.$route.params.id,
                    answer: value
                })

                if (this.$route.params.id < this.$store.state.questions.length - 1) {
                    const nextQuestion = parseInt(this.$route.params.id) + 1
                    this.$router.push("/questionnaire/" + nextQuestion)
                }
                else {
                    this.$store.commit("setSurveyCompleted")
                    router.push('/results')
                }
            }
        },
        mounted () {
            document.addEventListener("backbutton", this.goBack, false);
        },
        beforeDestroy () {
            document.removeEventListener("backbutton", this.goBack);
        }
    }
</script>