💩 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"> | ||||
|     import UserFormInput from "../../userform/UserFormInput.svelte"; | ||||
|     import { convertAnswerData } from "$lib/convertAnswerData"; | ||||
|     import { convertAnswerDataToNumeric, convertAnswerDataToString } from "$lib/convertAnswerData"; | ||||
| 	import { onMount } from "svelte"; | ||||
| 
 | ||||
|     export let answerText:string | ||||
|     export let answerNum:number | ||||
|     export let answerID:number | ||||
| 
 | ||||
|     let answeredAll:boolean | ||||
|      | ||||
|     let knowledge:string | ||||
|     let empathy:string | ||||
|     let helpfulness:string | ||||
| 
 | ||||
|     const handleFormUpdate = (category:string, value:string) => { | ||||
|     const handleFormUpdate = () => { | ||||
|         if (knowledge != "" && empathy != "" && helpfulness != "") { | ||||
|             answeredAll = true | ||||
|         } | ||||
| 
 | ||||
|         let numericValue = convertAnswerData(value) | ||||
|         switch (category) { | ||||
|             case "knowledge": | ||||
|                 knowledge = numericValue | ||||
|         } | ||||
|         let knowledgeNumeric = convertAnswerDataToNumeric(knowledge) | ||||
|         let empathyNumeric = convertAnswerDataToNumeric(empathy) | ||||
|         let helpfulnessNumeric = convertAnswerDataToNumeric(helpfulness) | ||||
| 
 | ||||
|         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(() => { | ||||
|         knowledge="" | ||||
|         empathy="" | ||||
|         helpfulness="" | ||||
|         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="" | ||||
|             empathy="" | ||||
|             helpfulness="" | ||||
|         } | ||||
| 
 | ||||
|     }) | ||||
| 
 | ||||
| </script> | ||||
|  | @ -41,8 +69,8 @@ | |||
|         </div> | ||||
|     </div> | ||||
|     <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={empathy} on:update={(e) => empathy = e.detail} 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={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; 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; handleFormUpdate()}} inputType="radio" label="Hjelpsomhet" options={["Veldig dårlig", "Dårlig", "Nøytral", "Bra", "Veldig bra"]}/> | ||||
|     </div> | ||||
| </div> | ||||
		Reference in a new issue
	
	 haraldnilsen
						haraldnilsen