Professional Documents
Culture Documents
Lesson Slug
Lesson Slug
<div>
<p class="mt-0 uppercase font-bold text-slate-400 mb-1">
Lesson {{ chapter.number }} - {{ lesson.number }}
</p>
<h2 class="my-0">{{ lesson.title }}</h2>
<div class="flex space-x-4 mt-2 mb-8">
<NuxtLink
v-if="lesson.sourceUrl"
class="font-normal text-md text-gray-500"
:to="lesson.sourceUrl"
>
Download Source Code
</NuxtLink>
<NuxtLink
v-if="lesson.downloadUrl"
class="font-normal text-md text-gray-500"
:to="lesson.downloadUrl"
>
Download Video
</NuxtLink>
</div>
<VideoPlayer
v-if="lesson.videoId"
:videoId="lesson.videoId"
/>
<p>{{ lesson.text }}</p>
<LessonCompleteButton
:model-value="isLessonComplete"
@update:model-value="toggleComplete"
/>
</div>
</template>
<script setup>
const course = useCourse();
const route = useRoute();
definePageMeta({
middleware: [
function ({ params }, from) {
const course = useCourse();
if (!chapter) {
return abortNavigation(
createError({
statusCode: 404,
message: 'Chapter not found',
})
);
}
if (
!progress.value[chapter.value.number - 1][
lesson.value.number - 1
]
) {
return false;
}
progress.value[chapter.value.number - 1][
lesson.value.number - 1
] = !isLessonComplete.value;
};
</script>