Experiences #83

Merged
Ota-Prokopec merged 2 commits from experiences into master 2023-04-01 20:04:36 +00:00
2 changed files with 33 additions and 6 deletions
Showing only changes of commit 9c6f720684 - Show all commits

View File

@ -37,6 +37,15 @@ export const load = async (pathName: string, previewQuestionsCount?: number, pre
return experience return experience
} }
export const loadAsStore = (pathName: string, previewQuestionsCount?: number, preview?: Function) => {
const store = writable<Experience>(null)
load(pathName, previewQuestionsCount, preview).then(experience => {
store.set(experience)
})
return [store]
}
//Fetch of Rating //Fetch of Rating
const getRating = async (expId: string) => { const getRating = async (expId: string) => {
const { documents, total } = await databases.listDocuments('63cef30d6da945dd4250', '63ee6353ebb174cf815d', [Query.equal('ExpID', expId)]) const { documents, total } = await databases.listDocuments('63cef30d6da945dd4250', '63ee6353ebb174cf815d', [Query.equal('ExpID', expId)])
@ -145,4 +154,12 @@ export const getUserProgressAsStore = (experienceId: string) => {
return [store, loading] as const return [store, loading] as const
} }
export const getExperienceByURL = async(url: string) => {
return (await databases.listDocuments("63cef30d6da945dd4250", "63cef4bd210fdf2e58880", [Query.equal("ExpURL", url)])).documents[0]
}
export const getExperienceByURLAsStore = (url: string) => {
const store = writable<Models.Document>(null)
getExperienceByURL(url).then(exp => store.set(exp))
return [store] as const
}
// !pridat trideni podle kategorie! export const getExperiencesByCategory = async (category: string) => {} // !pridat trideni podle kategorie! export const getExperiencesByCategory = async (category: string) => {}

View File

@ -12,26 +12,36 @@
import Renderer from './Forms/Renderer.svelte' import Renderer from './Forms/Renderer.svelte'
import Marker from '../../lib/components/Map/Marker.svelte' import Marker from '../../lib/components/Map/Marker.svelte'
import { onMount } from 'svelte' import { onMount } from 'svelte'
import { getUserProgressAsStore, load } from '$lib/utils/database/experience' import { getExperienceByURLAsStore, getUserProgress, getUserProgressAsStore, load, loadAsStore } from '$lib/utils/database/experience'
import { getLocationDataFromLatAndLong } from '$lib/utils/locations' import { getLocationDataFromLatAndLong } from '$lib/utils/locations'
import { navigate } from '$lib/router' import { navigate } from '$lib/router'
import { Experience } from '$lib/TStypes/experiences' import { Experience } from '$lib/TStypes/experiences'
import Progressbar from '$lib/components/erant/Progressbar.svelte' import Progressbar from '$lib/components/erant/Progressbar.svelte'
import { writable } from 'svelte/store'
export let params: { gameurl: string } export let params: { gameurl: string }
let gameData: Experience // let gameData = writable<Experience>(null)
$: [userProgress] = gameData ? getUserProgressAsStore(gameData?.$id) : [] let [exp] = getExperienceByURLAsStore(params.gameurl)
$: [userProgress] = gameData ? getUserProgressAsStore($exp?.$id) : []
onMount(async () => {
$gameData = loadAsStore(params.gameurl, $userProgress.length+4 || 8, (preview) => {
$gameData = preview
view = 'experience-preview'
})
/*onMount(async () => {
try { try {
gameData = await load(params.gameurl, 2, (preview) => { console.log($userProgress?.length || 8)
gameData = await load(params.gameurl, (await getUserProgress(gameData?.$id)) || 8, (preview) => {
gameData = preview gameData = preview
view = 'experience-preview' view = 'experience-preview'
}) })
} catch (error) { } catch (error) {
navigate('/error') navigate('/error')
} }
}) })*/
/*$: assets = gameData?.questions /*$: assets = gameData?.questions
?.filter((q) => q.thumbnail !== null) ?.filter((q) => q.thumbnail !== null)