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;
