feat: add loading states
This commit is contained in:
+10
-5
@@ -4,6 +4,7 @@ import { fetchData } from '../utils/api';
|
|||||||
|
|
||||||
export default function Rates() {
|
export default function Rates() {
|
||||||
const [data, setData] = useState(null);
|
const [data, setData] = useState(null);
|
||||||
|
const [loading, setLoading] = useState(true);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchDataFromApi = async () => {
|
const fetchDataFromApi = async () => {
|
||||||
@@ -13,6 +14,8 @@ export default function Rates() {
|
|||||||
setData(apiData);
|
setData(apiData);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching data:', error);
|
console.error('Error fetching data:', error);
|
||||||
|
} finally {
|
||||||
|
setLoading(false); // Set loading to false regardless of success or error
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -43,15 +46,17 @@ export default function Rates() {
|
|||||||
<main>
|
<main>
|
||||||
<h2>For €1 you'll get the following rates</h2>
|
<h2>For €1 you'll get the following rates</h2>
|
||||||
<section className="hero">
|
<section className="hero">
|
||||||
{data && (
|
{loading ? (
|
||||||
|
<div><p> Loading...</p></div>
|
||||||
|
) : data && (
|
||||||
<div>
|
<div>
|
||||||
<p>Send: {formatCurrency(data.send)}</p>
|
<p><a href='https://send.flutterwave.com/'>Send: </a>{formatCurrency(data.send)}</p>
|
||||||
<p>TapTap: {formatCurrency(data.tap)}</p>
|
<p><a href='https://www.taptapsend.com/'>TapTap: </a>{formatCurrency(data.tap)}</p>
|
||||||
<p>AceTransfer: {formatCurrency(data.ace)}</p>
|
<p><a href='https://acemoneytransfer.com/referral-link/3056004'>AceTransfer: </a>{formatCurrency(data.ace)}</p>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div >
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user