Skip to content

Commit 26b1733

Browse files
committed
Loader component added
1 parent 18571a5 commit 26b1733

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { Suspense } from 'react';
22
import ReactDOM from 'react-dom';
3+
import Loader from './src/components/loader/loader.component.jsx';
34
const App = React.lazy(() => import('./src/app.jsx'));
45

5-
ReactDOM.render(<Suspense fallback={<p>Loading...</p>}><App /></Suspense>, document.getElementById('root'));
6+
ReactDOM.render(<Suspense fallback={<Loader />}><App /></Suspense>, document.getElementById('root'));
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
import './loader.scss';
3+
4+
export default function Loader() {
5+
return (
6+
<div className="Loader--Container">
7+
<div className="Loader--Element"></div>
8+
</div>
9+
10+
);
11+
}

src/components/loader/loader.scss

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.Loader--Container {
2+
display: flex;
3+
justify-content: center;
4+
align-items: center;
5+
height: 100vh;
6+
7+
.Loader--Element {
8+
border: 16px solid #f3f3f3; /* Light grey */
9+
border-top: 16px solid #3498db; /* Blue */
10+
border-radius: 50%;
11+
width: 30px;
12+
height: 30px;
13+
animation: spin 2s linear infinite;
14+
}
15+
}
16+
17+
@keyframes spin {
18+
0% { transform: rotate(0deg); }
19+
100% { transform: rotate(360deg); }
20+
}

0 commit comments

Comments
 (0)