11// Third party
2- import React from 'react'
3- import { Navbar , NavLink } from 'react-bootstrap'
2+ import React , { useState } from 'react'
3+ import { Navbar , NavLink , NavDropdown } from 'react-bootstrap'
44import { Link } from 'react-router-dom'
5- //import {motion} from 'framer-motion'; framer motion bug (maybe this project is just too outdated)
65
76// Custom styles
87import Styles from './NavigationStyles'
@@ -17,10 +16,13 @@ import nasaLogo from '../../../assets/pics/logos/nasa.png'
1716const Navigation = ( ) : React . ReactElement => {
1817 const { scroll } = getScrollY ( )
1918 const { width } = useWindowSize ( )
20- const TEAMS = `https://teams.microsoft.com/l/team/19%3aeaf903fd81cd48eba95d8e769ed78544%40thread.tacv2/conversations?groupId=8f
19+ const TEAMS = `https://teams.microsoft.com/l/team/19%3aeaf903fd81cd48eba95d8e769ed78544%40thread.tacv2/conversations?groupId=8f
2120 78ecbb-62f3-4b2c-bda7-7488eca908ee&tenantId=716e81ef-b522-4473-8e31-10bd02ccf6e5`
22- return (
2321
22+ // State for handling dropdown hover
23+ const [ showDropdown , setShowDropdown ] = useState ( false )
24+
25+ return (
2426 < >
2527 { /* The rest of the navigation bar. The className is dependent on whether the navbar is expanded or not */ }
2628 < Styles . NavigationBar id = 'navbar-transition'
@@ -44,12 +46,24 @@ const Navigation = (): React.ReactElement => {
4446 < NavLink eventKey = '1' as = { Link } to = { Constants . PATHS . HOME } onClick = { scrollToTop } > Home</ NavLink >
4547 < NavLink eventKey = '2' as = { Link } to = { Constants . PATHS . EVENTS } onClick = { scrollToTop } > Events</ NavLink >
4648 < NavLink eventKey = '3' as = { Link } to = { Constants . PATHS . SPONSORS } onClick = { scrollToTop } > Sponsors</ NavLink >
47- < NavLink eventKey = '4' as = { Link } to = { Constants . PATHS . ROBOTICS } onClick = { scrollToTop } > Robotics</ NavLink >
48- < NavLink eventKey = '5' as = { Link } to = { Constants . PATHS . ROCKSAT } onClick = { scrollToTop } > RockSat</ NavLink >
49- < NavLink eventKey = '6' as = { Link } to = { Constants . PATHS . BALLOONING } onClick = { scrollToTop } > NASA Ballooning</ NavLink >
50- < NavLink eventKey = '8' as = { Link } to = { Constants . PATHS . MEETTHELEADS } onClick = { scrollToTop } >
51- Meet Our Robotics Leads
52- </ NavLink >
49+ { /* Projects Dropdown - Opens on Hover */ }
50+ < NavDropdown
51+ title = 'Projects'
52+ id = 'projects-dropdown'
53+ show = { showDropdown }
54+ onMouseEnter = { ( ) => setShowDropdown ( true ) }
55+ onMouseLeave = { ( ) => setShowDropdown ( false ) }
56+ className = 'nav-link' >
57+ < NavDropdown . Item as = { Link } to = { Constants . PATHS . ROBOTICS } onClick = { scrollToTop } >
58+ Robotics
59+ </ NavDropdown . Item >
60+ < NavDropdown . Item as = { Link } to = { Constants . PATHS . ROCKSAT } onClick = { scrollToTop } >
61+ RockSat
62+ </ NavDropdown . Item >
63+ < NavDropdown . Item as = { Link } to = { Constants . PATHS . BALLOONING } onClick = { scrollToTop } >
64+ NASA Ballooning
65+ </ NavDropdown . Item >
66+ </ NavDropdown >
5367 </ Styles . NavbarLinks >
5468 </ Navbar . Collapse >
5569 </ Styles . NavigationBar >
0 commit comments