1
1
import { Description , Info , Security , Settings as SettingsIcon } from '@mui/icons-material' ;
2
- import { AppBar , Toolbar , Typography , useMediaQuery , useTheme , FormControl , MenuItem , Select } from '@mui/material' ;
2
+ import { AppBar , Toolbar , Typography } from '@mui/material' ;
3
3
import { styled } from '@mui/system' ;
4
4
import React , { useContext , useState } from 'react' ;
5
5
6
6
import notanglesLogoGif from '../../assets/notangles.gif' ;
7
7
import notanglesLogo from '../../assets/notangles_1.png' ;
8
- import { ThemeType } from '../../constants/theme' ;
9
- import { AppContext } from '../../context/AppContext' ;
10
- import { CourseContext } from '../../context/CourseContext' ;
11
8
import About from './About' ;
12
9
import Changelog from './Changelog' ;
13
10
import CustomModal from './CustomModal' ;
14
11
import Privacy from './Privacy' ;
15
12
import Settings from './Settings' ;
13
+ import TermSelect from './TermSelect' ;
14
+
16
15
17
16
const LogoImg = styled ( 'img' ) `
18
17
height: 46px;
@@ -42,41 +41,6 @@ const NavbarTitle = styled(Typography)`
42
41
const Navbar : React . FC = ( ) => {
43
42
const [ currLogo , setCurrLogo ] = useState ( notanglesLogo ) ;
44
43
45
- const {
46
- term,
47
- termName,
48
- setTermName,
49
- year,
50
- setTerm,
51
- setYear,
52
- setSelectedTimetable,
53
- displayTimetables,
54
- termsData
55
- } = useContext ( AppContext ) ;
56
-
57
- const { setSelectedCourses, setSelectedClasses, setCreatedEvents } =
58
- useContext ( CourseContext ) ;
59
-
60
- const theme = useTheme < ThemeType > ( ) ;
61
- const isMobile = useMediaQuery ( theme . breakpoints . down ( 'sm' ) ) ;
62
-
63
- const selectTerm = ( e : any ) => {
64
- const defaultStartTimetable = 0 ;
65
-
66
- let newTermName = e . target . value . split ( ', ' ) [ 0 ]
67
- let termNum = 'T' + newTermName . split ( ' ' ) [ 1 ]
68
- let newYear = e . target . value . split ( ', ' ) [ 1 ]
69
-
70
- setTerm ( termNum )
71
- setYear ( newYear )
72
- setTermName ( newTermName )
73
- setSelectedTimetable ( defaultStartTimetable ) ;
74
- setSelectedClasses ( displayTimetables [ termNum ] [ defaultStartTimetable ] . selectedClasses ) ;
75
- setCreatedEvents ( displayTimetables [ termNum ] [ defaultStartTimetable ] . createdEvents ) ;
76
- setSelectedCourses ( displayTimetables [ termNum ] [ defaultStartTimetable ] . selectedCourses ) ;
77
- }
78
-
79
- let termData = new Set ( [ termsData . prevTerm . termName . concat ( ', ' , termsData . prevTerm . year ) , termsData . newTerm . termName . concat ( ', ' , termsData . newTerm . year ) ] ) ;
80
44
return (
81
45
< NavbarBox >
82
46
< StyledNavBar enableColorOnDark position = "fixed" >
@@ -90,18 +54,7 @@ const Navbar: React.FC = () => {
90
54
< NavbarTitle variant = "h6" >
91
55
Notangles
92
56
</ NavbarTitle >
93
- < FormControl >
94
- < Select
95
- value = { isMobile ? term : termName . concat ( ', ' , year ) }
96
- onChange = { selectTerm }
97
- >
98
- {
99
- Array . from ( termData ) . map ( ( term , index ) => {
100
- return < MenuItem key = { index } value = { term } > { term } </ MenuItem > ;
101
- } )
102
- }
103
- </ Select >
104
- </ FormControl >
57
+ < TermSelect />
105
58
< CustomModal
106
59
title = "About"
107
60
showIcon = { < Info /> }
@@ -118,7 +71,7 @@ const Navbar: React.FC = () => {
118
71
< CustomModal title = "Settings" showIcon = { < SettingsIcon /> } description = { 'Settings' } content = { < Settings /> } />
119
72
</ Toolbar >
120
73
</ StyledNavBar >
121
- </ NavbarBox >
74
+ </ NavbarBox >
122
75
) ;
123
76
} ;
124
77
0 commit comments