Experiences #83
|
@ -37,6 +37,15 @@ export const load = async (pathName: string, previewQuestionsCount?: number, pre
|
|||
|
||||
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
|
||||
const getRating = async (expId: string) => {
|
||||
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
|
||||
}
|
||||
|
||||
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) => {}
|
||||
|
|
|
@ -12,26 +12,36 @@
|
|||
import Renderer from './Forms/Renderer.svelte'
|
||||
import Marker from '../../lib/components/Map/Marker.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 { navigate } from '$lib/router'
|
||||
import { Experience } from '$lib/TStypes/experiences'
|
||||
import Progressbar from '$lib/components/erant/Progressbar.svelte'
|
||||
import { writable } from 'svelte/store'
|
||||
|
||||
export let params: { gameurl: string }
|
||||
let gameData: Experience //
|
||||
$: [userProgress] = gameData ? getUserProgressAsStore(gameData?.$id) : []
|
||||
let gameData = writable<Experience>(null)
|
||||
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 {
|
||||
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
|
||||
view = 'experience-preview'
|
||||
})
|
||||
} catch (error) {
|
||||
navigate('/error')
|
||||
}
|
||||
})
|
||||
})*/
|
||||
|
||||
/*$: assets = gameData?.questions
|
||||
?.filter((q) => q.thumbnail !== null)
|
||||
|
|
Loading…
Reference in New Issue