feat: add loading states

This commit is contained in:
Jesse Egbosionu
2024-01-14 16:53:56 +01:00
parent fe2990f367
commit 9c826334ed
+10 -5
View File
@@ -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 >
); );
} }