Auto show course w/invite + Fix saving
This commit is contained in:
@@ -9,13 +9,13 @@
|
||||
import { stores, goto } from '@sapper/app';
|
||||
import Tailwindcss from '../components/Tailwindcss.svelte';
|
||||
import Navigation from '../components/Navigation/index.svelte';
|
||||
import Snackbar from '../components/Snackbar/index.svelte';
|
||||
// import SideBar from "../components/SideBar/index.svelte";
|
||||
// import Footer from '../components/Footer/index.svelte';
|
||||
// import Apps from '../components/Apps/index.svelte';
|
||||
import { handleAuthChange } from '../utils/functions/api';
|
||||
import { user, profile } from '../utils/store/user';
|
||||
import { getSupabase } from '../utils/functions/supabase';
|
||||
import { setProfileIdOfGroupMember } from '../utils/services/courses';
|
||||
|
||||
export let segment;
|
||||
export let config;
|
||||
@@ -62,11 +62,10 @@
|
||||
$user.currentSession = authUser;
|
||||
|
||||
profile.set(data[0]);
|
||||
await setProfileIdOfGroupMember(authUser.email, data[0].id);
|
||||
|
||||
// If user coming to login page, then
|
||||
if (path.includes('login') || path.includes('signup')) {
|
||||
goto('/dashboard');
|
||||
goto('/profile/' + $profile.id);
|
||||
}
|
||||
}
|
||||
} else if (profileData) {
|
||||
@@ -77,11 +76,9 @@
|
||||
console.log(`profileData`, profileData);
|
||||
profile.set(profileData);
|
||||
|
||||
setProfileIdOfGroupMember(authUser.email, profileData.id);
|
||||
|
||||
// If user coming to login page, then
|
||||
if (path.includes('login') || path.includes('signup')) {
|
||||
goto('/dashboard');
|
||||
goto('/profile/' + $profile.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -132,6 +129,7 @@
|
||||
<Tailwindcss />
|
||||
|
||||
<!-- <Nav {segment} /> -->
|
||||
<Snackbar />
|
||||
|
||||
<main>
|
||||
{#if !['login', 'signup'].includes(path) && !isCoursePage(path)}
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
import { ROLE } from '../utils/constants/roles';
|
||||
import { addGroupMember } from '../utils/services/courses';
|
||||
import { supabase } from '../utils/functions/supabase';
|
||||
import { setProfileIdOfGroupMember } from '../utils/services/courses';
|
||||
|
||||
// const { page } = stores();
|
||||
|
||||
@@ -106,6 +107,11 @@
|
||||
console.log(`getCourses process.browser`, process.browser, cantFetch);
|
||||
if (process.browser) {
|
||||
if (cantFetch && typeof cantFetch === 'boolean' && !allCourses.length) {
|
||||
const updatedProfile = await setProfileIdOfGroupMember(
|
||||
$profile.email,
|
||||
userId
|
||||
);
|
||||
console.log(`updatedProfile`, updatedProfile);
|
||||
const coursesResult = await fetchCourses(userId);
|
||||
console.log(`coursesResult`, coursesResult);
|
||||
|
||||
|
||||
@@ -4,15 +4,21 @@
|
||||
fetchLesson,
|
||||
} from '../../../../../utils/services/courses';
|
||||
|
||||
export async function preload({ params }, session) {
|
||||
export async function preload({ params }) {
|
||||
const { id: courseId, lessonParams = [] } = params;
|
||||
const [lessonId, exerciseRouteName, exerciseId] = lessonParams;
|
||||
|
||||
return {
|
||||
params,
|
||||
courseId,
|
||||
lessonId,
|
||||
exerciseRouteName,
|
||||
exerciseId,
|
||||
isMaterialsTabActive: !exerciseRouteName,
|
||||
};
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
import { onMount, afterUpdate } from 'svelte';
|
||||
import { stores } from '@sapper/app';
|
||||
import CourseContainer from '../../../../../components/CourseContainer/index.svelte';
|
||||
|
||||
@@ -28,44 +34,36 @@
|
||||
} from '../../../../../components/Course/store';
|
||||
import { lesson } from '../../../../../components/Course/components/Lesson/store/lessons';
|
||||
|
||||
export let params;
|
||||
export let courseId;
|
||||
export let lessonId;
|
||||
export let exerciseId;
|
||||
export let isMaterialsTabActive;
|
||||
|
||||
let path;
|
||||
let mode = MODES.view;
|
||||
let prevMode;
|
||||
let prevLessonId;
|
||||
|
||||
const { page } = stores();
|
||||
|
||||
async function fetchReqData() {
|
||||
const { id: courseId, lessonParams = [] } = params;
|
||||
const [_lessonId, exerciseRouteName, _exerciseId] = lessonParams;
|
||||
|
||||
let courseData;
|
||||
async function fetchReqData(lessonId) {
|
||||
let lessonData;
|
||||
|
||||
if (!$course.id) {
|
||||
const [_course, lesson] = await Promise.all([
|
||||
fetchCourse(courseId),
|
||||
fetchLesson(_lessonId),
|
||||
fetchLesson(lessonId),
|
||||
]);
|
||||
|
||||
courseData = _course.data;
|
||||
lessonData = lesson.data;
|
||||
} else if (prevLessonId && prevLessonId !== _lessonId) {
|
||||
const lesson = await fetchLesson(_lessonId);
|
||||
|
||||
setCourseData(_course.data);
|
||||
} else if (prevLessonId !== lessonId) {
|
||||
const lesson = await fetchLesson(lessonId);
|
||||
lessonData = lesson.data;
|
||||
}
|
||||
|
||||
prevLessonId = _lessonId;
|
||||
lessonId = _lessonId;
|
||||
exerciseId = _exerciseId;
|
||||
isMaterialsTabActive = !exerciseRouteName;
|
||||
|
||||
setCourseData(courseData);
|
||||
prevLessonId = lessonId;
|
||||
setLesson(lessonData);
|
||||
}
|
||||
|
||||
@@ -82,10 +80,9 @@
|
||||
$: path = $page.path.replace(/\/exercises[\/ 0-9 a-z -]*/, '');
|
||||
|
||||
$: {
|
||||
console.log(`params`, params);
|
||||
if (params) {
|
||||
if (courseId) {
|
||||
mode = MODES.view;
|
||||
fetchReqData();
|
||||
fetchReqData(lessonId);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -111,8 +108,10 @@
|
||||
<PrimaryButton
|
||||
className="mr-2"
|
||||
label={mode === MODES.edit ? 'Save' : 'Edit'}
|
||||
onClick={() =>
|
||||
(mode = mode === MODES.edit ? MODES.view : MODES.edit)}
|
||||
onClick={() => {
|
||||
prevMode = mode;
|
||||
mode = mode === MODES.edit ? MODES.view : MODES.edit;
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -123,7 +122,7 @@
|
||||
<Exercises {lessonId} {exerciseId} path={`${path}/exercises`} />
|
||||
{:else if !!lessonId}
|
||||
<PageBody>
|
||||
<Materials {lessonId} {mode} />
|
||||
<Materials {lessonId} {mode} {prevMode} />
|
||||
</PageBody>
|
||||
{/if}
|
||||
</CourseContainer>
|
||||
|
||||
@@ -141,6 +141,13 @@
|
||||
className="w-60 mb-4"
|
||||
inputClassName="rounded-md"
|
||||
/>
|
||||
<TextField
|
||||
label="Email"
|
||||
bind:value={currentProfile.email}
|
||||
className="w-60 mb-4"
|
||||
inputClassName="rounded-md"
|
||||
isDisabled={true}
|
||||
/>
|
||||
|
||||
{#if avatar || initialValueOfUserName !== currentProfile.username || initialValueOfFullName !== currentProfile.fullname}
|
||||
<PrimaryButton
|
||||
|
||||
Reference in New Issue
Block a user