diff --git a/src/content/components/Assignment.tsx b/src/content/components/Assignment.tsx index b717250..df71ab9 100644 --- a/src/content/components/Assignment.tsx +++ b/src/content/components/Assignment.tsx @@ -37,8 +37,8 @@ export default function Assignment({ courseData }: Props) { >
-
{course.courseTitle}
-
{course.title}
+
{course.courseTitle}
+
{course.title}
diff --git a/src/content/components/QuizTab.tsx b/src/content/components/QuizTab.tsx index c45c462..e2753d7 100644 --- a/src/content/components/QuizTab.tsx +++ b/src/content/components/QuizTab.tsx @@ -37,8 +37,8 @@ export default function QuizTab({ courseData }: Props) { >
-
{course.courseTitle}
-
{course.title}
+
{course.courseTitle}
+
{course.title}
diff --git a/src/content/components/Video.tsx b/src/content/components/Video.tsx index 2bfd0f9..47ac710 100644 --- a/src/content/components/Video.tsx +++ b/src/content/components/Video.tsx @@ -83,7 +83,6 @@ export default function Video({ courseData }: Props) { className={`cursor-pointer flex flex-row items-center justify-between px-5 pt-5 pb-3 hover:bg-zinc-100 transition-all duration-100 ${isExpanded && 'shadow-2xl shadow-zinc-950'}`} onClick={() => toggleCard(`${item.title}-${index}`)} > - {/* subject 같은 애들끼리 묶기 */}
{item.courseTitle}
{item.subject}
@@ -99,10 +98,10 @@ export default function Video({ courseData }: Props) { className="w-full px-4 py-3 bg-[rgb(246,250,255)] hover:bg-[rgb(238,246,255)] cursor-pointer transition-colors duration-300" onClick={() => window.open(`${vod.url.replace('view', 'viewer')}`, '_blank', 'VodContentWindow')} > -
+
{vod.title}
-
+
{formatDateString(vod.range)}, {vod.length}
diff --git a/src/content/types.ts b/src/content/types.ts index 42200d4..d18fe4f 100644 --- a/src/content/types.ts +++ b/src/content/types.ts @@ -59,8 +59,8 @@ export interface Item { export interface Filters { courseTitles: string[]; - attendanceStatuses?: string[]; // Vods용 - submitStatuses?: boolean[]; // Assigns용 + attendanceStatuses?: string[]; + submitStatuses?: boolean[]; } export enum TAB_TYPE { diff --git a/src/hooks/useCourseData.tsx b/src/hooks/useCourseData.tsx index 76b5a38..36fb37c 100644 --- a/src/hooks/useCourseData.tsx +++ b/src/hooks/useCourseData.tsx @@ -31,7 +31,7 @@ export function useCourseData(courses: any[]) { const result = await requestData(course.courseId); result.vodDataArray.forEach((vodData) => { - // if (isCurrentDateInRange(vodData.range)) { + if (isCurrentDateInRange(vodData.range)) { result.vodAttendanceArray.forEach((vodAttendanceData) => { if (vodAttendanceData.title === vodData.title && vodAttendanceData.week === vodData.week) { tempVods.push({ @@ -49,11 +49,11 @@ export function useCourseData(courses: any[]) { }); } }); - // } + } }); result.assignDataArray.forEach((assignData) => { - // if (isCurrentDateByDate(assignData.dueDate)) { + if (isCurrentDateByDate(assignData.dueDate)) { tempAssigns.push({ courseId: course.courseId, prof: course.prof, @@ -64,11 +64,11 @@ export function useCourseData(courses: any[]) { isSubmit: assignData.isSubmit, url: assignData.url, }); - // } + } }); result.quizDataArray.forEach((quizData) => { - // if (isCurrentDateByDate(quizData.dueDate)) { + if (isCurrentDateByDate(quizData.dueDate)) { tempQuizes.push({ courseId: course.courseId, prof: course.prof, @@ -78,7 +78,7 @@ export function useCourseData(courses: any[]) { dueDate: quizData.dueDate, url: quizData.url, }); - // } + } }); }) ); diff --git a/src/hooks/useGetCourse.ts b/src/hooks/useGetCourse.ts index 05c2d8f..ac897e4 100644 --- a/src/hooks/useGetCourse.ts +++ b/src/hooks/useGetCourse.ts @@ -9,27 +9,22 @@ interface UseCouresResult { export const useGetCourses = (): UseCouresResult => { const [courses, setCourses] = useState([]); useEffect(() => { - // if (!document) return; - // const courseData = Array.from(document.querySelectorAll('.course_box')); - // const data = courseData - // .map((div) => { - // const a = div.querySelector('a'); - // const url = new URL((a as HTMLAnchorElement).href); - // const urlParams = new URLSearchParams(url.search); - // const courseId = urlParams.get('id') || ''; - // const titleSection = div.querySelector('.course_link .course-name .course-title'); - // const prof = titleSection?.querySelector('p')?.textContent?.trim() || ''; - // let courseTitle = titleSection?.querySelector('h1, h2, h3')?.textContent?.replace(/new/i, '').trim() || ''; - // courseTitle = removeSquareBrackets(courseTitle) - // return { courseId, courseTitle, prof }; - // }) - // .filter((item) => item.courseId !== '' && item.courseTitle !== '' && item.prof !== ''); - // setCourses(data); - setCourses([ - { courseId: '32153', courseTitle: '프로그래밍언어론', prof: '김성동' }, - { courseId: '36786', courseTitle: '운영체제', prof: '황기태' }, - { courseId: '36821', courseTitle: '데이터베이스', prof: '김영웅' }, - ]); + if (!document) return; + const courseData = Array.from(document.querySelectorAll('.course_box')); + const data = courseData + .map((div) => { + const a = div.querySelector('a'); + const url = new URL((a as HTMLAnchorElement).href); + const urlParams = new URLSearchParams(url.search); + const courseId = urlParams.get('id') || ''; + const titleSection = div.querySelector('.course_link .course-name .course-title'); + const prof = titleSection?.querySelector('p')?.textContent?.trim() || ''; + let courseTitle = titleSection?.querySelector('h1, h2, h3')?.textContent?.replace(/new/i, '').trim() || ''; + courseTitle = removeSquareBrackets(courseTitle) + return { courseId, courseTitle, prof }; + }) + .filter((item) => item.courseId !== '' && item.courseTitle !== '' && item.prof !== ''); + setCourses(data); }, []); return { courses }; diff --git a/src/option/components/SidebarItems.tsx b/src/option/components/SidebarItems.tsx deleted file mode 100644 index b77fe2e..0000000 --- a/src/option/components/SidebarItems.tsx +++ /dev/null @@ -1,23 +0,0 @@ -// import { Link, useLocation } from 'react-router-dom'; -// import { data } from './data'; - -// export function SidebarItems() { -// const { pathname } = useLocation(); -// return ( -//
    -// {data.map((item) => ( -//
  • -// -// -//
    -// {item.icon} -//
    -//
    -// -//
  • -// ))} -//
-// ); -// } diff --git a/src/option/components/data.tsx b/src/option/components/data.tsx index 0baee3c..5b10d72 100644 --- a/src/option/components/data.tsx +++ b/src/option/components/data.tsx @@ -2,11 +2,6 @@ import { TYPES } from '@/content/types'; import { Home, NotebookText, Settings, Video, Zap } from 'lucide-react'; export const data = [ - // { - // title: 'Home', - // icon: , - // type: TYPES.vod, - // }, { title: '강의', icon: