💩 dynamically import answers
Co-authored-by: Sindre Kjelsrud <kjelsrudsindre@gmail.com>
This commit is contained in:
parent
1d590a2411
commit
5467a3fb8c
1 changed files with 42 additions and 14 deletions
|
@ -1,34 +1,62 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import UserFormInput from "../../userform/UserFormInput.svelte";
|
import UserFormInput from "../../userform/UserFormInput.svelte";
|
||||||
import { convertAnswerData } from "$lib/convertAnswerData";
|
import { convertAnswerDataToNumeric, convertAnswerDataToString } from "$lib/convertAnswerData";
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
|
|
||||||
export let answerText:string
|
export let answerText:string
|
||||||
export let answerNum:number
|
export let answerNum:number
|
||||||
|
export let answerID:number
|
||||||
|
|
||||||
let answeredAll:boolean
|
let answeredAll:boolean
|
||||||
|
|
||||||
let knowledge:string
|
let knowledge:string
|
||||||
let empathy:string
|
let empathy:string
|
||||||
let helpfulness:string
|
let helpfulness:string
|
||||||
|
|
||||||
const handleFormUpdate = (category:string, value:string) => {
|
const handleFormUpdate = () => {
|
||||||
if (knowledge != "" && empathy != "" && helpfulness != "") {
|
if (knowledge != "" && empathy != "" && helpfulness != "") {
|
||||||
answeredAll = true
|
answeredAll = true
|
||||||
}
|
}
|
||||||
|
|
||||||
let numericValue = convertAnswerData(value)
|
let knowledgeNumeric = convertAnswerDataToNumeric(knowledge)
|
||||||
switch (category) {
|
let empathyNumeric = convertAnswerDataToNumeric(empathy)
|
||||||
case "knowledge":
|
let helpfulnessNumeric = convertAnswerDataToNumeric(helpfulness)
|
||||||
knowledge = numericValue
|
|
||||||
}
|
|
||||||
|
|
||||||
return ""
|
let allFormAnswers = localStorage.getItem("allFormAnswers")
|
||||||
|
|
||||||
|
// First time submitting answer. Create map-array and add it to localstorage
|
||||||
|
if (!allFormAnswers) {
|
||||||
|
const formAnswer = new Map()
|
||||||
|
formAnswer.set(answerID, [knowledgeNumeric, empathyNumeric, helpfulnessNumeric])
|
||||||
|
let allFormAnswers = Array.from(formAnswer.entries())
|
||||||
|
localStorage.setItem('allFormAnswers', JSON.stringify(allFormAnswers));
|
||||||
|
} else {
|
||||||
|
let existingFormAnswers = JSON.parse(allFormAnswers);
|
||||||
|
let retrievedFormAnswers = new Map(existingFormAnswers)
|
||||||
|
retrievedFormAnswers.set(answerID, [knowledgeNumeric, empathyNumeric, helpfulnessNumeric])
|
||||||
|
let newFormAnswers = Array.from(retrievedFormAnswers.entries())
|
||||||
|
localStorage.setItem('allFormAnswers', JSON.stringify(newFormAnswers));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
|
let allFormAnswers:string | null = localStorage.getItem("allFormAnswers")
|
||||||
|
|
||||||
|
if (allFormAnswers) {
|
||||||
|
let existingFormAnswers = JSON.parse(allFormAnswers);
|
||||||
|
let retrievedFormAnswers:Map<number, number[]> = new Map(existingFormAnswers)
|
||||||
|
let formAnswers = retrievedFormAnswers.get(answerID)
|
||||||
|
if (formAnswers) {
|
||||||
|
knowledge = convertAnswerDataToString(formAnswers[0])
|
||||||
|
empathy = convertAnswerDataToString(formAnswers[1])
|
||||||
|
helpfulness = convertAnswerDataToString(formAnswers[2])
|
||||||
|
}
|
||||||
|
} else {
|
||||||
knowledge=""
|
knowledge=""
|
||||||
empathy=""
|
empathy=""
|
||||||
helpfulness=""
|
helpfulness=""
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -41,8 +69,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col justify-start items-center gap-6">
|
<div class="flex flex-col justify-start items-center gap-6">
|
||||||
<UserFormInput formData={knowledge} on:update={(e) => knowledge = e.detail} inputType="radio" label="Kunnskap" options={["Veldig dårlig", "Dårlig", "Nøytral", "Bra", "Veldig bra"]}/>
|
<UserFormInput formData={knowledge} on:update={(e) => {knowledge = e.detail; handleFormUpdate()}} inputType="radio" label="Kunnskap" options={["Veldig dårlig", "Dårlig", "Nøytral", "Bra", "Veldig bra"]}/>
|
||||||
<UserFormInput formData={empathy} on:update={(e) => empathy = e.detail} inputType="radio" label="Empati" options={["Veldig dårlig", "Dårlig", "Nøytral", "Bra", "Veldig bra"]}/>
|
<UserFormInput formData={empathy} on:update={(e) => {empathy = e.detail; handleFormUpdate()}} inputType="radio" label="Empati" options={["Veldig dårlig", "Dårlig", "Nøytral", "Bra", "Veldig bra"]}/>
|
||||||
<UserFormInput formData={helpfulness} on:update={(e) => helpfulness = e.detail} inputType="radio" label="Hjelpsomhet" options={["Veldig dårlig", "Dårlig", "Nøytral", "Bra", "Veldig bra"]}/>
|
<UserFormInput formData={helpfulness} on:update={(e) => {helpfulness = e.detail; handleFormUpdate()}} inputType="radio" label="Hjelpsomhet" options={["Veldig dårlig", "Dårlig", "Nøytral", "Bra", "Veldig bra"]}/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
Reference in a new issue