mirror of
https://github.com/AustinKelsay/plebdevs.git
synced 2025-06-06 18:31:00 +00:00
More progress on course editing
This commit is contained in:
parent
f9bcfef235
commit
9046bce91f
@ -47,14 +47,14 @@ const CourseForm = ({ draft = null, isPublished = false }) => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchLessons = async () => {
|
const fetchLessons = async () => {
|
||||||
if (draft && draft.resources) {
|
if (draft && draft?.resources) {
|
||||||
const parsedLessons = await Promise.all(
|
const parsedLessons = await Promise.all(
|
||||||
draft.resources.map(async (lesson) => {
|
draft.resources.map(async (lesson) => {
|
||||||
const parsedLesson = await fetchLessonEventFromNostr(lesson.noteId);
|
const parsedLesson = await fetchLessonEventFromNostr(lesson.noteId);
|
||||||
return parsedLesson;
|
return parsedLesson;
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
setLessons(parsedLessons);
|
setSelectedLessons(parsedLessons);
|
||||||
setLoadingLessons(false); // Data is loaded
|
setLoadingLessons(false); // Data is loaded
|
||||||
} else {
|
} else {
|
||||||
setLoadingLessons(false); // No draft means no lessons to load
|
setLoadingLessons(false); // No draft means no lessons to load
|
||||||
@ -87,7 +87,7 @@ const CourseForm = ({ draft = null, isPublished = false }) => {
|
|||||||
setChecked(draft.price > 0);
|
setChecked(draft.price > 0);
|
||||||
setPrice(draft.price || 0);
|
setPrice(draft.price || 0);
|
||||||
setCoverImage(draft.image);
|
setCoverImage(draft.image);
|
||||||
setSelectedLessons(draft.resources || []);
|
// setSelectedLessons(draft.resources || []);
|
||||||
setTopics(draft.topics || ['']);
|
setTopics(draft.topics || ['']);
|
||||||
}
|
}
|
||||||
}, [draft]);
|
}, [draft]);
|
||||||
@ -143,18 +143,24 @@ const CourseForm = ({ draft = null, isPublished = false }) => {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
const payload = {
|
const payload = {
|
||||||
userId: user.id,
|
user: {
|
||||||
|
connect: { id: user.id },
|
||||||
|
},
|
||||||
title,
|
title,
|
||||||
summary,
|
summary,
|
||||||
image: coverImage,
|
image: coverImage,
|
||||||
price: price || 0,
|
price: price || 0,
|
||||||
resources,
|
resources: {
|
||||||
|
set: resources.map(resource => ({ id: resource.id })),
|
||||||
|
},
|
||||||
topics,
|
topics,
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let response;
|
let response;
|
||||||
if (draft) {
|
if (draft) {
|
||||||
|
// payload minus topics
|
||||||
|
delete payload.topics
|
||||||
response = await axios.put(`/api/courses/drafts/${draft.id}`, payload);
|
response = await axios.put(`/api/courses/drafts/${draft.id}`, payload);
|
||||||
showToast('success', 'Success', 'Course draft updated successfully');
|
showToast('success', 'Success', 'Course draft updated successfully');
|
||||||
} else {
|
} else {
|
||||||
@ -337,7 +343,7 @@ const CourseForm = ({ draft = null, isPublished = false }) => {
|
|||||||
</div>
|
</div>
|
||||||
<div className="mt-8 flex-col w-full">
|
<div className="mt-8 flex-col w-full">
|
||||||
<div className="mt-4 flex-col w-full">
|
<div className="mt-4 flex-col w-full">
|
||||||
{selectedLessons.map(async (lesson, index) => {
|
{selectedLessons.map((lesson, index) => {
|
||||||
return (
|
return (
|
||||||
<div key={lesson.id} className="p-inputgroup flex-1 mt-4">
|
<div key={lesson.id} className="p-inputgroup flex-1 mt-4">
|
||||||
<ContentDropdownItem content={lesson} selected={true} />
|
<ContentDropdownItem content={lesson} selected={true} />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user