Experiences #83
|
@ -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) => {}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue