diff options
| author | Rafi Zadanly <rafizadanly@gmail.com> | 2022-11-19 13:55:00 +0700 |
|---|---|---|
| committer | Rafi Zadanly <rafizadanly@gmail.com> | 2022-11-19 13:55:00 +0700 |
| commit | 40bab7be1e0025c7c089e1eac17451ef155a989a (patch) | |
| tree | 5a87f4fd87f3c6bc0823e58614dd93ca6c97d2c8 /src/pages/_app.js | |
| parent | 679e565b4594bd172f2576926567a740760ff55e (diff) | |
Add page transition
Diffstat (limited to 'src/pages/_app.js')
| -rw-r--r-- | src/pages/_app.js | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/src/pages/_app.js b/src/pages/_app.js index db14ca15..faa8b2b4 100644 --- a/src/pages/_app.js +++ b/src/pages/_app.js @@ -1,23 +1,14 @@ import '../styles/globals.css'; -import NextProgress from "next-progress"; +import NextProgress from 'next-progress'; import { ToastContainer, Slide } from 'react-toastify'; import 'react-toastify/dist/ReactToastify.css'; import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; import Image from 'next/image'; +import { AnimatePresence } from 'framer-motion'; function MyApp({ Component, pageProps }) { const router = useRouter(); - const [pageLoading, setPageLoading] = useState(false); - - useEffect(() => { - const handleStartLoading = () => { setPageLoading(true) }; - const handleCompleteLoading = () => { setPageLoading(false) }; - - router.events.on('routeChangeStart', handleStartLoading); - router.events.on('routeChangeComplete', handleCompleteLoading); - router.events.on('routeChangeError', handleCompleteLoading); - }, [router]); return ( <> @@ -32,12 +23,12 @@ function MyApp({ Component, pageProps }) { <NextProgress color="#D7A30A" options={{ showSpinner: false, }} /> - {pageLoading ? ( - <div className='h-screen w-screen flex flex-col justify-center items-center'> - <Image src='/images/loading.gif' width={96} height={96} alt='Loading Indoteknik' /> - <h1>Loading</h1> - </div> - ) : <Component {...pageProps} />} + <AnimatePresence + mode='sync' + initial={false} + > + <Component {...pageProps} /> + </AnimatePresence> </> ) } |
