forked from ant-design/ant-design-pro-site
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gatsby-browser.js
95 lines (88 loc) · 2.29 KB
/
gatsby-browser.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// eslint-disable-next-line import/no-extraneous-dependencies
import NProgress from 'nprogress';
export const onClientEntry = () => {
// Merge default options with user defined options in `gatsby-config.js`
const options = { color: '#1890ff' };
// Inject styles.
const styles = `
#nprogress {
pointer-events: none;
}
#nprogress .bar {
background: ${options.color};
position: fixed;
z-index: 1031;
top: 0;
left: 0;
width: 100%;
height: 2px;
}
#nprogress .peg {
display: block;
position: absolute;
right: 0px;
width: 100px;
height: 100%;
box-shadow: 0 0 10px ${options.color}, 0 0 5px ${options.color};
opacity: 1.0;
-webkit-transform: rotate(3deg) translate(0px, -4px);
-ms-transform: rotate(3deg) translate(0px, -4px);
transform: rotate(3deg) translate(0px, -4px);
}
#nprogress .spinner {
display: block;
position: fixed;
z-index: 1031;
top: 15px;
right: 15px;
}
#nprogress .spinner-icon {
width: 18px;
height: 18px;
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: ${options.color};
border-left-color: ${options.color};
border-radius: 50%;
-webkit-animation: nprogress-spinner 400ms linear infinite;
animation: nprogress-spinner 400ms linear infinite;
}
.nprogress-custom-parent {
overflow: hidden;
position: relative;
}
.nprogress-custom-parent #nprogress .spinner,
.nprogress-custom-parent #nprogress .bar {
position: absolute;
}
@-webkit-keyframes nprogress-spinner {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
}
@keyframes nprogress-spinner {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
`;
const node = document.createElement('style');
node.id = 'nprogress-styles';
node.innerHTML = styles;
document.head.appendChild(node);
NProgress.configure(options);
};
export const onPreRouteUpdate = () => {
NProgress.start();
NProgress.set(0.6);
};
export const onRouteUpdate = () => {
NProgress.done(true);
};
export const shouldUpdateScroll = () => false;