mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: use swr for course edit
This commit is contained in:
parent
e47a9939b5
commit
898928759d
1 changed files with 7 additions and 27 deletions
|
|
@ -7,44 +7,24 @@ import { useRouter } from "next/navigation";
|
||||||
import { getLecture } from "../../../../../../../../services/courses/lectures";
|
import { getLecture } from "../../../../../../../../services/courses/lectures";
|
||||||
import AuthProvider from "../../../../../../../../components/Security/AuthProvider";
|
import AuthProvider from "../../../../../../../../components/Security/AuthProvider";
|
||||||
import EditorWrapper from "../../../../../../../../components/Editor/EditorWrapper";
|
import EditorWrapper from "../../../../../../../../components/Editor/EditorWrapper";
|
||||||
import { getCourseMetadata } from "../../../../../../../../services/courses/courses";
|
import useSWR, { mutate } from "swr";
|
||||||
|
import { getAPIUrl } from "@services/config";
|
||||||
|
import { swrFetcher } from "@services/utils/requests";
|
||||||
|
|
||||||
|
|
||||||
function EditLecture(params: any) {
|
function EditLecture(params: any) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const lectureid = params.params.lectureid;
|
const lectureid = params.params.lectureid;
|
||||||
const courseid = params.params.courseid;
|
const courseid = params.params.courseid;
|
||||||
const [lecture, setLecture] = React.useState<any>({});
|
const { data: courseInfo, error: error_course } = useSWR(`${getAPIUrl()}courses/meta/course_${courseid}`, swrFetcher);
|
||||||
const [courseInfo, setCourseInfo] = React.useState({}) as any;
|
const { data: lecture, error: error_lecture } = useSWR(`${getAPIUrl()}lectures/lecture_${lectureid}`, swrFetcher);
|
||||||
const [isLoading, setIsLoading] = React.useState(true);
|
|
||||||
|
|
||||||
async function fetchLectureData() {
|
|
||||||
const lecture = await getLecture("lecture_" + lectureid);
|
|
||||||
setLecture(lecture);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchCourseInfo() {
|
|
||||||
const course = await getCourseMetadata("course_" + courseid);
|
|
||||||
setCourseInfo(course);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchAllData() {
|
|
||||||
await fetchLectureData();
|
|
||||||
await fetchCourseInfo();
|
|
||||||
setIsLoading(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
React.useEffect(() => {
|
|
||||||
if (lectureid && courseid) {
|
|
||||||
fetchAllData();
|
|
||||||
}
|
|
||||||
return () => {};
|
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [lectureid, courseid ]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AuthProvider>
|
<AuthProvider>
|
||||||
{isLoading ? <div>Loading...</div> : <EditorWrapper course={courseInfo} lecture={lecture} content={lecture.content}></EditorWrapper>}
|
{!courseInfo || !lecture ? <div>Loading...</div> : <EditorWrapper course={courseInfo} lecture={lecture} content={lecture.content}></EditorWrapper>}
|
||||||
</AuthProvider>
|
</AuthProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue