aiwebfinances
Version:
Display pricing that covers country inflation
51 lines (42 loc) • 1.4 kB
text/typescript
import React, { useEffect, useState } from "react";
import { fetchInflationData } from "./InflationFetcher";
type InflationCalculatorProps = {
value: number;
countryCode: string;
};
const Aiwebfinance: React.FC<InflationCalculatorProps> = ({
value,
countryCode,
}) => {
const [inflationRate, setInflationRate] = useState<number>(0);
const [loading, setLoading] = useState<boolean>(true);
const [error, setError] = useState<string | null>(null);
const [returnedValue, setReturnedValue] = useState<number>(value);
useEffect(() => {
const getInflation = async () => {
try {
const rate = await fetchInflationData(countryCode);
setInflationRate(rate);
} catch (err) {
setError("Unable to fetch inflation data.");
} finally {
setLoading(false);
}
};
getInflation();
}, [countryCode]);
useEffect(() => {
if (inflationRate !== null) {
const inflationValue = (value / 100) * inflationRate;
const finalValue = value + inflationValue;
const parsedValue = parseFloat(finalValue.toFixed(2));
setReturnedValue(parsedValue);
}
}, [inflationRate, value]); // Recalculate when inflationRate or value changes
if (loading) return null;
if (error) {
console.log(error);
}
return returnedValue;
};
export default Aiwebfinance;