mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 04:46:40 +07:00
(nextjs) added timeout for loader
This commit is contained in:
parent
41b26e7d69
commit
bcaa9fde39
2 changed files with 26 additions and 5 deletions
|
@ -7,7 +7,7 @@ import styles from './styles.module.scss';
|
||||||
interface LoadingProgressProps {}
|
interface LoadingProgressProps {}
|
||||||
|
|
||||||
const LoadingProgress: VFC<LoadingProgressProps> = () => {
|
const LoadingProgress: VFC<LoadingProgressProps> = () => {
|
||||||
const shown = useSSRLoadingIndicator();
|
const shown = useSSRLoadingIndicator(300);
|
||||||
|
|
||||||
return shown ? (
|
return shown ? (
|
||||||
<>
|
<>
|
||||||
|
|
|
@ -2,13 +2,34 @@ import { useEffect, useState } from 'react';
|
||||||
|
|
||||||
import Router from 'next/router';
|
import Router from 'next/router';
|
||||||
|
|
||||||
export const useSSRLoadingIndicator = () => {
|
/** decides to show loader on SSR loading */
|
||||||
|
export const useSSRLoadingIndicator = (delay = 0) => {
|
||||||
const [shown, setShown] = useState(false);
|
const [shown, setShown] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
Router.events.on('routeChangeStart', () => setShown(true));
|
let timeout;
|
||||||
Router.events.on('routeChangeComplete', () => setShown(false));
|
|
||||||
Router.events.on('routeChangeError', () => setShown(false));
|
const show = () => {
|
||||||
|
if (timeout) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
timeout = setTimeout(() => {
|
||||||
|
setShown(true);
|
||||||
|
}, delay);
|
||||||
|
};
|
||||||
|
|
||||||
|
const hide = () => {
|
||||||
|
if (timeout) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
setShown(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
Router.events.on('routeChangeStart', show);
|
||||||
|
Router.events.on('routeChangeComplete', hide);
|
||||||
|
Router.events.on('routeChangeError', hide);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return shown;
|
return shown;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue