Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added web/src/assets/img/pale_background_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
111 changes: 86 additions & 25 deletions web/src/components/navbar/index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
import React from 'react';
import React, { useEffect, useRef, useState } from 'react';
import PropTypes from 'prop-types';
import { Link } from 'react-router-dom';
import Headroom from 'headroom.js';
import { Navbar as NavbarStrap, Container, NavbarBrand, NavItem, Nav, NavLink, UncontrolledTooltip } from 'reactstrap';
import {
Navbar as NavbarStrap,
Container,
NavbarBrand,
NavItem,
Nav,
NavLink,
UncontrolledTooltip,
UncontrolledCollapse,
Row,
Col,
Button,
} from 'reactstrap';

import Logo from 'assets/img/logo.png';
import PaleBackgroundLogo from 'assets/img/pale_background_logo.png';
import text from './text.json';

const OutsideLink = ({ href, iconClass, linkName, tooltipText, tooltipID }) => {
Expand Down Expand Up @@ -35,29 +48,77 @@ OutsideLink.defaultProps = {
tooltipText: '',
};

class Navbar extends React.Component {
constructor(props) {
super(props);
this.navbarstrapRef = React.createRef();
}
const ResponsiveCollapse = ({ children }) => {
const [collapseClass, setCollapseClass] = useState('');
const [isCollapseOpen, setIsCollapseOpen] = useState(false);

componentDidMount() {
const headroom = new Headroom(this.navbarstrapRef);
return (
<React.Fragment>
<button className="navbar-toggler" id="navbar_global" onClick={() => setIsCollapseOpen(!isCollapseOpen)}>
<span className="navbar-toggler-icon" />
</button>
<UncontrolledCollapse
toggler="#navbar_global"
navbar
isOpen={isCollapseOpen}
className={collapseClass}
onExiting={() => {
setCollapseClass('collapsing-out');
}}
onExited={() => {
setCollapseClass('');
}}
>
<div className="navbar-collapse-header">
<Row>
<Col className="collapse-brand" xs="6">
<Link to="/">
<img alt="Polydodo" src={PaleBackgroundLogo} />
</Link>
</Col>
<Col className="collapse-close" xs="6">
<Button
color="link"
className="navbar-toggler"
id="navbar_global"
onClick={() => setIsCollapseOpen(false)}
>
<span />
<span />
</Button>
</Col>
</Row>
</div>
{children}
</UncontrolledCollapse>
</React.Fragment>
);
};

ResponsiveCollapse.propTypes = {
children: PropTypes.array.isRequired,
};

const Navbar = () => {
const navbarstrapRef = useRef();
useEffect(() => {
const headroom = new Headroom(navbarstrapRef.current);
headroom.init();
}
return () => headroom.destroy();
});

render() {
return (
<div ref={(ref) => (this.navbarstrapRef = ref)} className="navbar-main navbar-transparent navbar-light headroom">
<NavbarStrap id="navbar-main" expand="lg">
<Container>
<NavbarBrand className="mr-lg-5" to="/" tag={Link}>
<img alt="Polydodo" src={Logo} />
</NavbarBrand>
return (
<div ref={(ref) => (navbarstrapRef.current = ref)} className="navbar-main navbar-transparent navbar-light headroom">
<NavbarStrap id="navbar-main" expand="lg">
<Container>
<NavbarBrand className="mr-lg-5" to="/" tag={Link}>
<img alt="Polydodo" src={Logo} />
</NavbarBrand>

<ResponsiveCollapse>
<Nav className="navbar-nav-hover align-items-lg-center" navbar>
<NavItem>
<NavLink to="/" tag={Link}>
<NavLink to="/" tag={Link} id="navbar_global">
{text['navbar_home']}
</NavLink>
</NavItem>
Expand Down Expand Up @@ -101,11 +162,11 @@ class Navbar extends React.Component {
tooltipID="tooltip112445449"
/>
</Nav>
</Container>
</NavbarStrap>
</div>
);
}
}
</ResponsiveCollapse>
</Container>
</NavbarStrap>
</div>
);
};

export default Navbar;
4 changes: 2 additions & 2 deletions web/src/views/analyze_sleep/upload_form/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ const UploadForm = () => {
<Input
innerRef={register({
required: 'A number must be provided',
min: { value: MIN_AGE, message: 'Please provide a positive integer' },
max: { value: MAX_AGE, message: 'Age cannot be more than 125 y/o' },
min: { value: MIN_AGE, message: `Age must be at least ${MIN_AGE} y/o` },
max: { value: MAX_AGE, message: `Age cannot be more than ${MAX_AGE} y/o` },
})}
min={MIN_AGE}
max={MAX_AGE}
Expand Down
8 changes: 5 additions & 3 deletions web/src/views/sleep_analysis_results/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,11 @@ const SleepAnalysisResults = () => {
</p>
<p>Wanna know how accurate this data is?</p>
<Row className="scrollytelling-container__buttons">
<Button className="mt-4" color="default" to="/performance" tag={Link}>
Check out the performances
</Button>
<Link to="/performance">
<Button className="mt-4" color="default">
Check out the performances
</Button>
</Link>
<Button
className="mt-4"
color="secondary"
Expand Down