diff --git a/src/lib/TStypes/expiriences.ts b/src/lib/TStypes/expiriences.ts new file mode 100644 index 0000000..db04eee --- /dev/null +++ b/src/lib/TStypes/expiriences.ts @@ -0,0 +1,31 @@ +export type checkPoint = { + $id: string + CPAfter: string + CPAnswerID: string + CPHint: string + CPImage?: string + CPLocation: number[] + CPMoveHelp?: string + CPName: string + CPOptions?: string[] + CPText: string + CPType: 'CHECKBOX' | 'TEXT' | 'INFO' | 'RADIO' | 'NUMBER' +} + +export type expirience = { + ExpApproved: boolean + ExpCpsID: string[] + ExpCategory?: string + ExpEnd0: string + ExpEnd60: string + ExpEnd100: string + ExpImage?: string + ExpIntroduction: string + ExpLocation: number[] + ExpName: string + ExpStart: string + ExpTestingCode: string + ExpURL: string + UserID: string + checkPoint: Array +} diff --git a/src/lib/components/Inputs/Radio.svelte b/src/lib/components/Inputs/Radio.svelte index 2c09d93..98bcaa9 100644 --- a/src/lib/components/Inputs/Radio.svelte +++ b/src/lib/components/Inputs/Radio.svelte @@ -2,7 +2,7 @@ import { idGenerator } from '../../utils/IdGenerator' const id = idGenerator() - export let group = false + export let group = '' export let value diff --git a/src/lib/utils/game.ts b/src/lib/utils/game.ts index 29ca072..7800b15 100644 --- a/src/lib/utils/game.ts +++ b/src/lib/utils/game.ts @@ -5,6 +5,7 @@ import database from 'svelte-appwrite-client/src/lib/database' export const load = async (pathName: string) => { const checkPoints = [] const game = (await databases.listDocuments('63cef30d6da945dd4250', '63cef4bd210fdf2e5888', [Query.equal('ExpURL', pathName)])).documents[0] + const checkPointsIds = game.ExpCPsID for (const checkPointId of checkPointsIds) { @@ -13,3 +14,13 @@ export const load = async (pathName: string) => { game['checkPoints'] = checkPoints return game } + +export const answer = async (checkPointId: string, answer: any) => { + const checkPoint = await databases.getDocument('63cef30d6da945dd4250', '63cef84d908acf805758', checkPointId) + console.log({ checkPoint }) + const { CPType, CPAnswerID } = checkPoint + const correctAnswer = (await databases.getDocument('63cef30d6da945dd4250', '63dd5c2b764061e40025', CPAnswerID)).CPAnswer + + if (CPType === 'CHECKBOX') return JSON.stringify(answer) === JSON.stringify(correctAnswer) + if (CPType === 'RADIO' || CPType === 'NUMBER' || CPType === 'TEXT') return answer === correctAnswer[0] +} diff --git a/src/routes/game/Forms/MultiChoiceForm.svelte b/src/routes/game/Forms/MultiChoiceForm.svelte index 251af60..2c38276 100644 --- a/src/routes/game/Forms/MultiChoiceForm.svelte +++ b/src/routes/game/Forms/MultiChoiceForm.svelte @@ -1,43 +1,37 @@ - { nextQuestion() - myAnswers = new Array(answers.length).fill(false) + myAnswers = new Array(checkPoint.CPOptions.length).fill(false) }} {control} - on:submit={controlMultiForm} + on:submit={async () => answerCheckBox()} > - {gameData.name} - {@html gameData.question.question} + {name} + {@html checkPoint.CPText}
- {#each answers as { label }, i} + {#each checkPoint.CPOptions as label, i} {label} diff --git a/src/routes/game/Forms/NumberForm.svelte b/src/routes/game/Forms/NumberForm.svelte index 879b5e4..ed32522 100644 --- a/src/routes/game/Forms/NumberForm.svelte +++ b/src/routes/game/Forms/NumberForm.svelte @@ -1,27 +1,32 @@ - { nextQuestion() myAnswer = '' }} {control} - on:submit={() => (control = myAnswer !== '' ? myAnswer == answer : null)} + on:submit={() => (myAnswer !== '' ? answer_() : null)} > - {gameData.name} - {@html gameData.question.question} + {name} + {@html checkPoint.CPText}
diff --git a/src/routes/game/Forms/Renderer.svelte b/src/routes/game/Forms/Renderer.svelte index 9f5a601..e6b9a5b 100644 --- a/src/routes/game/Forms/Renderer.svelte +++ b/src/routes/game/Forms/Renderer.svelte @@ -21,14 +21,14 @@ } let control = null // if true => spravne if false spatne - let view: 'question' | 'map' = 'map' + let view: 'question' | 'map' = 'question' export let gameData: any = {} //data $: console.log(gameData) let clientAnswers = { //user data about game - pos: 1, + pos: 0, end: gameData.checkPoints.length, //kolik otázek points: 0, //body } @@ -80,7 +80,7 @@ {#if view === 'question'} {#if clientAnswers.pos !== clientAnswers.end} - + {:else} Získali jste {clientAnswers.points} / {clientAnswers.end * 2} bodů diff --git a/src/routes/game/Forms/SingleChoiceForm.svelte b/src/routes/game/Forms/SingleChoiceForm.svelte index 518812c..5038329 100644 --- a/src/routes/game/Forms/SingleChoiceForm.svelte +++ b/src/routes/game/Forms/SingleChoiceForm.svelte @@ -1,35 +1,36 @@ - { nextQuestion() myAnswer = '' }} - on:submit={() => (control = typeof myAnswer === 'string' && myAnswer !== '' ? myAnswer === rightAnswer() : null)} + on:submit={() => (control = myAnswer !== '' ? answer_() : null)} > - {gameData.name} - {@html gameData.question.question} + {name} + {@html checkPoint.CPText}
- {#each answers as { label }} + {#each checkPoint.CPOptions as label} {label} diff --git a/src/routes/game/Forms/TextForm.svelte b/src/routes/game/Forms/TextForm.svelte index 46b3648..e164532 100644 --- a/src/routes/game/Forms/TextForm.svelte +++ b/src/routes/game/Forms/TextForm.svelte @@ -1,31 +1,32 @@ - { nextQuestion() myAnswer = '' }} - on:submit={() => (control = myAnswer !== '' ? compare(myAnswer, answer) : null)} + on:submit={() => (myAnswer !== '' ? answer_() : null)} > - {gameData.name} - {@html gameData.question.question} + {name} + {@html checkPoint.CPText}
diff --git a/src/routes/game/game.svelte b/src/routes/game/game.svelte index 0b6dc68..0b0c45a 100644 --- a/src/routes/game/game.svelte +++ b/src/routes/game/game.svelte @@ -22,8 +22,6 @@ //const [gameData] = collections.expiriences.getDocument([Query.equal('ExpURL', params.gameurl)]) - $: console.log($data) - let loading: boolean = true onMount(async () => {