From 9046bce91f9e90d7025b31b58369128a649de23c Mon Sep 17 00:00:00 2001 From: austinkelsay Date: Tue, 13 Aug 2024 23:15:40 -0500 Subject: [PATCH] More progress on course editing --- src/components/forms/CourseForm.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/forms/CourseForm.js b/src/components/forms/CourseForm.js index 618fc71..0e0fba8 100644 --- a/src/components/forms/CourseForm.js +++ b/src/components/forms/CourseForm.js @@ -47,14 +47,14 @@ const CourseForm = ({ draft = null, isPublished = false }) => { useEffect(() => { const fetchLessons = async () => { - if (draft && draft.resources) { + if (draft && draft?.resources) { const parsedLessons = await Promise.all( draft.resources.map(async (lesson) => { const parsedLesson = await fetchLessonEventFromNostr(lesson.noteId); return parsedLesson; }) ); - setLessons(parsedLessons); + setSelectedLessons(parsedLessons); setLoadingLessons(false); // Data is loaded } else { setLoadingLessons(false); // No draft means no lessons to load @@ -87,7 +87,7 @@ const CourseForm = ({ draft = null, isPublished = false }) => { setChecked(draft.price > 0); setPrice(draft.price || 0); setCoverImage(draft.image); - setSelectedLessons(draft.resources || []); + // setSelectedLessons(draft.resources || []); setTopics(draft.topics || ['']); } }, [draft]); @@ -143,18 +143,24 @@ const CourseForm = ({ draft = null, isPublished = false }) => { })); const payload = { - userId: user.id, + user: { + connect: { id: user.id }, + }, title, summary, image: coverImage, price: price || 0, - resources, + resources: { + set: resources.map(resource => ({ id: resource.id })), + }, topics, - }; + }; try { let response; if (draft) { + // payload minus topics + delete payload.topics response = await axios.put(`/api/courses/drafts/${draft.id}`, payload); showToast('success', 'Success', 'Course draft updated successfully'); } else { @@ -337,7 +343,7 @@ const CourseForm = ({ draft = null, isPublished = false }) => {
- {selectedLessons.map(async (lesson, index) => { + {selectedLessons.map((lesson, index) => { return (