From b76d1c9647059e37a644e60ba786eb09ccb09391 Mon Sep 17 00:00:00 2001 From: Ibitoye Rotimi Best Date: Thu, 1 Jul 2021 09:31:26 +0300 Subject: [PATCH] Reusable page style for lectures --- .../Course/components/Attendance/index.svelte | 6 + .../Course/components/CourseNav.svelte | 136 ++++++++++-------- .../components/Lecture/Home/index.svelte | 8 ++ .../Lecture/Homework/EditMode.svelte | 2 + .../Lecture/Homework/ViewMode.svelte | 2 +- .../components/Lecture/Homework/index.svelte | 26 +++- .../Course/components/Lecture/index.svelte | 87 +++++------ .../Course/components/Lecture/store/index.js | 2 + src/components/Course/function.js | 32 +++++ src/components/Expandable/index.svelte | 40 +++--- src/components/PageBody/Index.svelte | 22 +++ src/routes/courses/[...id]/index.svelte | 130 +++++++++-------- 12 files changed, 290 insertions(+), 203 deletions(-) create mode 100644 src/components/Course/components/Attendance/index.svelte create mode 100644 src/components/Course/components/Lecture/Home/index.svelte create mode 100644 src/components/Course/components/Lecture/store/index.js create mode 100644 src/components/Course/function.js create mode 100644 src/components/PageBody/Index.svelte diff --git a/src/components/Course/components/Attendance/index.svelte b/src/components/Course/components/Attendance/index.svelte new file mode 100644 index 00000000..2a750703 --- /dev/null +++ b/src/components/Course/components/Attendance/index.svelte @@ -0,0 +1,6 @@ + + + +All attendance will be here with table diff --git a/src/components/Course/components/CourseNav.svelte b/src/components/Course/components/CourseNav.svelte index 01eed497..cd77f178 100644 --- a/src/components/Course/components/CourseNav.svelte +++ b/src/components/Course/components/CourseNav.svelte @@ -2,7 +2,11 @@ import { stores, goto } from "@sapper/app"; import Expandable from "../../Expandable/index.svelte"; import PageNav from "../../PageNav/index.svelte"; + import { getNavItemRoute, getLectureRoute, getLectureNo } from "../function"; + // export let lectureId; + export let courseId; + const { page } = stores(); function handleMainGroupClick(href) { @@ -11,84 +15,92 @@ }; } - const lectures = [ + const navItems = [ { - title: "Вводный урок. Soft skills", - link: "/courses/1/lecture/1", + label: "Overview", + to: getNavItemRoute(courseId), + hideSortIcon: true, }, { - title: "Введение в ReactJS", - link: "/courses/1/lecture/2", + label: "Lectures", + to: getLectureRoute(courseId), + hideSortIcon: false, + items: [ + { + id: 1, + title: "Вводный урок. Soft skills", + to: getLectureRoute(courseId, 1), + }, + { + id: 2, + title: "Введение в ReactJS", + to: getLectureRoute(courseId, 2), + }, + { + id: 3, + title: "Компоненты", + to: getLectureRoute(courseId, 3), + }, + { + id: 4, + title: "Состояние компонентов и пропсы", + to: getLectureRoute(courseId, 4), + }, + { + id: 5, + title: "Жизненный цикл", + to: getLectureRoute(courseId, 5), + }, + ], }, { - title: "Компоненты", - link: "/courses/1/lecture/3", + label: "People", + to: getNavItemRoute(courseId, "people"), + hideSortIcon: true, }, { - title: "Состояние компонентов и пропсы", - link: "/courses/1/lecture/4", + label: "Timetable", + to: getNavItemRoute(courseId, "timetable"), + hideSortIcon: true, }, { - title: "Жизненный цикл", - link: "/courses/1/lecture/5", + label: "Scoreboard", + to: getNavItemRoute(courseId, "scoreboard"), + hideSortIcon: true, + }, + { + label: "Hometasks", + to: getNavItemRoute(courseId, "hometasks"), + hideSortIcon: true, }, ]; - - function getLectureNo(index) { - if (index < 9) { - return `00${index}`; - } - - return `0${index}`; - }
- - - {#each lectures as lecture, index} - - {getLectureNo(index + 1)} - {lecture.title} - - {/each} - - - - - + {#each navItems as navItem} + + {#if Array.isArray(navItem.items)} + {#each navItem.items as item, index} + + {getLectureNo(index + 1)} + {item.title} + + {/each} + {/if} + + {/each}
diff --git a/src/components/Course/components/Lecture/Home/index.svelte b/src/components/Course/components/Lecture/Home/index.svelte new file mode 100644 index 00000000..2dab847b --- /dev/null +++ b/src/components/Course/components/Lecture/Home/index.svelte @@ -0,0 +1,8 @@ + + + + +All lecture will be here diff --git a/src/components/Course/components/Lecture/Homework/EditMode.svelte b/src/components/Course/components/Lecture/Homework/EditMode.svelte index e46513c5..37edccd0 100644 --- a/src/components/Course/components/Lecture/Homework/EditMode.svelte +++ b/src/components/Course/components/Lecture/Homework/EditMode.svelte @@ -35,6 +35,8 @@ variant={VARIANTS.OUTLINED} onClick={handleAddQuestion} label="Add Question" + mnb + v /> diff --git a/src/components/Course/components/Lecture/Homework/ViewMode.svelte b/src/components/Course/components/Lecture/Homework/ViewMode.svelte index 4b7eebbc..24ca4a74 100644 --- a/src/components/Course/components/Lecture/Homework/ViewMode.svelte +++ b/src/components/Course/components/Lecture/Homework/ViewMode.svelte @@ -1,6 +1,6 @@ -{#if mode === MODES.edit} - -{:else} - -{/if} + + +

Lesson 2 home exercises

+ (mode = mode === MODES.edit ? MODES.view : MODES.edit)} + /> +
+ + {#if mode === MODES.edit} + + {:else} + + {/if} +
diff --git a/src/components/Course/components/Lecture/index.svelte b/src/components/Course/components/Lecture/index.svelte index d4117e33..fce486bb 100644 --- a/src/components/Course/components/Lecture/index.svelte +++ b/src/components/Course/components/Lecture/index.svelte @@ -1,64 +1,55 @@ -
- -
- -
-
+{#if showLectureHome} + +{:else} +
+ -
- {#if tab === "lectures"} - - {:else if tab === "classwork"} - - {:else if tab === "hometasks"} - - {/if} +
+ {#if tab === "lectures"} + + {:else if tab === "classwork"} + + {:else if tab === "hometasks"} + + {/if} +
-
+{/if} - -
-
- {#if !hideSortIcon} - - {/if} - {label} -
- {#if isExpanded} -
- -
- {/if} -
diff --git a/src/components/PageBody/Index.svelte b/src/components/PageBody/Index.svelte new file mode 100644 index 00000000..73079b05 --- /dev/null +++ b/src/components/PageBody/Index.svelte @@ -0,0 +1,22 @@ + + +
+ {#if $$slots.header} +
+ +
+ {/if} + + +
+ + diff --git a/src/routes/courses/[...id]/index.svelte b/src/routes/courses/[...id]/index.svelte index 3ef85688..16d9de03 100644 --- a/src/routes/courses/[...id]/index.svelte +++ b/src/routes/courses/[...id]/index.svelte @@ -1,68 +1,66 @@ - - - - - - - ReactJS - - -
- -
- {#if !courseNavItem} - - {:else if courseNavItem === 'score'} - - {:else if courseNavItem === 'timetable'} - - {:else if courseNavItem === 'hometasks'} - - {:else if courseNavItem === 'lecture'} - - {:else if courseNavItem === 'people'} - - {/if} -
- - + export async function preload({ params }) { + let [courseId, courseNavItem, lectureId] = params.id; + + return { courseId, courseNavItem, lectureId }; + } + + + + + + ReactJS + + +
+ +
+ {#if !courseNavItem} + + {:else if courseNavItem === "score"} + + {:else if courseNavItem === "timetable"} + + {:else if courseNavItem === "hometasks"} + + {:else if courseNavItem === "lecture"} + + {:else if courseNavItem === "people"} + + {/if}
- \ No newline at end of file + + +
+ +