Fetch course for CSR
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
<script>
|
<script>
|
||||||
import MODES from "../../../../../utils/constants/mode.js";
|
import MODES from '../../../../../utils/constants/mode.js';
|
||||||
import EditMode from "./EditMode.svelte";
|
import EditMode from './EditMode.svelte';
|
||||||
import ViewMode from "./ViewMode.svelte";
|
import ViewMode from './ViewMode.svelte';
|
||||||
|
|
||||||
export let mode = "";
|
export let mode = '';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if mode === MODES.edit}
|
{#if mode === MODES.edit}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { supabase } from '../../utils/functions/supabase';
|
||||||
|
|
||||||
|
export async function fetchCourses(userId) {
|
||||||
|
const { data: orgMember } = await supabase
|
||||||
|
.from('organizationmember')
|
||||||
|
.select(`organization_id`)
|
||||||
|
.eq('profile_id', userId)
|
||||||
|
.single();
|
||||||
|
|
||||||
|
const { data: allCourses } = await supabase
|
||||||
|
.from('course')
|
||||||
|
.select(`id, title, description`)
|
||||||
|
.eq('organization_id', orgMember.organization_id);
|
||||||
|
|
||||||
|
return { allCourses, organizationId: orgMember.organization_id };
|
||||||
|
}
|
||||||
+22
-23
@@ -1,35 +1,18 @@
|
|||||||
<script context="module">
|
<script context="module">
|
||||||
import { profile, user } from '../utils/store/user';
|
import { profile, user } from '../utils/store/user';
|
||||||
import { supabase } from '../utils/functions/supabase';
|
import { fetchCourses } from '../components/Courses/api';
|
||||||
|
|
||||||
export async function preload(page, params) {
|
export async function preload(page, params) {
|
||||||
console.log('process.browser', process.browser);
|
|
||||||
console.log(`user`, user);
|
|
||||||
|
|
||||||
if (process.browser) {
|
|
||||||
console.log('localstorage', localStorage.getItem('supabase.auth.token'));
|
|
||||||
}
|
|
||||||
console.log(`params`, params);
|
|
||||||
const parsedUser = JSON.parse(params.user);
|
const parsedUser = JSON.parse(params.user);
|
||||||
console.log(`parsedUser`, parsedUser);
|
|
||||||
if (parsedUser && parsedUser.id) {
|
if (parsedUser && parsedUser.id) {
|
||||||
const { data: orgMember } = await supabase
|
return fetchCourses(parsedUser.id);
|
||||||
.from('organizationmember')
|
|
||||||
.select(`organization_id`)
|
|
||||||
.eq('profile_id', parsedUser.id)
|
|
||||||
.single();
|
|
||||||
|
|
||||||
const { data: allCourses } = await supabase
|
|
||||||
.from('course')
|
|
||||||
.select(`id, title, description`)
|
|
||||||
.eq('organization_id', orgMember.organization_id);
|
|
||||||
|
|
||||||
return { allCourses, organizationId: orgMember.organization_id };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
allCourses: [],
|
allCourses: [],
|
||||||
organizationId: null,
|
organizationId: null,
|
||||||
|
cantFetch: !parsedUser,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -51,6 +34,7 @@
|
|||||||
|
|
||||||
export let allCourses;
|
export let allCourses;
|
||||||
export let organizationId;
|
export let organizationId;
|
||||||
|
export let cantFetch;
|
||||||
|
|
||||||
let errors = {
|
let errors = {
|
||||||
emails: '',
|
emails: '',
|
||||||
@@ -119,10 +103,25 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
onMount(() => {
|
async function getCourses(userId) {
|
||||||
|
console.log(`getCourses process.browser`, process.browser);
|
||||||
|
if (process.browser) {
|
||||||
|
if (!cantFetch && typeof cantFetch === 'boolean' && !allCourses.length) {
|
||||||
|
const coursesResult = await fetchCourses(userId);
|
||||||
|
console.log(`coursesResult`, coursesResult);
|
||||||
|
|
||||||
|
organizationId = coursesResult.organizationId;
|
||||||
|
courses.set(coursesResult.allCourses);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onMount(async () => {
|
||||||
|
console.log(`onMount cantFetch`, cantFetch);
|
||||||
courses.set(allCourses);
|
courses.set(allCourses);
|
||||||
});
|
});
|
||||||
// $: tab = $page.query.tab || 'mine';
|
|
||||||
|
$: getCourses($profile.id);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
|
|||||||
@@ -80,6 +80,12 @@
|
|||||||
afterUpdate(setLesson);
|
afterUpdate(setLesson);
|
||||||
|
|
||||||
$: path = $page.path.replace(/\/exercises[\/ 0-9 a-z -]*/, '');
|
$: path = $page.path.replace(/\/exercises[\/ 0-9 a-z -]*/, '');
|
||||||
|
|
||||||
|
$: {
|
||||||
|
if (lessonId) {
|
||||||
|
mode = MODES.view;
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<CourseContainer {path} isExercisePage={!isMaterialsTabActive && exerciseId}>
|
<CourseContainer {path} isExercisePage={!isMaterialsTabActive && exerciseId}>
|
||||||
|
|||||||
Reference in New Issue
Block a user