mirror of
https://github.com/billsonnn/nitro-react.git
synced 2025-01-18 21:36:27 +01:00
Added loading screen
This commit is contained in:
parent
f5d64fa2b4
commit
d416c82741
@ -1,5 +1,4 @@
|
|||||||
import { FC } from 'react';
|
import { FC } from 'react';
|
||||||
import { Column } from '../../common';
|
|
||||||
|
|
||||||
interface LoadingViewProps
|
interface LoadingViewProps
|
||||||
{
|
{
|
||||||
@ -8,14 +7,38 @@ interface LoadingViewProps
|
|||||||
export const LoadingView: FC<LoadingViewProps> = props =>
|
export const LoadingView: FC<LoadingViewProps> = props =>
|
||||||
{
|
{
|
||||||
const {} = props;
|
const {} = props;
|
||||||
|
|
||||||
|
const generateStars = (count, className) =>
|
||||||
|
{
|
||||||
|
return Array.from({ length: count }, () => ({
|
||||||
|
top: `${ Math.random() * 100 }%`,
|
||||||
|
left: `${ Math.random() * 100 }%`
|
||||||
|
})).map((style, index) => (
|
||||||
|
<div key={ index } className={ className } style={ style }>
|
||||||
|
<div className="star-part" />
|
||||||
|
<div className="star-part" />
|
||||||
|
</div>
|
||||||
|
));
|
||||||
|
};
|
||||||
|
|
||||||
|
const smallStars = generateStars(90, 'dot');
|
||||||
|
const mediumStars = generateStars(15, 'star');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Column fullHeight className="nitro-loading" position="relative">
|
<div className="relative w-screen h-screen z-loading bg-loading">
|
||||||
<div className="container h-100">
|
<div className="container flex w-screen h-screen">
|
||||||
<Column fullHeight alignItems="center" justifyContent="end">
|
<div className="flex items-center justify-center w-screen h-screen">
|
||||||
<div className="connecting-duck" />
|
{ smallStars }
|
||||||
</Column>
|
{ mediumStars }
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Column>
|
</div>
|
||||||
|
/* <div className="relative w-screen h-screen z-loading bg-card-header">
|
||||||
|
<div className="container flex w-screen h-screen">
|
||||||
|
<div className="flex items-center justify-center w-screen h-screen">
|
||||||
|
<div className="connecting-duck" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>*/
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
112
src/index.css
112
src/index.css
@ -75,6 +75,113 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@layer components {
|
@layer components {
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
0%, 100% { opacity: 1; }
|
||||||
|
50% { opacity: 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes scale {
|
||||||
|
0%, 100% { transform: scale(1); }
|
||||||
|
50% { transform: scale(1.5); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot {
|
||||||
|
position: absolute;
|
||||||
|
width: 2px;
|
||||||
|
height: 2px;
|
||||||
|
background-color: white;
|
||||||
|
animation: blink 2s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.star {
|
||||||
|
position: absolute;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
color: #ffffff;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
background: currentColor;
|
||||||
|
width: 5px;
|
||||||
|
height: 5px;
|
||||||
|
-webkit-animation: blink 1s linear infinite;
|
||||||
|
animation: blink 1s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.star-part {
|
||||||
|
position: absolute;
|
||||||
|
background-color: currentColor;
|
||||||
|
|
||||||
|
&:nth-child(1){
|
||||||
|
top: 0;
|
||||||
|
left: 50%;
|
||||||
|
width: 1px;
|
||||||
|
height: 100%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:nth-child(2) {
|
||||||
|
top: 50%;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 1px;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.connecting-duck {
|
||||||
|
@apply absolute inset-0 m-auto;
|
||||||
|
background: url('@/assets/images/loading/connecting-duck-spritesheet.png') no-repeat top left;
|
||||||
|
width: 235px;
|
||||||
|
height: 127px;
|
||||||
|
animation: connecting-duck 1.5s infinite step-end;
|
||||||
|
transform: scale(0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes connecting-duck {
|
||||||
|
0% {
|
||||||
|
background-position: 0 0;
|
||||||
|
width: 235px;
|
||||||
|
height: 127px;
|
||||||
|
}
|
||||||
|
15% {
|
||||||
|
background-position: 0 -132px;
|
||||||
|
width: 280px;
|
||||||
|
height: 151px;
|
||||||
|
}
|
||||||
|
30% {
|
||||||
|
background-position: 0 -288px;
|
||||||
|
width: 326px;
|
||||||
|
height: 174px;
|
||||||
|
}
|
||||||
|
45% {
|
||||||
|
background-position: 0 -467px;
|
||||||
|
width: 235px;
|
||||||
|
height: 127px;
|
||||||
|
}
|
||||||
|
60% {
|
||||||
|
background-position: 0 -599px;
|
||||||
|
width: 280px;
|
||||||
|
height: 151px;
|
||||||
|
}
|
||||||
|
75% {
|
||||||
|
background-position: 0 -755px;
|
||||||
|
width: 326px;
|
||||||
|
height: 174px;
|
||||||
|
}
|
||||||
|
90% {
|
||||||
|
background-position: 0 -934px;
|
||||||
|
width: 190px;
|
||||||
|
height: 104px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.avatar-image {
|
.avatar-image {
|
||||||
@apply pointer-events-none relative h-[130px] w-[90px] bg-[center_-8px] bg-no-repeat;
|
@apply pointer-events-none relative h-[130px] w-[90px] bg-[center_-8px] bg-no-repeat;
|
||||||
}
|
}
|
||||||
@ -277,6 +384,11 @@ body {
|
|||||||
background-image: url("@/assets/images/chat/styles-icon.png");
|
background-image: url("@/assets/images/chat/styles-icon.png");
|
||||||
width: 17px;
|
width: 17px;
|
||||||
height: 19px;
|
height: 19px;
|
||||||
|
filter: grayscale(100%);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
filter: grayscale(0%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.pencil-icon {
|
&.pencil-icon {
|
||||||
|
@ -15,6 +15,7 @@ const colors = {
|
|||||||
'card-grid-item-active': '#ECECEC',
|
'card-grid-item-active': '#ECECEC',
|
||||||
'card-grid-item-border': '#B6BEC5',
|
'card-grid-item-border': '#B6BEC5',
|
||||||
'card-grid-item-border-active': '#FFFFFF',
|
'card-grid-item-border-active': '#FFFFFF',
|
||||||
|
'loading': '#393A85'
|
||||||
};
|
};
|
||||||
|
|
||||||
const boxShadow = {
|
const boxShadow = {
|
||||||
@ -39,8 +40,9 @@ module.exports = {
|
|||||||
'inventory-h': '320px'
|
'inventory-h': '320px'
|
||||||
},
|
},
|
||||||
zIndex: {
|
zIndex: {
|
||||||
'toolbar': ''
|
'toolbar': '',
|
||||||
}
|
'loading': '100'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
safelist: [
|
safelist: [
|
||||||
|
Loading…
Reference in New Issue
Block a user