{"version":3,"file":"static/chunks/pages/index-4f8825079e1b7f3b.js","mappings":"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","sources":["webpack://_N_E/","webpack://_N_E/./src/components/molecules/TabsContainer.tsx","webpack://_N_E/./src/components/home/UserCard.tsx","webpack://_N_E/./src/components/home/HomePageTabs.tsx","webpack://_N_E/./src/pages/index.tsx","webpack://_N_E/./src/styles/components/home/HomePageTabs.module.scss","webpack://_N_E/./src/styles/components/home/UserCard.module.scss","webpack://_N_E/./src/styles/pages/HomePage.module.scss"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/\",\n function () {\n return require(\"private-next-pages/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/\"])\n });\n }\n ","import clsx from 'clsx';\nimport { FC } from 'react';\nimport { MenuItem } from '../../types';\n\ntype TabsContainerProps = {\n items: MenuItem[];\n selected: string;\n onSelect: (label: any) => void;\n mb?: boolean;\n};\n\nconst TabsContainer: FC = ({\n items,\n selected,\n onSelect,\n mb,\n}) => (\n
\n {items.map(item => (\n onSelect(item.label)}\n >\n {item.icon}\n {item.label}\n
\n ))}\n \n);\n\nexport default TabsContainer;\n","import { observer } from 'mobx-react-lite';\nimport Avatar from '@mui/material/Avatar';\nimport { SettingsOutlined } from '@mui/icons-material';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { GoUnverified, GoVerified } from 'react-icons/go';\n\nimport clsx from 'clsx';\nimport { FC } from 'react';\nimport styles from '../../styles/components/home/UserCard.module.scss';\nimport { useUser, useView } from '../../store';\nimport { User } from '../../types';\nimport { LEVEL_UP_EXP } from '../../config';\n\ntype UserCardProps = {\n userData: User;\n};\n\nconst UserCard: FC = ({ userData }) => {\n const user = useUser();\n const view = useView();\n\n return (\n
\n
\n \n {user.data?.username?.charAt(0) || ''}\n \n
\n
\n {user.data?.username}\n \n \n {user.data?.fullAccess ? : }\n \n \n
\n \n
{`Contributor Lv. ${user.level}`}
\n \n
\n \n view.setDialog({\n key: 'userSettings',\n })\n }\n >\n \n \n
\n
\n
\n
{userData?.reviewIds?.length || 0}
\n
Reviews
\n
\n
\n
{userData?.upvotes || 0}
\n
Upvotes
\n
\n
\n
\n );\n};\n\nexport default observer(UserCard);\n","import Link from 'next/link';\nimport clsx from 'clsx';\nimport { FC } from 'react';\nimport styles from '../../styles/components/home/HomePageTabs.module.scss';\nimport ListItem from '../molecules/ListItem';\nimport Loading from '../atoms/Loading';\nimport { getMMMDDYY } from '../../helpers/getTime';\nimport { CourseConcise, ErrorCardMode } from '../../types';\nimport ErrorCard from '../molecules/ErrorCard';\n\ntype CoursesListProps = {\n loading: boolean;\n courses: CourseConcise[];\n};\n\nexport const CoursesList: FC = ({ loading, courses }) => {\n if (!courses.length)\n return ;\n if (loading) return ;\n return (\n
\n {courses?.map(course => (\n \n \n \n ))}\n
\n );\n};\n\ntype ReviewsListProps = {\n reviewIds: string[];\n};\n\nexport const ReviewsList: FC = ({ reviewIds }) => {\n if (!reviewIds?.length)\n return ;\n return (\n
\n {reviewIds?.map(id => {\n const [courseId, createdAt] = id.split('#');\n return (\n \n \n \n );\n })}\n
\n );\n};\n","import { FC, useState } from 'react';\nimport { Typography } from '@mui/material';\nimport {\n ChatBubbleOutlineOutlined,\n SchoolOutlined,\n NoteOutlined,\n} from '@mui/icons-material';\nimport { observer } from 'mobx-react-lite';\nimport clsx from 'clsx';\n\nimport styles from '../styles/pages/HomePage.module.scss';\nimport UserCard from '../components/home/UserCard';\nimport { useUser, usePlanner } from '../store';\nimport { CoursesList, ReviewsList } from '../components/home/HomePageTabs';\nimport TabsContainer from '../components/molecules/TabsContainer';\nimport Page from '../components/atoms/Page';\nimport Card from '../components/atoms/Card';\nimport Link from '../components/molecules/Link';\nimport PlannerTimetable from '../components/planner/PlannerTimetable';\nimport Footer from '../components/molecules/Footer';\nimport useMobileQuery from '../hooks/useMobileQuery';\nimport authenticatedRoute from '../components/molecules/authenticatedRoute';\n\nconst LINKS = [\n {\n name: 'CUSIS',\n url: 'https://cusis.cuhk.edu.hk/',\n },\n {\n name: 'Blackboard',\n url: 'https://blackboard.cuhk.edu.hk/',\n },\n {\n name: 'Curriculum Handbook',\n url: 'http://rgsntl.rgs.cuhk.edu.hk/aqs_prd_applx/Public/Handbook/Default.aspx?id=2&tv=T&lang=en',\n },\n];\n\nconst LinksCard: FC = () => (\n \n Links\n {LINKS.map(link => (\n \n ))}\n \n);\n\nconst SELECTIONS = [\n {\n label: 'Courses',\n icon: ,\n },\n {\n label: 'Reviews',\n icon: ,\n },\n {\n label: 'Planner',\n icon: ,\n },\n];\n\nconst HomePage: FC = () => {\n const user = useUser();\n const planner = usePlanner();\n const [tab, setTab] = useState('Courses');\n const isMobile = useMobileQuery();\n\n const renderTab = () => {\n switch (tab) {\n case 'Courses':\n return ;\n case 'Reviews':\n return ;\n case 'Planner':\n return ;\n default:\n return null;\n }\n };\n\n return (\n \n
\n \n \n
\n
\n
\n \n {renderTab()}\n
\n
\n );\n};\n\nexport default authenticatedRoute(observer(HomePage));\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"homeCourseContainer\":\"bplwuiB\",\"homeCourseListItem\":\"sx7iD3O\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userCard\":\"_4U5ZJd9\",\"userCardHeader\":\"JvmUMQi\",\"charIcon\":\"SzQ_Ltr\",\"userCardHeaderDetails\":\"EKtSgoJ\",\"userAboutCard\":\"qqMz_MU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"homePage\":\"bdsa8Yt\",\"homePageLeft\":\"_5vBCefF\",\"homePageRight\":\"_2hpwjn5\",\"homePageTimetable\":\"_7fZ0Cvy\",\"linksCard\":\"_5cClua8\",\"homeLinkContainer\":\"vpjkAUI\"};"],"names":["window","__NEXT_P","push","items","selected","onSelect","mb","div","className","clsx","map","item","label","onClick","icon","span","observer","user","userData","useUser","view","useView","styles","Avatar","data","username","charAt","Tooltip","title","fullAccess","placement","arrow","GoVerified","GoUnverified","LEVEL_UP_EXP","exp","level","IconButton","size","setDialog","key","SettingsOutlined","reviewIds","length","upvotes","CoursesList","loading","courses","Loading","course","Link","href","courseId","ListItem","caption","noBorder","ErrorCard","mode","ErrorCardMode","inPlace","ReviewsList","id","split","createdAt","getMMMDDYY","LINKS","name","url","LinksCard","Card","Typography","link","style","SELECTIONS","SchoolOutlined","ChatBubbleOutlineOutlined","NoteOutlined","authenticatedRoute","planner","usePlanner","useState","isMobile","useMobileQuery","Page","center","padding","UserCard","Footer","visible","TabsContainer","tab","setTab","plannerCourses","PlannerTimetable","renderTab","module","exports"],"sourceRoot":""}