Fetch course for CSR

This commit is contained in:
rotimi-best
2021-08-21 13:26:43 +03:00
parent 288b342abe
commit 07e8b3a5cb
4 changed files with 48 additions and 27 deletions
@@ -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}
+16
View File
@@ -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
View File
@@ -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}>