fix: empty lesson title bug (#314)

* finished the lesson title bug

* made chnages based on review

* Update +page.svelte

---------

Co-authored-by: Rotimi Best <[email protected]>
This commit is contained in:
Em_Dev
2024-05-20 17:26:43 +01:00
committed by GitHub
co-authored by Rotimi Best
parent 018602f7b7
commit b9bb568f98
5 changed files with 45 additions and 6 deletions
@@ -4,6 +4,7 @@ import { createLesson, updateLesson, deleteLesson } from '$lib/utils/services/co
import type { Lesson, Course, LessonPage, LessonComment } from '$lib/utils/types';
import { LOCALE } from '$lib/utils/types';
import { snackbar } from '$lib/components/Snackbar/store';
import { lessonValidation } from '$lib/utils/functions/validator';
export const uploadCourseVideoStore = writable({
isModalOpen: false
@@ -68,6 +69,12 @@ export async function handleDelete(lessonId: Lesson['id'] | undefined) {
}
export async function handleSaveLesson(lesson: Lesson, course_id: Course['id']) {
const result = lessonValidation(lesson);
if (Object.keys(result).length) {
return result;
}
console.log(`handleSaveLesson lesson`, lesson);
const newLesson = {
title: lesson.title,
@@ -280,7 +280,7 @@
size="sm"
shape="rounded-full"
/>
<span>{item.title}</span>
<span class="w-[70%] text-ellipsis line-clamp-2">{item.title}</span>
<span class="grow" />
{#if !item.is_unlocked}
<span class="text-md ml-2" title="This lesson is locked.">
@@ -11,6 +11,18 @@ const getSiteNameValidation = () =>
const getNewsfeedValidation = () =>
z.string().min(5, { message: 'Field must contain 5 or more characters' });
const lessonSchema = z.object({
title: z.string().nonempty({ message: 'Title cannot be empty' }),
lesson_at: z.string().optional(),
call_url: z.string().nullable().optional(),
profile: z
.object({
id: z.string().optional()
})
.optional(),
is_unlocked: z.boolean()
});
const createQuizValidationSchema = z.object({
title: z.string().min(6, {
message: 'Must be 6 or more characters long',
@@ -143,7 +155,11 @@ export const processErrors = (error, mapToId) => {
export const authValidation = (fields = {}) => {
const { error } = authValidationSchema.safeParse(fields);
return processErrors(error);
};
export const lessonValidation = (lesson = {}) => {
const { error } = lessonSchema.safeParse(lesson);
return processErrors(error);
};