pages/_app.js (94 lines of code) (raw):

import 'bootstrap/dist/css/bootstrap.min.css'; import '../styles/globals.scss'; import 'nprogress/nprogress.css'; import { Nav, Navbar } from 'react-bootstrap'; import { MarkGithubIcon } from '@primer/octicons-react'; import React from 'react'; import { Helmet } from 'react-helmet'; import NProgress from 'nprogress'; import { useRouter } from 'next/router'; import Link from 'next/link'; function MyApp({ Component, pageProps }) { const router = useRouter(); React.useEffect(() => { const routeChangeStart = () => { NProgress.start(); }; const routeChangeComplete = () => { NProgress.done(); }; router.events.on('routeChangeStart', routeChangeStart); router.events.on('routeChangeComplete', routeChangeComplete); router.events.on('routeChangeError', routeChangeComplete); return () => { router.events.off('routeChangeStart', routeChangeStart); router.events.off('routeChangeComplete', routeChangeComplete); router.events.off('routeChangeError', routeChangeComplete); }; }); return ( <div data-testid="app-wrapper"> <Helmet defaultTitle="Add-ons PM" titleTemplate="%s - Add-ons PM" /> <Navbar bg="dark" variant="dark" className="px-3"> <Nav className="me-auto"> <Nav.Item> <Link href="/" passHref legacyBehavior> <Nav.Link className="navbar-brand" eventKey={0}> Addons PM </Nav.Link> </Link> </Nav.Item> <Nav.Item> <Link href="/projects/latest/" passHref legacyBehavior> <Nav.Link eventKey={1}>Projects</Nav.Link> </Link> </Nav.Item> <Nav.Item> <Link href="/milestones/latest/?dir=asc&sort=assignee" passHref legacyBehavior > <Nav.Link eventKey={2}>Milestones</Nav.Link> </Link> </Nav.Item> <Nav.Item> <Link href="/dashboards/amo/" passHref legacyBehavior> <Nav.Link eventKey={3}>AMO Dashboard</Nav.Link> </Link> </Nav.Item> <Nav.Item> <Link href="/dashboards/webext/" passHref legacyBehavior> <Nav.Link eventKey={4}>Webext Dashboard</Nav.Link> </Link> </Nav.Item> <Nav.Item> <Link href="/contrib/maybe-good-first-bugs/?dir=desc&sort=updatedAt" passHref legacyBehavior > <Nav.Link eventKey={5}>Contributions</Nav.Link> </Link> </Nav.Item> </Nav> <Nav className="me-sm-2"> <Nav.Item> <Nav.Link data-ref="src" eventKey="src" target="_blank" rel="noopener noreferrer" href="https://github.com/mozilla/addons-pm/" > <MarkGithubIcon verticalAlign="middle" aria-label="View on Github" size="medium" /> </Nav.Link> </Nav.Item> </Nav> </Navbar> <Component {...pageProps} /> </div> ); } export default MyApp;