From 8dea9e9242aca8bf003a7c2f69c96abafbf77e6d Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Mon, 10 Apr 2023 16:29:48 +0700 Subject: page loader --- src/core/components/elements/Link/Link.jsx | 8 ------- src/images/LOGO-INDOTEKNIK-GEAR-GREY.png | Bin 0 -> 14190 bytes src/images/LOGO-INDOTEKNIK-GEAR.png | Bin 0 -> 18304 bytes src/lib/invoice/components/Invoice.jsx | 2 +- src/lib/product/components/ProductCard.jsx | 4 ++-- src/lib/transaction/components/Transaction.jsx | 2 +- src/pages/_app.jsx | 29 +++++++++++++++++++++++-- src/styles/globals.css | 21 ++++++++++++++++-- 8 files changed, 50 insertions(+), 16 deletions(-) create mode 100644 src/images/LOGO-INDOTEKNIK-GEAR-GREY.png create mode 100644 src/images/LOGO-INDOTEKNIK-GEAR.png (limited to 'src') diff --git a/src/core/components/elements/Link/Link.jsx b/src/core/components/elements/Link/Link.jsx index 360444a6..b2dbd02f 100644 --- a/src/core/components/elements/Link/Link.jsx +++ b/src/core/components/elements/Link/Link.jsx @@ -1,14 +1,6 @@ import NextLink from 'next/link' -import { useRouter } from 'next/router' -import { useEffect } from 'react' const Link = ({ children, ...props }) => { - const router = useRouter() - - useEffect(() => { - router.events.on('routeChangeComplete', () => window.scrollTo({ top: 0, behavior: 'smooth' })) - }, [router]) - return ( { product?.parent.name, product?.parent.id )} - className='w-[30%] flex-shrink-0' + className='w-[25%] flex-shrink-0' > { )} {product?.name} diff --git a/src/lib/transaction/components/Transaction.jsx b/src/lib/transaction/components/Transaction.jsx index ad59f8dd..7dfb13fb 100644 --- a/src/lib/transaction/components/Transaction.jsx +++ b/src/lib/transaction/components/Transaction.jsx @@ -368,7 +368,7 @@ const Transaction = ({ id }) => { product?.parent.name, product?.parent.id )} - className='w-[30%] flex-shrink-0' + className='w-[25%] flex-shrink-0' > { + Router.events.on('routeChangeStart', () => setAnimateLoader(true)) + Router.events.on('routeChangeComplete', () => setAnimateLoader(false)) + + return () => { + Router.events.off('routeChangeStart', () => setAnimateLoader(true)) + Router.events.off('routeChangeComplete', () => setAnimateLoader(false)) + } + }, []) + const [toasterStyle, setToasterStyle] = useState({}) useEffect(() => { @@ -30,6 +44,17 @@ function MyApp({ Component, pageProps }) { return ( <> + {animateLoader && ( +
+ Indoteknik Logo +
+ )} window.scrollTo(0, 0)} > - + {!animateLoader && } diff --git a/src/styles/globals.css b/src/styles/globals.css index 551ff057..d97843a9 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -133,7 +133,7 @@ button { .btn-yellow { @apply bg-warning-500 border-warning-500 - hover:bg-warning-600 + hover:bg-warning-500/80 disabled:text-gray_r-10 disabled:bg-warning-200 disabled:border-warning-200; @@ -151,7 +151,7 @@ button { @apply bg-danger-500 border-danger-500 text-gray_r-1 - hover:bg-danger-600 + hover:bg-danger-500/80 disabled:text-gray_r-1 disabled:bg-danger-200 disabled:border-danger-200; @@ -602,3 +602,20 @@ button { duration-100 font-normal; } + +@keyframes page-loader { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +.page-loader { + animation-name: page-loader; + animation-duration: 1000ms; + animation-delay: 50ms; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; +} -- cgit v1.2.3