Skip to content

Commit add0a86

Browse files
committed
Added loader bar
1 parent c5eccc8 commit add0a86

File tree

4 files changed

+110
-1
lines changed

4 files changed

+110
-1
lines changed

package-lock.json

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"dependencies": {
1111
"axios": "^0.21.1",
1212
"next": "11.0.1",
13+
"nprogress": "^0.2.0",
1314
"react": "17.0.2",
1415
"react-dom": "17.0.2"
1516
}

pages/_app.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from "react"
22
import Head from "next/head"
3-
import {useRouter} from "next/router"
3+
import Router, {useRouter} from "next/router"
44
import Navbar from "../components/Navbar"
55
import Footer from "../components/Footer"
66

@@ -11,6 +11,21 @@ import '../styles/Navbar.css'
1111
import '../styles/Footer.css'
1212
import '../styles/contact.css'
1313
import '../styles/globals.css'
14+
import '../styles/nprogress.css'
15+
16+
17+
import NProgress from 'nprogress';
18+
19+
NProgress.configure({ easing: 'ease', speed: 1000 });
20+
Router.onRouteChangeStart = () => {
21+
NProgress.start();
22+
};
23+
Router.onRouteChangeComplete = () => {
24+
NProgress.done();
25+
};
26+
Router.onRouteChangeError = () => {
27+
NProgress.done();
28+
};
1429

1530

1631
let excludes = ["/app/run"]

styles/nprogress.css

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/* Make clicks pass-through */
2+
3+
#nprogress {
4+
pointer-events: none;
5+
}
6+
7+
#nprogress .bar {
8+
background: #fc7;
9+
position: fixed;
10+
z-index: 1031;
11+
top: 0;
12+
left: 0;
13+
width: 100%;
14+
height: 5px;
15+
}
16+
17+
18+
/* Fancy blur effect */
19+
20+
#nprogress .peg {
21+
display: block;
22+
position: absolute;
23+
right: 0px;
24+
width: 100px;
25+
height: 100%;
26+
box-shadow: 0 0 10px #fc7, 0 0 5px #fc7;
27+
opacity: 1.0;
28+
-webkit-transform: rotate(3deg) translate(0px, -4px);
29+
-ms-transform: rotate(3deg) translate(0px, -4px);
30+
transform: rotate(3deg) translate(0px, -4px);
31+
}
32+
33+
34+
/* Remove these to get rid of the spinner */
35+
36+
#nprogress .spinner {
37+
display: block;
38+
position: fixed;
39+
z-index: 1031;
40+
top: 15px;
41+
right: 15px;
42+
}
43+
44+
#nprogress .spinner-icon {
45+
width: 18px;
46+
height: 18px;
47+
box-sizing: border-box;
48+
border: solid 2px transparent;
49+
border-top-color: #fc7;
50+
border-left-color: #fc7;
51+
border-radius: 50%;
52+
-webkit-animation: nprogress-spinner 400ms linear infinite;
53+
animation: nprogress-spinner 400ms linear infinite;
54+
}
55+
56+
.nprogress-custom-parent {
57+
overflow: hidden;
58+
position: relative;
59+
}
60+
61+
.nprogress-custom-parent #nprogress .spinner,
62+
.nprogress-custom-parent #nprogress .bar {
63+
position: absolute;
64+
}
65+
66+
@-webkit-keyframes nprogress-spinner {
67+
0% {
68+
-webkit-transform: rotate(0deg);
69+
}
70+
100% {
71+
-webkit-transform: rotate(360deg);
72+
}
73+
}
74+
75+
@keyframes nprogress-spinner {
76+
0% {
77+
transform: rotate(0deg);
78+
}
79+
100% {
80+
transform: rotate(360deg);
81+
}
82+
}

0 commit comments

Comments
 (0)