+
+ {contentData.map((content, i) => {
+ return (
+
+
+
+ {content.name}
+
+
+
+ );
+ })}
+
+
+ );
+};
+
+export default ContentWidget;
diff --git a/frontend/src/pages/ContentPage.jsx b/frontend/src/pages/ContentPage.jsx
new file mode 100644
index 0000000..608389e
--- /dev/null
+++ b/frontend/src/pages/ContentPage.jsx
@@ -0,0 +1,65 @@
+import { useEffect, useState } from "react";
+import { Container } from "react-bootstrap";
+import MyNavbar from "../components/MyNavbar";
+import { makeRequest } from "../utils.ts";
+
+const ContentPage = ({ id }) => {
+ const [contentData, setContentData] = useState({});
+ const [courseData, setCourseData] = useState({});
+
+ useEffect(() => {
+ const wrap = async () => {
+ let resp = await makeRequest({ endpoint: `content/${id}` });
+ let data = await resp.json();
+ setContentData(data);
+
+ resp = await makeRequest({ endpoint: `course/${data.course_id}` });
+ data = await resp.json();
+ setCourseData(data);
+ };
+ wrap();
+ }, []);
+
+ const Title = ({ children, className, ...rest }) => {
+ return (
+