Update to Next 13 and all other dependencies. Fix Link tag, Script tag, Image tag, and custom Nav Link tag.

This commit is contained in:
Bradley Shellnut 2022-11-10 16:24:11 -06:00
parent 096b83141c
commit 2c74527bca
8 changed files with 36 additions and 52 deletions

View file

@ -54,9 +54,7 @@ export default function Footer() {
<FooterStyles> <FooterStyles>
<div> <div>
<h2> <h2>
<Link href="/"> <Link href="/">N & N</Link>
<a>N & N</a>
</Link>
</h2> </h2>
{user && user.isLoggedIn === true ? ( {user && user.isLoggedIn === true ? (
<> <>

View file

@ -31,9 +31,7 @@ const Header = () => {
<HeaderStyles> <HeaderStyles>
<div> <div>
<Link href="/"> <Link href="/">
<a> <h1 className="center">Name & Name</h1>
<h1 className="center">Name & Name</h1>
</a>
</Link> </Link>
{user && user.isLoggedIn === true && !pastWeddingDate ? ( {user && user.isLoggedIn === true && !pastWeddingDate ? (
<> <>

View file

@ -4,27 +4,13 @@ import NavStyles from './styles/NavStyles';
export default function Nav() { export default function Nav() {
return ( return (
<NavStyles> <NavStyles>
<NavLink href="/"> <NavLink href="/">Home</NavLink>
<a>Home</a> <NavLink href="/story">Our Story</NavLink>
</NavLink> <NavLink href="/party">Wedding Party</NavLink>
<NavLink href="/story"> <NavLink href="/photos">Photos</NavLink>
<a>Our Story</a> <NavLink href="/travelstay">Travel & Stay</NavLink>
</NavLink> <NavLink href="/qanda">Q & A</NavLink>
<NavLink href="/party"> <NavLink href="/rsvp">RSVP</NavLink>
<a>Wedding Party</a>
</NavLink>
<NavLink href="/photos">
<a>Photos</a>
</NavLink>
<NavLink href="/travelstay">
<a>Travel & Stay</a>
</NavLink>
<NavLink href="/qanda">
<a>Q & A</a>
</NavLink>
<NavLink href="/rsvp">
<a>RSVP</a>
</NavLink>
</NavStyles> </NavStyles>
); );
} }

View file

@ -2,18 +2,13 @@ import React from 'react';
import Link from 'next/link'; import Link from 'next/link';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
export const NavLink = ({ children, href }) => { export const NavLink = ({ href, children }) => {
const child = React.Children.only(children); const { asPath } = useRouter();
const router = useRouter(); const ariaCurrent = href === asPath ? 'page' : undefined;
return ( return (
<Link href={href}> <Link prefetch href={href} aria-current={ariaCurrent}>
{React.cloneElement(child, { {children}
'aria-current':
router.pathname === href || router.pathname.includes(`${href}/`)
? 'page'
: null,
})}
</Link> </Link>
); );
}; };

View file

@ -344,13 +344,7 @@ export default function Page({ children }) {
<GlobalStyles /> <GlobalStyles />
<Typography /> <Typography />
<BackgroundImageStyles> <BackgroundImageStyles>
<Image <Image alt="" src="/assets/images/Background.png" fill quality={100} />
alt=""
src="/assets/images/Background.png"
layout="fill"
objectFit="cover"
quality={100}
/>
</BackgroundImageStyles> </BackgroundImageStyles>
<LayoutStyles> <LayoutStyles>
<Header /> <Header />

View file

@ -5,6 +5,7 @@ import { SWRConfig } from 'swr';
import Page from '../components/Page'; import Page from '../components/Page';
import '../components/styles/nprogress.css'; import '../components/styles/nprogress.css';
import fetch from '../lib/fetchJson'; import fetch from '../lib/fetchJson';
import Script from 'next/script';
Router.events.on('routeChangeStart', () => NProgress.start()); Router.events.on('routeChangeStart', () => NProgress.start());
Router.events.on('routeChangeComplete', () => NProgress.done()); Router.events.on('routeChangeComplete', () => NProgress.done());
@ -65,7 +66,7 @@ function MyApp({ Component, pageProps }) {
as="font" as="font"
crossOrigin="" crossOrigin=""
/> />
<script <Script
async async
defer defer
data-website-id={process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID} data-website-id={process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID}

View file

@ -2,13 +2,25 @@ import Document, { Html, Head, NextScript, Main } from 'next/document';
import { ServerStyleSheet } from 'styled-components'; import { ServerStyleSheet } from 'styled-components';
export default class MyDocument extends Document { export default class MyDocument extends Document {
static getInitialProps({ renderPage }) { static async getInitialProps(ctx) {
const sheet = new ServerStyleSheet(); const sheet = new ServerStyleSheet();
const page = renderPage( const originalRenderPage = ctx.renderPage;
(App) => (props) => sheet.collectStyles(<App {...props} />)
); try {
const styleTags = sheet.getStyleElement(); ctx.renderPage = () =>
return { ...page, styleTags }; originalRenderPage({
enhanceApp: (App) => (props) =>
sheet.collectStyles(<App {...props} />),
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
styles: [initialProps.styles, sheet.getStyleElement()],
};
} finally {
sheet.seal();
}
} }
render() { render() {

View file

@ -69,7 +69,7 @@ export default function PhotosPage({ images }) {
alt={image?.alt} alt={image?.alt}
width={image.width} width={image.width}
height={image.height} height={image.height}
objectFit="cover" // objectFit="cover"
placeholder="blur" placeholder="blur"
/> />
))} ))}