mirror of
https://github.com/FranP-code/Crypto-Prices.git
synced 2025-10-12 23:53:06 +00:00
Loading added
This commit is contained in:
17
src/App.jsx
17
src/App.jsx
@@ -5,6 +5,7 @@ import Header from "./components/Header/Header";
|
|||||||
import styled from 'styled-components'
|
import styled from 'styled-components'
|
||||||
import Cryptos from "./components/Cryptos/Cryptos";
|
import Cryptos from "./components/Cryptos/Cryptos";
|
||||||
import Background from './components/Background/Background';
|
import Background from './components/Background/Background';
|
||||||
|
import Loading from './components/Loading/Loading';
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
|
|
||||||
@@ -12,8 +13,7 @@ function App() {
|
|||||||
|
|
||||||
/* height: 100%; */
|
/* height: 100%; */
|
||||||
|
|
||||||
background: rgb(46,66,105);
|
background-image: radial-gradient( circle farthest-corner at 12.3% 19.3%, rgba(85,88,218,1) 0%, rgba(95,209,249,1) 100.2% );
|
||||||
background: linear-gradient(180deg, #557ac5 0%, #004a86 100%);
|
|
||||||
|
|
||||||
.paths {
|
.paths {
|
||||||
|
|
||||||
@@ -42,21 +42,10 @@ function App() {
|
|||||||
}
|
}
|
||||||
}`
|
}`
|
||||||
|
|
||||||
const [loading, setLoading] = useState(true)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Div>
|
<Div>
|
||||||
<Header />
|
<Loading />
|
||||||
{
|
|
||||||
!loading ?
|
|
||||||
|
|
||||||
<Background loading={loading}/>
|
|
||||||
: null
|
|
||||||
}
|
|
||||||
|
|
||||||
<Cryptos
|
|
||||||
setLoading={setLoading}
|
|
||||||
/>
|
|
||||||
</Div>
|
</Div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,11 +126,12 @@ const Background = ({loading}) => {
|
|||||||
|
|
||||||
return <>
|
return <>
|
||||||
{
|
{
|
||||||
|
loading ? null :
|
||||||
seriesOfPaths.map(serie => (
|
seriesOfPaths.map(serie => (
|
||||||
<div className="paths" style={{top: serie * 520 + "px"}}>
|
<div className="paths" style={{top: serie * 520 + "px"}}>
|
||||||
{
|
{
|
||||||
|
|
||||||
pathsData.map(object => (
|
pathsData.map((object, index) => (
|
||||||
|
|
||||||
<CustomPath
|
<CustomPath
|
||||||
className="path"
|
className="path"
|
||||||
@@ -146,6 +147,8 @@ const Background = ({loading}) => {
|
|||||||
transform={object.transform}
|
transform={object.transform}
|
||||||
|
|
||||||
serieNumber={serie}
|
serieNumber={serie}
|
||||||
|
|
||||||
|
key={index}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,13 @@ import Crypto from './Crypto';
|
|||||||
|
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
const Cryptos = ({setLoading}) => {
|
const Cryptos = ({setLoading, setLoadingURL, loading}) => {
|
||||||
|
|
||||||
const CryptosStyles = styled.div`
|
const CryptosStyles = styled.div`
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
height: ${props => props.loading ? '1px' : 'auto'};
|
||||||
|
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
|
||||||
@@ -51,7 +53,7 @@ const Cryptos = ({setLoading}) => {
|
|||||||
transition: 0.25s ease-in-out;
|
transition: 0.25s ease-in-out;
|
||||||
|
|
||||||
:hover {
|
:hover {
|
||||||
background: #00f7ff5e;
|
background: #1900ff61;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line {
|
.line {
|
||||||
@@ -155,6 +157,8 @@ const Cryptos = ({setLoading}) => {
|
|||||||
|
|
||||||
await asyncForEach(data, async (object) => {
|
await asyncForEach(data, async (object) => {
|
||||||
|
|
||||||
|
setLoadingURL(object.image)
|
||||||
|
|
||||||
let requestData = await getCryptoPrices(object)
|
let requestData = await getCryptoPrices(object)
|
||||||
console.log(requestData)
|
console.log(requestData)
|
||||||
|
|
||||||
|
|||||||
92
src/components/Loading/Loading.jsx
Normal file
92
src/components/Loading/Loading.jsx
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
import {React, useState} from 'react';
|
||||||
|
import styled from 'styled-components';
|
||||||
|
import Background from '../Background/Background';
|
||||||
|
import Cryptos from '../Cryptos/Cryptos';
|
||||||
|
import Header from '../Header/Header';
|
||||||
|
|
||||||
|
const Loading = () => {
|
||||||
|
|
||||||
|
const [loading, setLoading] = useState(true)
|
||||||
|
const [loadingURL, setLoadingURL] = useState('https://i.ibb.co/Dwygw0t/Logo-reduced.png')
|
||||||
|
const [loadingCryptoName, setLoadingCryptoName] = useState('')
|
||||||
|
|
||||||
|
const LoadingStyles = styled.div`
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
z-index: 10000;
|
||||||
|
|
||||||
|
background-image: radial-gradient( circle farthest-corner at 10% 20%, rgba(90,92,106,1) 0%, rgba(32,45,58,1) 81.3% );
|
||||||
|
|
||||||
|
img {
|
||||||
|
|
||||||
|
width: 108px;
|
||||||
|
|
||||||
|
margin-bottom: 3vh;
|
||||||
|
|
||||||
|
animation: imgRotate 2s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
|
||||||
|
color: #fff;
|
||||||
|
font-family: "Raleway"
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes imgRotate{
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg)
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.hidden {
|
||||||
|
|
||||||
|
animation: hiddeLoading 1.5s ease-in-out forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes hiddeLoading {
|
||||||
|
0%, 50% {
|
||||||
|
transform: translate(0, 0%)
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: translate(0, -100%)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
|
||||||
|
<LoadingStyles className={loading ? null : 'hidden'}>
|
||||||
|
<img src={loadingURL} alt="loading" />
|
||||||
|
<h2>Loading</h2>
|
||||||
|
</LoadingStyles>
|
||||||
|
<Header />
|
||||||
|
<Background
|
||||||
|
loading={loading}
|
||||||
|
/>
|
||||||
|
<Cryptos
|
||||||
|
loading={loading}
|
||||||
|
setLoading={setLoading}
|
||||||
|
setLoadingURL={setLoadingURL}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Loading;
|
||||||
Reference in New Issue
Block a user