import streamlit as st
from utils.levels import complete_level, render_page, initialize_level
from utils.login import initialize_login
import random
import json

LEVEL = 5

initialize_login()
initialize_level()


if "questions" not in st.session_state:
    with open("assets/quiz.json") as f:
        questions = json.load(f)

    for i in range(len(questions)):
        random.shuffle(questions[i]["options"])
    random.shuffle(questions)

    st.session_state["questions"] = questions


def step_page():
    st.header("Quiz")
    st.markdown(
        """Now that you've learned about how Emotion Detection work, let's test your knowledge with a quiz!"""
    )

    for i in range(len(st.session_state["questions"])):
        st.subheader(f"Question {i + 1}")
        question = st.session_state["questions"][i]
        st.markdown(question["question"])
        answer = st.radio("Select an answer:", question["options"], key=f"radio{i}")

        if st.session_state.get("EVALUATE", False):
            if answer == question["answer"]:
                st.success("Correct!")
            else:
                st.error("Incorrect! Try Again")

    if st.button("Evaluate"):
        st.session_state["EVALUATE"] = True
        st.experimental_rerun()

    st.info("Click on the button below to complete the tutorial!")
    if st.button("Complete"):
        complete_level(LEVEL)


render_page(step_page, LEVEL)