import React from 'react'; import { Flex, Box, Text, Link, SimpleGrid, Divider } from '@chakra-ui/react'; import { Link as ReactRouterLink } from 'react-router-dom'; import { IPageProps } from '@educt/interfaces'; import { Page } from '@educt/components/PageElements'; import { Stat, StatContent, StatIcon, StatLabel, StatNumber } from '@educt/components/Stat'; import { MdOutlineCollectionsBookmark, MdOutlineGroup, MdOutlineMessage, MdOutlineVideoLibrary } from 'react-icons/md'; import { useRootStore } from '@educt/hooks/useRootStore'; import LoadingPage from '@educt/components/LoadingPage'; import { CourseCard, CourseCardCategory, CourseCardCreated, CourseCardHeading, CourseCardContent, CourseCardLessons, CourseCardTitle, CourseCardFooter, CourseCardWatch, CourseCardStat, CourseCardList, } from './components'; import { observer } from 'mobx-react'; /** * Hooks */ import { useFetchCourses, useFetchStat } from '@educt/hooks/queries'; /** * Main page */ const MainPage: React.FC = () => { const { userStore: { me }, onlineStore, } = useRootStore(); const { data: courses } = useFetchCourses({ limit: 3 }); const { data: stat } = useFetchStat(); if (me === null || courses === null || stat === null) return ; const unreadMessages = me.notifications.filter(n => n.type === 'MESSAGE'); return ( Online {onlineStore.count || 0} Unread messages {unreadMessages.length} Courses {stat.courses_count} Lessons {stat.lessons_count} Recently added See all {courses.map(course => ( {course.title} {course.category.title} ))} ); }; export default observer(MainPage);