diff --git a/apps/dashboard/src/routes/courses/[id]/submissions/+page.svelte b/apps/dashboard/src/routes/courses/[id]/submissions/+page.svelte index 36ed08fd..5b4dbf72 100644 --- a/apps/dashboard/src/routes/courses/[id]/submissions/+page.svelte +++ b/apps/dashboard/src/routes/courses/[id]/submissions/+page.svelte @@ -3,6 +3,7 @@ import { dndzone } from 'svelte-dnd-action'; import { goto } from '$app/navigation'; import { page } from '$app/stores'; + import { SkeletonPlaceholder } from 'carbon-components-svelte'; import PageNav from '$lib/components/PageNav/index.svelte'; import RoleBasedSecurity from '$lib/components/RoleBasedSecurity/index.svelte'; import MarkExerciseModal from '$lib/components/Course/components/Lesson/Exercise/MarkExerciseModal.svelte'; @@ -45,6 +46,7 @@ let submissionId: string; let openExercise = false; let isGradeWithAI = false; + let fetching = false; const submissionStatus: { [key: number]: string } = { 1: $t('course.navItem.submissions.submission_status.submitted'), @@ -268,6 +270,7 @@ } async function firstRender(courseId: string) { + fetching = true; const { data: submissions } = await fetchSubmissions(courseId); const sectionById: { [key: number]: SubmissionSection[] } = {}; @@ -332,6 +335,7 @@ value: Array.isArray(sectionById[index + 1]) ? sectionById[index + 1].length : 0, items: Array.isArray(sectionById[index + 1]) ? sectionById[index + 1] : [] })); + fetching = false; } $: browser && $course.id && firstRender($course.id); @@ -367,63 +371,69 @@

{title}

-
- {#each items as item (item.id)} - + {/each} +
+ {/if} {/each}