import { useDispatch, useSelector } from "react-redux";
import { submitProperty } from "../redux/features/propertySlice";
import { useState, useEffect } from "react";
import Navbar from "./Navbar";
import { toast } from "react-toastify";
import "react-toastify/dist/ReactToastify.css";
import FileBase64 from "react-file-base64";
import "../addproperty.css";

const Addproperty = () => {
  const [activeTab, setActiveTab] = useState("propertydetails");
  const handleContinue = () => {
    if (activeTab === "propertydetails") setActiveTab("Images");
    if (activeTab === "Images") setActiveTab("Accounting");
  };

  const handleBack = () => {
    if (activeTab === "Images") setActiveTab("propertydetails");
    if (activeTab === "Accounting") setActiveTab("Images");
  };

  const dispatch = useDispatch();
  const { status, error } = useSelector((state) => state.property);
  const { user } = useSelector((state) => ({ ...state.auth }));
  const renovationRiskOptions = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Array of options

  const [formData, setFormData] = useState({
    propertyTaxInfo: [
      { propertytaxowned: "0", ownedyear: "0", taxassessed: "0", taxyear: "0" },
    ],
    images: [{ title: "", file: "" }], // Array to hold image objects
    googleMapLink: "", // Field for Google Maps link
    renovationRisk: null,
    purchaseCost: "0",
    costPaidAtoB: [
      { title: "Closing Fees - Settlement Fee", price: "0" },
      { title: "Closing Fees - Owner's Title Insurance", price: "0" },
      { title: "Courier Fees", price: "0" },
      { title: "Wire Fee", price: "0" },
      { title: "E recording Fee", price: "0" },
      { title: "Recording Fee", price: "0" },
      { title: "Property Tax", price: "0" },
    ],
    credits: [{ title: "Credits", price: "0" }],
    cashAdjustments: [{ title: "Cash Adjustments", price: "0" }],
    incidentalCost: [
      { title: "Accounting Fees", price: "0" },
      { title: "Bank Charges", price: "0" },
      { title: "Legal Fees", price: "0" },
      { title: "Property Taxes", price: "0" },
      { title: "Travel Expenses", price: "0" },
    ],
    carryCosts: [
      { title: "Electricity", price: "0" },
      { title: "Water and Sewer", price: "0" },
      { title: "Natural Gas", price: "0" },
      { title: "Trash and Recycling", price: "0" },
      { title: "Internet and Cable", price: "0" },
      { title: "Heating Oil/Propane", price: "0" },
      { title: "HOA fees", price: "0" },
      { title: "Dump fees", price: "0" },
      { title: "Insurance", price: "0" },
      { title: "Interest on Loans", price: "0" },
      { title: "Loan Payment", price: "0" },
      { title: "Property Taxes", price: "0" },
      { title: "Security", price: "0" },
      { title: "Real Estates fees", price: "0" },
    ],
    renovationCost: [
      {
        title: "Demolition: Removing existing structures or finishes",
        price: "0",
      },
      { title: "Framing: Making structural changes or additions", price: "0" },
      {
        title: "Plumbing: Installing or modifying plumbing systems",
        price: "0",
      },
      { title: "Electrical: Updating wiring and fixtures", price: "0" },
      {
        title: "HVAC: Installing or upgrading heating and cooling systems",
        price: "0",
      },
      { title: "Insulation: Adding or replacing insulation", price: "0" },
      { title: "Drywall: Hanging and finishing drywall", price: "0" },
      {
        title: "Interior Finishes: Painting, flooring, cabinetry, and fixtures",
        price: "0",
      },
      {
        title:
          "Exterior Work: Addressing siding, roofing, or landscaping, if applicable",
        price: "0",
      },
      {
        title: "Final Inspections: Ensuring everything meets codes",
        price: "0",
      },
      { title: "Punch List: Completing any remaining task", price: "0" },
    ],
    sellingPriceBtoC: "0",
    costPaidOutofClosing: [
      { title: "Buyers Agent Commission", price: "0" },
      { title: "Sellers Agent Commission", price: "0" },
      { title: "Home Warranty", price: "0" },
      { title: "Document Preparation", price: "0" },
      { title: "Excise Tax", price: "0" },
      { title: "Legal Fees", price: "0" },
      { title: "Wire Fees/courier Fees", price: "0" },
      { title: "County Taxes", price: "0" },
      { title: "HOA Fee", price: "0" },
      { title: "Payoff of 1st Mortgage", price: "0" },
      { title: "Payoff of 2nd Mortgage", price: "0" },
      { title: "Payoff 3rd Mortgage", price: "0" },
    ],
    adjustments: [{ title: "adjustments", price: "0" }],
    incomestatement: [
      { title: "income statement", price: "0" },
      { title: "income statement", price: "0" },
    ],
    fundspriortoclosing: "0",
    shorttermrental: "0",
    OtherIncome: "0",
    InsuranceClaim: "0",
    LongTermRental: "0",
    FinancingCostClosingCost: "0",
  });

  const [submitted, setSubmitted] = useState(false);

  const handleImageChange = (file, index) => {
    const updatedImages = [...formData.images];
    updatedImages[index].file = file.base64; // store base64 format of image
    setFormData({ ...formData, images: updatedImages });
  };

  const handleAddImage = () => {
    setFormData({
      ...formData,
      images: [...formData.images, { title: "", file: "" }],
    });
  };

  const handleDeleteImage = (index) => {
    const updatedImages = formData.images.filter((_, i) => i !== index);
    setFormData({ ...formData, images: updatedImages });
  };

  const handleImageTitleChange = (index, e) => {
    const updatedImages = [...formData.images];
    updatedImages[index].title = e.target.value;
    setFormData({ ...formData, images: updatedImages });
  };

  const handleInputChange = (e, index, fieldName) => {
    const { name, value } = e.target;
    if (fieldName === "propertyTaxInfo") {
      const updatedPropertyTaxInfo = [...formData.propertyTaxInfo];
      updatedPropertyTaxInfo[index][name] = value;
      setFormData({ ...formData, propertyTaxInfo: updatedPropertyTaxInfo });
    } else {
      setFormData({ ...formData, [name]: value });
    }
  };

  const addPropertyTaxField = () => {
    setFormData({
      ...formData,
      propertyTaxInfo: [
        ...formData.propertyTaxInfo,
        { propertytaxowned: "", ownedyear: "", taxassessed: "", taxyear: "" },
      ],
    });
  };

  const deletePropertyTaxField = (index) => {
    const updatedPropertyTaxInfo = formData.propertyTaxInfo.filter(
      (_, i) => i !== index
    );
    setFormData({ ...formData, propertyTaxInfo: updatedPropertyTaxInfo });
  };

  const addCost = () => {
    setFormData((prevData) => ({
      ...prevData,
      costPaidAtoB: [...prevData.costPaidAtoB, { title: "", price: "" }],
    }));
  };

  const deleteCost = (index) => {
    const updatedCosts = formData.costPaidAtoB.filter((_, i) => i !== index);
    setFormData((prevData) => ({
      ...prevData,
      costPaidAtoB: updatedCosts,
    }));
  };

  // Function to handle changes to title and price
  const handleCostChange = (index, field, value) => {
    const updatedCosts = [...formData.costPaidAtoB];
    updatedCosts[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      costPaidAtoB: updatedCosts,
    }));
  };

  const handlePriceChange = (e, index) => {
    let value = e.target.value;

    // Remove the dollar sign before validating
    value = value.replace(/^\$/, "").trim(); // Remove '$' if it exists

    // Use a regular expression to allow only numbers and decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedCosts = formData.costPaidAtoB.map((cost, i) =>
        i === index
          ? { ...cost, price: value, isInvalid: false } // Reset isInvalid if valid number
          : cost
      );
      setFormData({ ...formData, costPaidAtoB: updatedCosts });
    } else {
      const updatedCosts = formData.costPaidAtoB.map((cost, i) =>
        i === index
          ? { ...cost, isInvalid: true } // Keep isInvalid true for invalid input
          : cost
      );
      setFormData({ ...formData, costPaidAtoB: updatedCosts });
    }
  };

  const calculateTotalPurchaseCosts = () => {
    const totalCostsFromArray = formData.costPaidAtoB.reduce((total, cost) => {
      const price = parseFloat(cost.price) || 0; // Convert price to number
      return total + price;
    }, 0);

    const purchaseCost = parseFloat(formData.purchaseCost) || 0; // Convert purchase cost to number

    return totalCostsFromArray + purchaseCost; // Return the total
  };

  const addCredits = () => {
    setFormData((prevData) => ({
      ...prevData,
      credits: [...prevData.credits, { title: "", price: "" }],
    }));
  };

  const deleteCredits = (index) => {
    const updatedCredits = formData.credits.filter((_, i) => i !== index);
    setFormData((prevData) => ({
      ...prevData,
      credits: updatedCredits,
    }));
  };

  // Function to handle changes to credits title and price
  const handleCreditChange = (index, field, value) => {
    const updatedCredits = [...formData.credits];
    updatedCredits[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      credits: updatedCredits,
    }));
  };

  const handleCreditPriceChange = (e, index) => {
    const value = e.target.value;

    // Regular expression to allow only numbers and optional decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedCredits = formData.credits.map((credit, i) =>
        i === index
          ? { ...credit, price: value, isInvalid: false } // Reset isInvalid if valid number
          : credit
      );
      setFormData({ ...formData, credits: updatedCredits });
    } else {
      const updatedCredits = formData.credits.map((credit, i) =>
        i === index
          ? { ...credit, isInvalid: true } // Set isInvalid true for invalid input
          : credit
      );
      setFormData({ ...formData, credits: updatedCredits });
    }
  };

  const calculateTotalCredits = () => {
    return formData.credits.reduce((total, credits) => {
      const price = parseFloat(credits.price);
      return total + (isNaN(price) ? 0 : price); // Ensure only valid numbers are added
    }, 0);
  };

  const calculateTotalPurchaseCostsWithCredits = () => {
    // Calculate total from costPaidAtoB array
    const totalCostsFromArray = formData.costPaidAtoB.reduce((total, cost) => {
      const price = parseFloat(cost.price) || 0; // Convert price to number
      return total + price;
    }, 0);

    // Calculate total from credits array
    const totalCreditsFromArray = formData.credits.reduce((total, credit) => {
      const price = parseFloat(credit.price) || 0; // Convert price to number
      return total + price;
    }, 0);

    // Convert purchase cost to number
    const purchaseCost = parseFloat(formData.purchaseCost) || 0;
    return totalCostsFromArray + totalCreditsFromArray + purchaseCost;
  };

  const addcashAdjustments = () => {
    setFormData((prevData) => ({
      ...prevData,
      cashAdjustments: [...prevData.cashAdjustments, { title: "", price: "" }],
    }));
  };

  const deletecashAdjustments = (index) => {
    const updatedcashAdjustments = formData.cashAdjustments.filter(
      (_, i) => i !== index
    );
    setFormData((prevData) => ({
      ...prevData,
      cashAdjustments: updatedcashAdjustments,
    }));
  };

  // Function to handle changes to cashAdjustments title and price
  const handlecashAdjustmentsTitle = (index, field, value) => {
    const updatedcashAdjustments = [...formData.cashAdjustments];
    updatedcashAdjustments[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      cashAdjustments: updatedcashAdjustments,
    }));
  };

  const handlecashAdjustmentsCostChange = (e, index) => {
    const value = e.target.value;

    // Regular expression to allow only numbers and optional decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedcashAdjustments = formData.cashAdjustments.map(
        (cashAdjustments, i) =>
          i === index
            ? { ...cashAdjustments, price: value, isInvalid: false } // Reset isInvalid if valid number
            : cashAdjustments
      );
      setFormData({ ...formData, cashAdjustments: updatedcashAdjustments });
    } else {
      const updatedcashAdjustments = formData.cashAdjustments.map(
        (cashAdjustments, i) =>
          i === index
            ? { ...cashAdjustments, isInvalid: true } // Set isInvalid true for invalid input
            : cashAdjustments
      );
      setFormData({ ...formData, cashAdjustments: updatedcashAdjustments });
    }
  };

  // Calculate total from cash Adjustments array
  const calculatecashAdjustments = () => {
    return formData.cashAdjustments.reduce((total, cashAdjustments) => {
      const price = parseFloat(cashAdjustments.price);
      return total + (isNaN(price) ? 0 : price); // Ensure only valid numbers are added
    }, 0);
  };

  const calculateTotalCashRequiredonSettlement = () => {
    const totalcashAdjustments = calculatecashAdjustments();
    const totalcredits = calculateTotalCredits();
    const totalPurchaseCosts = calculateTotalPurchaseCosts();

    // Sum up all the values from the three functions
    return totalcashAdjustments + totalcredits + totalPurchaseCosts;
  };

  const addincidentalCost = () => {
    setFormData((prevData) => ({
      ...prevData,
      incidentalCost: [...prevData.incidentalCost, { title: "", price: "" }],
    }));
  };

  const deleteincidentalCost = (index) => {
    const updatedincidentalCost = formData.incidentalCost.filter(
      (_, i) => i !== index
    );
    setFormData((prevData) => ({
      ...prevData,
      incidentalCost: updatedincidentalCost,
    }));
  };

  // Function to handle changes to incidentalCost title and price
  const handleincidentalCostTitle = (index, field, value) => {
    const updatedincidentalCost = [...formData.incidentalCost];
    updatedincidentalCost[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      incidentalCost: updatedincidentalCost,
    }));
  };

  const handleincidentalCostChange = (e, index) => {
    const value = e.target.value;

    // Regular expression to allow only numbers and optional decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedincidentalCost = formData.incidentalCost.map(
        (incidentalCost, i) =>
          i === index
            ? { ...incidentalCost, price: value, isInvalid: false } // Reset isInvalid if valid number
            : incidentalCost
      );
      setFormData({ ...formData, incidentalCost: updatedincidentalCost });
    } else {
      const updatedincidentalCost = formData.incidentalCost.map(
        (incidentalCost, i) =>
          i === index
            ? { ...incidentalCost, isInvalid: true } // Set isInvalid true for invalid input
            : incidentalCost
      );
      setFormData({ ...formData, incidentalCost: updatedincidentalCost });
    }
  };

  // Calculate total from incidentalCost array
  const calculateTotalincidentalCost = () => {
    return formData.incidentalCost.reduce((total, incidentalCost) => {
      const price = parseFloat(incidentalCost.price);
      return total + (isNaN(price) ? 0 : price); // Ensure only valid numbers are added
    }, 0);
  };

  const addcarryCosts = () => {
    setFormData((prevData) => ({
      ...prevData,
      carryCosts: [...prevData.carryCosts, { title: "", price: "" }],
    }));
  };

  const deletecarryCosts = (index) => {
    const updatedcarryCosts = formData.carryCosts.filter((_, i) => i !== index);
    setFormData((prevData) => ({
      ...prevData,
      carryCosts: updatedcarryCosts,
    }));
  };

  // Function to handle changes to incidentalCost title and price
  const handlecarryCostsTitle = (index, field, value) => {
    const updatedcarryCosts = [...formData.carryCosts];
    updatedcarryCosts[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      carryCosts: updatedcarryCosts,
    }));
  };

  const handlecarryCostsChange = (e, index) => {
    const value = e.target.value;

    // Regular expression to allow only numbers and optional decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedcarryCosts = formData.carryCosts.map((carryCosts, i) =>
        i === index
          ? { ...carryCosts, price: value, isInvalid: false } // Reset isInvalid if valid number
          : carryCosts
      );
      setFormData({ ...formData, carryCosts: updatedcarryCosts });
    } else {
      const updatedcarryCosts = formData.carryCosts.map((carryCosts, i) =>
        i === index
          ? { ...carryCosts, isInvalid: true } // Set isInvalid true for invalid input
          : carryCosts
      );
      setFormData({ ...formData, carryCosts: updatedcarryCosts });
    }
  };

  // Calculate total from incidentalCost array
  const calculatetotalcarryCosts = () => {
    return formData.carryCosts.reduce((total, carryCosts) => {
      const price = parseFloat(carryCosts.price);
      return total + (isNaN(price) ? 0 : price); // Ensure only valid numbers are added
    }, 0);
  };

  const addrenovationCost = () => {
    setFormData((prevData) => ({
      ...prevData,
      renovationCost: [...prevData.renovationCost, { title: "", price: "" }],
    }));
  };

  const deleterenovationCost = (index) => {
    const updatedrenovationCost = formData.renovationCost.filter(
      (_, i) => i !== index
    );
    setFormData((prevData) => ({
      ...prevData,
      renovationCost: updatedrenovationCost,
    }));
  };

  // Function to handle changes to renovation Cost title and price
  const handlerenovationCostTitle = (index, field, value) => {
    const updatedrenovationCost = [...formData.renovationCost];
    updatedrenovationCost[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      renovationCost: updatedrenovationCost,
    }));
  };

  const handlerenovationCostChange = (e, index) => {
    const value = e.target.value;

    // Regular expression to allow only numbers and optional decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedrenovationCost = formData.renovationCost.map(
        (renovationCost, i) =>
          i === index
            ? { ...renovationCost, price: value, isInvalid: false } // Reset isInvalid if valid number
            : renovationCost
      );
      setFormData({ ...formData, renovationCost: updatedrenovationCost });
    } else {
      const updatedrenovationCost = formData.renovationCost.map(
        (renovationCost, i) =>
          i === index
            ? { ...renovationCost, isInvalid: true } // Set isInvalid true for invalid input
            : renovationCost
      );
      setFormData({ ...formData, renovationCost: updatedrenovationCost });
    }
  };

  // Calculate total from incidentalCost array
  const calculaterenovationCost = () => {
    return formData.renovationCost.reduce((total, renovationCost) => {
      const price = parseFloat(renovationCost.price);
      return total + (isNaN(price) ? 0 : price); // Ensure only valid numbers are added
    }, 0);
  };

  const calculatetotalRenovationsandHoldingCost = () => {
    const totalIncidentalCost = calculateTotalincidentalCost();
    const totalcarryCosts = calculatetotalcarryCosts();
    const totalRenovationCost = calculaterenovationCost();

    // Sum up all the values from the three functions
    return totalIncidentalCost + totalcarryCosts + totalRenovationCost;
  };

  const calculatetotalCoststoBuyAtoB = () => {
    const totalRenovationsandHoldingCost =
      calculatetotalRenovationsandHoldingCost();
    const totalCashRequiredonSettlement =
      calculateTotalCashRequiredonSettlement();

    // Sum up all the values from the three functions
    return totalRenovationsandHoldingCost + totalCashRequiredonSettlement;
  };

  const addcostPaidOutofClosing = () => {
    setFormData((prevData) => ({
      ...prevData,
      costPaidOutofClosing: [
        ...prevData.costPaidOutofClosing,
        { title: "", price: "" },
      ],
    }));
  };

  const deletecostPaidOutofClosing = (index) => {
    const updatedcostPaidOutofClosing = formData.costPaidOutofClosing.filter(
      (_, i) => i !== index
    );
    setFormData((prevData) => ({
      ...prevData,
      costPaidOutofClosing: updatedcostPaidOutofClosing,
    }));
  };

  // Function to handle changes to incidentalCost title and price
  const handlecostPaidOutofClosingTitle = (index, field, value) => {
    const updatedcostPaidOutofClosing = [...formData.costPaidOutofClosing];
    updatedcostPaidOutofClosing[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      costPaidOutofClosing: updatedcostPaidOutofClosing,
    }));
  };

  const handlecostPaidOutofClosingChange = (e, index) => {
    const value = e.target.value;

    // Regular expression to allow only numbers and optional decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedcostPaidOutofClosing = formData.costPaidOutofClosing.map(
        (costPaidOutofClosing, i) =>
          i === index
            ? { ...costPaidOutofClosing, price: value, isInvalid: false } // Reset isInvalid if valid number
            : costPaidOutofClosing
      );
      setFormData({
        ...formData,
        costPaidOutofClosing: updatedcostPaidOutofClosing,
      });
    } else {
      const updatedcostPaidOutofClosing = formData.costPaidOutofClosing.map(
        (costPaidOutofClosing, i) =>
          i === index
            ? { ...costPaidOutofClosing, isInvalid: true } // Set isInvalid true for invalid input
            : costPaidOutofClosing
      );
      setFormData({
        ...formData,
        costPaidOutofClosing: updatedcostPaidOutofClosing,
      });
    }
  };

  // Calculate total from costPaidOutofClosing array
  const calculateTotalcostPaidOutofClosing = () => {
    return formData.costPaidOutofClosing.reduce(
      (total, costPaidOutofClosing) => {
        const price = parseFloat(costPaidOutofClosing.price);
        return total + (isNaN(price) ? 0 : price); // Ensure only valid numbers are added
      },
      0
    );
  };

  const calculateTotalCosttoSellBtoC = () => {
    const sekkingPriceBtoC = formData.sellingPriceBtoC;
    const costPaidOutofClosing = calculateTotalcostPaidOutofClosing();
    return sekkingPriceBtoC - costPaidOutofClosing;
  };

  const addadjustments = () => {
    setFormData((prevData) => ({
      ...prevData,
      adjustments: [...prevData.adjustments, { title: "", price: "" }],
    }));
  };

  const deleteadjustments = (index) => {
    const updatedadjustments = formData.adjustments.filter(
      (_, i) => i !== index
    );
    setFormData((prevData) => ({
      ...prevData,
      adjustments: updatedadjustments,
    }));
  };

  // Function to handle changes to incidentalCost title and price
  const handleadjustmentsTitle = (index, field, value) => {
    const updatedadjustments = [...formData.adjustments];
    updatedadjustments[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      adjustments: updatedadjustments,
    }));
  };

  const handleadjustmentsChange = (e, index) => {
    const value = e.target.value;

    // Regular expression to allow only numbers and optional decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedadjustments = formData.adjustments.map((adjustments, i) =>
        i === index
          ? { ...adjustments, price: value, isInvalid: false } // Reset isInvalid if valid number
          : adjustments
      );
      setFormData({ ...formData, adjustments: updatedadjustments });
    } else {
      const updatedadjustments = formData.adjustments.map((adjustments, i) =>
        i === index
          ? { ...adjustments, isInvalid: true } // Set isInvalid true for invalid input
          : adjustments
      );
      setFormData({ ...formData, adjustments: updatedadjustments });
    }
  };

  // Calculate total from incidentalCost array
  const calculateTotaladjustments = () => {
    return formData.adjustments.reduce((total, adjustments) => {
      const price = parseFloat(adjustments.price);
      return total + (isNaN(price) ? 0 : price); // Ensure only valid numbers are added
    }, 0);
  };

  const calculatefundsavailablefordistribution = () => {
    const sellingPriceBtoC = calculateTotalCosttoSellBtoC();
    const totaladjustments = calculateTotaladjustments();
    return sellingPriceBtoC + totaladjustments;
  };

  const addincomestatement = () => {
    setFormData((prevData) => ({
      ...prevData,
      incomestatement: [...prevData.incomestatement, { title: "", price: "" }],
    }));
  };

  const deleteincomestatement = (index) => {
    const updatedincomestatement = formData.incomestatement.filter(
      (_, i) => i !== index
    );
    setFormData((prevData) => ({
      ...prevData,
      incomestatement: updatedincomestatement,
    }));
  };

  // Function to handle changes to incidentalCost title and price
  const handleincomestatementTitle = (index, field, value) => {
    const updatedincomestatement = [...formData.incomestatement];
    updatedincomestatement[index][field] = value;
    setFormData((prevData) => ({
      ...prevData,
      incomestatement: updatedincomestatement,
    }));
  };

  const handleincomestatementChange = (e, index) => {
    const value = e.target.value;

    // Regular expression to allow only numbers and optional decimals
    const isNumber = /^\d*\.?\d*$/.test(value);

    // If valid number, update state, otherwise show the alert
    if (isNumber || value === "") {
      const updatedincomestatement = formData.incomestatement.map(
        (incomestatement, i) =>
          i === index
            ? { ...incomestatement, price: value, isInvalid: false } // Reset isInvalid if valid number
            : incomestatement
      );
      setFormData({ ...formData, incomestatement: updatedincomestatement });
    } else {
      const updatedincomestatement = formData.incomestatement.map(
        (incomestatement, i) =>
          i === index
            ? { ...incomestatement, isInvalid: true } // Set isInvalid true for invalid input
            : incomestatement
      );
      setFormData({ ...formData, incomestatement: updatedincomestatement });
    }
  };

  // Calculate total from incidentalCost array
  const calculateTotalincomestatement = () => {
    return formData.incomestatement.reduce((total, incomestatement) => {
      const price = parseFloat(incomestatement.price);
      return total + (isNaN(price) ? 0 : price); // Ensure only valid numbers are added
    }, 0);
  };

  const calculatenetBtoCsalevalue = () => {
    const totalincomestatement = calculateTotalincomestatement();
    const totalcosttosellbtoc = calculateTotalCosttoSellBtoC();
    return totalincomestatement + totalcosttosellbtoc;
  };

  const calculateNetProfitBeforeFinancingCosts = () => {
    // const netBtoCsalevalue = parseFloat(calculatenetBtoCsalevalue());
    // const shorttermrental = parseFloat(formData.shorttermrental);
    // const OtherIncome = parseFloat(formData.OtherIncome);
    // const InsuranceClaim = parseFloat(formData.InsuranceClaim);
    // const LongTermRental = parseFloat(formData.LongTermRental);
    // const totalCoststoBuyAtoB = parseFloat(calculatetotalCoststoBuyAtoB());
    const netBtoCsalevalue = isNaN(parseFloat(calculatenetBtoCsalevalue()))
      ? 0
      : parseFloat(calculatenetBtoCsalevalue());
    const shorttermrental = isNaN(parseFloat(formData.shorttermrental))
      ? 0
      : parseFloat(formData.shorttermrental);
    const OtherIncome = isNaN(parseFloat(formData.OtherIncome))
      ? 0
      : parseFloat(formData.OtherIncome);
    const InsuranceClaim = isNaN(parseFloat(formData.InsuranceClaim))
      ? 0
      : parseFloat(formData.InsuranceClaim);
    const LongTermRental = isNaN(parseFloat(formData.LongTermRental))
      ? 0
      : parseFloat(formData.LongTermRental);
    const totalCoststoBuyAtoB = isNaN(
      parseFloat(calculatetotalCoststoBuyAtoB())
    )
      ? 0
      : parseFloat(calculatetotalCoststoBuyAtoB());

    // Calculate the sum first, then subtract the total costs
    const totalIncome =
      netBtoCsalevalue +
      shorttermrental +
      OtherIncome +
      InsuranceClaim +
      LongTermRental;
    const netProfitBeforeFinancingCosts = totalIncome - totalCoststoBuyAtoB;
    return netProfitBeforeFinancingCosts;
  };

  const calculateNetProfit = () => {
    const NetProfitBeforeFinancingCosts =
      calculateNetProfitBeforeFinancingCosts();
    const FinancingCostClosingCost = formData.FinancingCostClosingCost;
    return NetProfitBeforeFinancingCosts - FinancingCostClosingCost;
  };

  const calculaterateofreturn = () => {
    const rateofreturn = calculateNetProfit();
    return rateofreturn;
  };

  const handleSubmit = () => {
    if (
      formData.address &&
      formData.city &&
      formData.state &&
      formData.county &&
      formData.zip &&
      formData.parcel &&
      formData.subdivision &&
      formData.legal &&
      formData.costpersqft &&
      formData.propertyType &&
      formData.lotacres &&
      formData.yearBuild &&
      formData.totallivingsqft &&
      formData.beds &&
      formData.baths &&
      formData.stories &&
      formData.garage &&
      formData.garagesqft &&
      formData.poolspa &&
      formData.fireplaces &&
      formData.ac &&
      formData.heating &&
      formData.buildingstyle &&
      formData.sitevacant &&
      formData.extwall &&
      formData.roofing &&
      formData.totalSqft &&
      formData.renovationRisk &&
      formData.closeDateAtoB &&
      formData.closeDateBtoC &&
      formData.purchaseCost &&
      formData.sellingPriceBtoC &&
      formData.fundspriortoclosing &&
      formData.shorttermrental &&
      formData.OtherIncome &&
      formData.InsuranceClaim &&
      formData.LongTermRental &&
      formData.FinancingCostClosingCost
    ) {
      const rateofreturn = calculaterateofreturn();
      const totalPurchaseCosts = calculateTotalPurchaseCosts();
      const totalPurchaseCostsaftercredits =
        calculateTotalPurchaseCostsWithCredits();
      const totalcashAdjustments = calculatecashAdjustments();
      const totalincidentalCost = calculateTotalincidentalCost();
      const totalcredits = calculateTotalCredits();
      const totalcashrequiredonsettlement =
        calculateTotalCashRequiredonSettlement();
      const totalcarryCosts = calculatetotalcarryCosts();
      const totalrenovationCost = calculaterenovationCost();
      const totalRenovationsandHoldingCost =
        calculatetotalRenovationsandHoldingCost();
      const totalCoststoBuyAtoB = calculatetotalCoststoBuyAtoB();
      const totalcostPaidOutofClosing = calculateTotalcostPaidOutofClosing();
      const totaladjustments = calculateTotaladjustments();
      const fundsavailablefordistribution =
        calculatefundsavailablefordistribution();
      const grossproceedsperHUD = calculateTotalCosttoSellBtoC();
      const totalCosttoSellBtoC = calculateTotalCosttoSellBtoC();
      const totalincomestatement = calculateTotalincomestatement();
      const netBtoCsalevalue = calculatenetBtoCsalevalue();
      const netprofitbeforefinancingcosts =
        calculateNetProfitBeforeFinancingCosts();
      const NetProfit = calculateNetProfit();

      // Add user info to formData, including the propertyTaxInfo array
      const formDataWithUserInfo = {
        ...formData,
        userfirstname: user?.result?.firstName,
        usermiddlename: user?.result?.middleName,
        userlastname: user?.result?.lastName,
        usertitle: user?.result?.title,
        useremail: user?.result?.email,
        userId: user?.result?.userId,
        totalPurchaseCosts: totalPurchaseCosts,
        totalcredits: totalcredits,
        totalPurchaseCostsaftercredits: totalPurchaseCostsaftercredits,
        totalcashAdjustments: totalcashAdjustments,
        totalcashrequiredonsettlement: totalcashrequiredonsettlement,
        totalincidentalCost: totalincidentalCost,
        totalcarryCosts: totalcarryCosts,
        totalrenovationCost: totalrenovationCost,
        totalRenovationsandHoldingCost: totalRenovationsandHoldingCost,
        totalCoststoBuyAtoB: totalCoststoBuyAtoB,
        totalcostPaidOutofClosing: totalcostPaidOutofClosing,
        totaladjustments: totaladjustments,
        fundsavailablefordistribution: fundsavailablefordistribution,
        grossproceedsperHUD: grossproceedsperHUD,
        totalCosttoSellBtoC: totalCosttoSellBtoC,
        totalincomestatement: totalincomestatement,
        netBtoCsalevalue: netBtoCsalevalue,
        netprofitbeforefinancingcosts: netprofitbeforefinancingcosts,
        NetProfit: NetProfit,
        rateofreturn: rateofreturn,
      };

      // Check if propertyTaxInfo is an array and has values
      if (
        Array.isArray(formData.propertyTaxInfo) &&
        formData.propertyTaxInfo.length > 0
      ) {
        formDataWithUserInfo.propertyTaxInfo = formData.propertyTaxInfo; // Include propertyTaxInfo
      } else {
        formDataWithUserInfo.propertyTaxInfo = []; // Ensure it's an empty array if not filled
      }

      // Dispatch the form data with user info
      dispatch(submitProperty(formDataWithUserInfo));
      setSubmitted(true);
    } else {
      toast.error("Please fill all fields before submitting", {
        position: "top-right",
        autoClose: 3000,
      });
    }
  };

  useEffect(() => {
    if (submitted) {
      if (status === "succeeded") {
        toast.success("Property submitted successfully!", {
          position: "top-right",
          autoClose: 3000,
        });
        setSubmitted(false);
      } else if (status === "failed") {
        toast.error(`Failed to submit: ${error}`, {
          position: "top-right",
          autoClose: 3000,
        });
        setSubmitted(false);
      }
    }
  }, [status, error, submitted]);

  const [turnTime, setTurnTime] = useState("0 days"); // Store the calculated turn time

  const calculateTurnTime = (closeDateAtoB, closeDateBtoC) => {
    if (closeDateAtoB && closeDateBtoC) {
      const dateA = new Date(closeDateAtoB);
      const dateB = new Date(closeDateBtoC);

      // Calculate difference in time
      const diffTime = Math.abs(dateB - dateA);

      // Calculate difference in days
      const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

      // Update state with the calculated turn time
      // setTurnTime(diffDays);
      setTurnTime(`${diffDays} days`);
    } else {
      setTurnTime("0 days"); // Reset if dates are not available
    }
  };

  return (
    <>
      <div className="container tabs-wrap">
        <Navbar />

        <ul className="nav nav-tabs" role="tablist">
          <li
            role="presentation"
            className={activeTab === "propertydetails" ? "active tab" : "tab"}
          >
            <a onClick={() => setActiveTab("propertydetails")} role="tab">
              Property Details
            </a>
          </li>
          <li
            role="presentation"
            className={activeTab === "Images" ? "active tab" : "tab"}
          >
            <a onClick={() => setActiveTab("Images")} role="tab">
              Images, Maps
            </a>
          </li>

          <li
            role="presentation"
            className={activeTab === "Accounting" ? "active tab" : "tab"}
          >
            <a onClick={() => setActiveTab("Accounting")} role="tab">
              Accounting
            </a>
          </li>
        </ul>

        <div className="tab-content">
          {activeTab === "propertydetails" && (
            <div role="tabpanel" className="card tab-pane active">
              <form>
                <h3
                  style={{
                    color: "#fda417",
                    border: "#fda417",
                    fontSize: "20px",
                    fontWeight: "normal",
                  }}
                >
                  Property Location
                </h3>
                <hr
                  style={{
                    borderColor: "#fda417", // Set the color of the line
                    borderWidth: "1px", // Optional: Adjust the thickness of the line
                    backgroundColor: "#fda417", // Optional: Apply color if using for background
                    height: "1px", // Optional: Set height to match the border width
                  }}
                />
                <div className="row gy-3">
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Property Address
                      <input
                        type="text"
                        className="form-control"
                        name="address"
                        value={formData.address}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      City
                      <input
                        type="text"
                        className="form-control"
                        name="city"
                        value={formData.city}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      State
                      <select
                        className="form-floating mb-3 form-control"
                        name="state"
                        value={formData.state}
                        onChange={handleInputChange}
                        required
                      >
                        <option value="">Please Select</option>
                        <option value="Alaska">Alaska</option>
                        <option value="Alabama">Alabama</option>
                        <option value="Arkansas">Arkansas</option>
                        <option value="Arizona">Arizona</option>
                        <option value="California">California</option>
                        <option value="Colorado">Colorado</option>
                        <option value="Connecticut">Connecticut</option>
                        <option value="District Of Columbia">
                          District Of Columbia
                        </option>
                        <option value="Delaware">Delaware</option>
                        <option value="Florida">Florida</option>
                        <option value="Georgia">Georgia</option>
                        <option value="Hawaii">Hawaii</option>
                        <option value="Iowa">Iowa</option>
                        <option value="Idaho">Idaho</option>
                        <option value="Illinois">Illinois</option>
                        <option value="Indiana">Indiana</option>
                        <option value="Kansas">Kansas</option>
                        <option value="Kentucky">Kentucky</option>
                        <option value="Louisiana">Louisiana</option>
                        <option value="Massachusetts">Massachusetts</option>
                        <option value="Maryland">Maryland</option>
                        <option value="Michigan">Michigan</option>
                        <option value="Minnesota">Minnesota</option>
                        <option value="Missouri">Missouri</option>
                        <option value="Mississippi">Mississippi</option>
                        <option value="Montana">Montana</option>
                        <option value="North Carolina">North Carolina</option>
                        <option value="North Dakota">North Dakota</option>
                        <option value="Nebraska">Nebraska</option>
                        <option value="New Hampshire">New Hampshire</option>
                        <option value="New Jersey">New Jersey</option>
                        <option value="New Mexico">New Mexico</option>
                        <option value="Nevada">Nevada</option>
                        <option value="New York">New York</option>
                        <option value="Ohio">Ohio</option>
                        <option value="Oklahoma">Oklahoma</option>
                        <option value="Oregon">Oregon</option>
                        <option value="Pennsylvania">Pennsylvania</option>
                        <option value="Rhode Island">Rhode Island</option>
                        <option value="South Carolina">South Carolina</option>
                        <option value="South Dakota">South Dakota</option>
                        <option value="Tennessee">Tennessee</option>
                        <option value="Texas">Texas</option>
                        <option value="Texas">Travis</option>
                        <option value="Utah">Utah</option>
                        <option value="Virginia">Virginia</option>
                        <option value="Vermont">Vermont</option>
                        <option value="Washington">Washington</option>
                        <option value="Wisconsin">Wisconsin</option>
                        <option value="West Virginia">West Virginia</option>
                        <option value="Wyoming">Wyoming</option>
                      </select>
                    </div>
                  </div>
                </div>

                <div className="row gy-3">
                  <div className="col-md-4">
                    County
                    <select
                      className="form-floating mb-3 form-control"
                      name="county"
                      value={formData.county}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="Abbeville">Abbeville</option>
                      <option value="Aiken">Aiken</option>
                      <option value="Allendale">Allendale</option>
                      <option value="Anderson">Anderson</option>
                      <option value="Bamberg">Bamberg</option>
                      <option value="Barnwell">Barnwell</option>
                      <option value="Beaufort">Beaufort</option>
                      <option value="Berkeley">Berkeley</option>
                      <option value="Calhoun">Calhoun</option>
                      <option value="Charleston">Charleston</option>
                      <option value="Cherokee">Cherokee</option>
                      <option value="Chester">Chester</option>
                      <option value="Chesterfield">Chesterfield</option>
                      <option value="Clarendon">Clarendon</option>
                      <option value="Colleton">Colleton</option>
                      <option value="Darlington">Darlington</option>
                      <option value="Dillon">Dillon</option>
                      <option value="Dorchester">Dorchester</option>
                      <option value="Edgefield">Edgefield</option>
                      <option value="Fairfield">Fairfield</option>
                      <option value="Florence">Florence</option>
                      <option value="Georgetown">Georgetown</option>
                      <option value="Greenville">Greenville</option>
                      <option value="Greenwood">Greenwood</option>
                      <option value="Hampton">Hampton</option>
                      <option value="Horry">Horry</option>
                      <option value="Jasper">Jasper</option>
                      <option value="Kershaw">Kershaw</option>
                      <option value="Lancaster">Lancaster</option>
                      <option value="Laurens">Laurens</option>
                      <option value="Lee">Lee</option>
                      <option value="Lexington">Lexington</option>
                      <option value="Marion">Marion</option>
                      <option value="Marlboro">Marlboro</option>
                      <option value="McCormick">McCormick</option>
                      <option value="Newberry">Newberry</option>
                      <option value="Oconee">Oconee</option>
                      <option value="Orangeburg">Orangeburg</option>
                      <option value="Pickens">Pickens</option>
                      <option value="Richland">Richland</option>
                      <option value="Saluda">Saluda</option>
                      <option value="Spartanburg">Spartanburg</option>
                      <option value="Sumter">Sumter</option>
                      <option value="Union">Union</option>
                      <option value="Williamsburg">Williamsburg</option>
                      <option value="York">York</option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Zip
                      <input
                        type="text"
                        className="form-control"
                        name="zip"
                        value={formData.zip}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Parcel
                      <input
                        type="text"
                        className="form-control"
                        name="parcel"
                        value={formData.parcel}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                </div>

                <div className="row gy-3">
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Sub division
                      <input
                        type="text"
                        className="form-control"
                        name="subdivision"
                        value={formData.subdivision}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Legal Description
                      <textarea
                        type="text"
                        className="form-control"
                        name="legal"
                        value={formData.legal}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>

                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Cost per SQFT
                      <input
                        type="text"
                        className="form-control"
                        name="costpersqft"
                        value={formData.costpersqft}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                </div>

                <div className="row gy-3">
                  <div className="col-md-4">
                    Property Type
                    <select
                      className="form-floating mb-3 form-control"
                      name="propertyType"
                      value={formData.propertyType}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="Residential">Residential</option>
                      <option value="Land">Land</option>
                      <option value="Commercial">Commercial</option>
                      <option value="Industrial">Industrial</option>
                      <option value="Water">Water</option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Lot Acres/Sqft
                      <input
                        type="text"
                        className="form-control"
                        name="lotacres"
                        value={formData.lotacres}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Year Build
                      <input
                        type="text"
                        className="form-control"
                        name="yearBuild"
                        value={formData.yearBuild}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                </div>

                <div className="row gy-3">
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Total Living SQFT
                      <input
                        type="text"
                        className="form-control"
                        name="totallivingsqft"
                        value={formData.totallivingsqft}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Beds
                      <input
                        type="text"
                        className="form-control"
                        name="beds"
                        value={formData.beds}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Baths
                      <input
                        type="text"
                        className="form-control"
                        name="baths"
                        value={formData.baths}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                </div>

                <div className="row gy-3">
                  <div className="col-md-4">
                    Stories
                    <select
                      className="form-floating mb-3 form-control"
                      name="stories"
                      value={formData.stories}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="0">0</option>
                      <option value="1">1</option>
                      <option value="2">2</option>
                      <option value="3">3</option>
                      <option value="4">4</option>
                      <option value="5">5</option>
                      <option value="6">6</option>
                      <option value="7">7</option>
                      <option value="8">8</option>
                      <option value="9">9</option>
                      <option value="10">10</option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    Garage
                    <select
                      className="form-floating mb-3 form-control"
                      name="garage"
                      value={formData.garage}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="0">0</option>
                      <option value="1">1</option>
                      <option value="2">2</option>
                      <option value="3">3</option>
                      <option value="4">4</option>
                      <option value="5">5</option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Garage SQFT
                      <input
                        type="text"
                        className="form-control"
                        name="garagesqft"
                        value={formData.garagesqft}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                </div>

                <div className="row gy-3">
                  <div className="col-md-4">
                    Pool/SPA
                    <select
                      className="form-floating mb-3 form-control"
                      name="poolspa"
                      value={formData.poolspa}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="N/A">N/A</option>
                      <option value="Yes- Pool Only">Yes- Pool Only</option>
                      <option value="Yes- SPA only">Yes- SPA only</option>
                      <option value="Yes - Both Pool and SPA">
                        Yes - Both Pool and SPA
                      </option>
                      <option value="4">None</option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    Fire places
                    <select
                      className="form-floating mb-3 form-control"
                      name="fireplaces"
                      value={formData.fireplaces}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="N/A">N/A</option>
                      <option value="yes">Yes</option>
                      <option value="no">No</option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    A/C
                    <select
                      className="form-floating mb-3 form-control"
                      name="ac"
                      value={formData.ac}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="N/A">N/A</option>
                      <option value="Central">Central</option>
                      <option value="Heat Pump">Heat Pump</option>
                      <option value="Warm Air">Warm Air</option>
                      <option value="Forced Air">Forced Air</option>
                      <option value="Gas">Gas</option>
                    </select>
                  </div>
                </div>

                <div className="row gy-3">
                  <div className="col-md-4">
                    Heating
                    <select
                      className="form-floating mb-3 form-control"
                      name="heating"
                      value={formData.heating}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="N/A">N/A</option>
                      <option value="Central">Central</option>
                      <option value="Heat Pump">Heat Pump</option>
                      <option value="Warm Air">Warm Air</option>
                      <option value="Forced Air">Forced Air</option>
                      <option value="Gas">Gas</option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    Building Style
                    <select
                      className="form-floating mb-3 form-control"
                      name="buildingstyle"
                      value={formData.buildingstyle}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="One Story">One Story</option>
                      <option value="Craftsman">Craftsman</option>
                      <option value="Log/Cabin">Log/Cabin</option>
                      <option value="Split-Level">Split-Level</option>
                      <option value="Split-Foyer">Split-Foyer</option>
                      <option value="Stick Built">Stick Built</option>
                      <option value="Single wide">Single wide</option>
                      <option value="Double wide">Double wide</option>
                      <option value="Duplex">Duplex</option>
                      <option value="Triplex">Triplex</option>
                      <option value="Quadruplex">Quadruplex</option>
                      <option value="Two Story">Two Story</option>
                      <option value="Victorian">Victorian</option>
                      <option value="Tudor">Tudor</option>
                      <option value="Modern">Modern</option>
                      <option value="Art Deco">Art Deco</option>
                      <option value="Bungalow">Bungalow</option>
                      <option value="Mansion">Mansion</option>
                      <option value="Farmhouse">Farmhouse</option>
                      <option value="Conventional">Conventional</option>
                      <option value="Ranch">Ranch</option>
                      <option value="Ranch with Basement">
                        Ranch with Basement
                      </option>
                      <option value="Cape Cod">Cape Cod</option>
                      <option value="Contemporary">Contemporary</option>
                      <option value="Colonial">Colonial</option>
                      <option value="Mediterranean">Mediterranean</option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    Site Vacant
                    <select
                      className="form-floating mb-3 form-control"
                      name="sitevacant"
                      value={formData.sitevacant}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please select</option>
                      <option value="Yes">Yes</option>
                      <option value="No">No</option>
                    </select>
                  </div>
                </div>

                <div className="row gy-3">
                  <div className="col-md-4">
                    Ext Wall
                    <select
                      className="form-floating mb-3 form-control"
                      name="extwall"
                      value={formData.extwall}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="N/A">N/A</option>
                      <option value="Brick">Brick</option>
                      <option value="Brick/Vinyl Siding">
                        Brick/Vinyl Siding
                      </option>
                      <option value="Wood/Vinyl Siding">
                        Wood/Vinyl Siding
                      </option>
                      <option value="Brick/Wood Siding">
                        Brick/Wood Siding
                      </option>
                      <option value="Stone">Stone</option>
                      <option value="Masonry">Masonry</option>
                      <option value="Metal">Metal</option>
                      <option value="Fiberboard">Fiberboard</option>
                      <option value="Asphalt Siding">Asphalt Siding</option>
                      <option value="Concrete Block">Concrete Block</option>
                      <option value="Gable">Gable</option>
                      <option value="Brick Veneer">Brick Veneer</option>
                      <option value="Frame">Frame</option>
                      <option value="Siding">Siding</option>
                      <option value="Cement/Wood Fiber Siding">
                        Cement/Wood Fiber Siding
                      </option>
                      <option value="Fiber/Cement Siding">
                        Fiber/Cement Siding
                      </option>
                      <option value="Wood Siding">Wood Siding</option>
                      <option value="Vinyl Siding">Vinyl Siding</option>
                      <option value="Aluminium Siding">Aluminium Siding</option>
                      <option value="Wood/Vinyl Siding">
                        Alum/Vinyl Siding
                      </option>
                    </select>
                  </div>
                  <div className="col-md-4">
                    Roofing
                    <select
                      className="form-floating mb-3 form-control"
                      name="roofing"
                      value={formData.roofing}
                      onChange={handleInputChange}
                      required
                    >
                      <option value="">Please Select</option>
                      <option value="N/A">N/A</option>
                      <option value="Asphalt Shingle">Asphalt Shingle</option>
                      <option value="Green Roofs">Green Roofs</option>
                      <option value="Built-up Roofing">Built-up Roofing</option>
                      <option value="Composition Shingle">
                        Composition Shingle
                      </option>
                      <option value="Composition Shingle Heavy">
                        Composition Shingle Heavy
                      </option>
                      <option value="Solar tiles">Solar tiles</option>
                      <option value="Metal">Metal</option>
                      <option value="Stone-coated steel">
                        Stone-coated steel
                      </option>
                      <option value="Slate">Slate</option>
                      <option value="Rubber Slate">Rubber Slate</option>
                      <option value="Clay and Concrete tiles">
                        Clay and Concrete tiles
                      </option>
                    </select>
                  </div>

                  <div className="col-md-4">
                    <div className="form-floating mb-3">
                      Total SQFT
                      <input
                        type="text"
                        className="form-control"
                        name="totalSqft"
                        value={formData.totalSqft}
                        onChange={handleInputChange}
                        required
                      />
                    </div>
                  </div>
                </div>

                <h3
                  style={{
                    color: "#fda417",
                    border: "#fda417",
                    fontSize: "20px",
                    fontWeight: "normal",
                  }}
                >
                  <br />
                  Property Tax Information
                </h3>
                <hr
                  style={{
                    borderColor: "#fda417", // Set the color of the line
                    borderWidth: "1px", // Optional: Adjust the thickness of the line
                    backgroundColor: "#fda417", // Optional: Apply color if using for background
                    height: "1px", // Optional: Set height to match the border width
                  }}
                />

                {formData.propertyTaxInfo.map((taxInfo, index) => (
                  <div className="row gy-4" key={index}>
                    <div className="col-md-3">
                      <div className="form-floating mb-3">
                        Property Tax Owned
                        <input
                          type="text"
                          className="form-control"
                          name="propertytaxowned"
                          value={taxInfo.propertytaxowned}
                          onChange={(e) =>
                            handleInputChange(e, index, "propertyTaxInfo")
                          }
                          required
                        />
                      </div>
                    </div>
                    <div className="col-md-2">
                      <div className="form-floating mb-2">
                        Owned Year
                        <input
                          type="text"
                          className="form-control"
                          name="ownedyear"
                          value={taxInfo.ownedyear}
                          onChange={(e) =>
                            handleInputChange(e, index, "propertyTaxInfo")
                          }
                          required
                        />
                      </div>
                    </div>
                    <div className="col-md-2">
                      <div className="form-floating mb-2">
                        Tax Assessed
                        <input
                          type="text"
                          className="form-control"
                          name="taxassessed"
                          value={taxInfo.taxassessed}
                          onChange={(e) =>
                            handleInputChange(e, index, "propertyTaxInfo")
                          }
                          required
                        />
                      </div>
                    </div>
                    <div className="col-md-2">
                      <div className="form-floating mb-2">
                        Tax Year
                        <input
                          type="text"
                          className="form-control"
                          name="taxyear"
                          value={taxInfo.taxyear}
                          onChange={(e) =>
                            handleInputChange(e, index, "propertyTaxInfo")
                          }
                          required
                        />
                      </div>
                    </div>

                    <div className="col-md-3">
                      <div className="form-floating mb-2">
                        <br />
                        <button
                          className="btn btn-danger"
                          onClick={() => deletePropertyTaxField(index)}
                          style={{ height: "25px", width: "35px" }}
                        >
                          X
                        </button>
                      </div>
                    </div>
                  </div>
                ))}

                <button
                  className="btn btn-secondary"
                  onClick={addPropertyTaxField}
                >
                  + Add Another Property Tax Info
                </button>
              </form>

              <button
                className="btn btn-primary continue"
                onClick={handleContinue}
                style={{ backgroundColor: "#fda417", border: "#fda417" }}
              >
                Continue
              </button>
            </div>
          )}

          {activeTab === "Images" && (
            <div role="tabpanel" className="card tab-pane active">
              <h3
                style={{
                  color: "#fda417",
                  border: "#fda417",
                  fontSize: "20px",
                  fontWeight: "normal",
                }}
              >
                Upload Images{" "}
              </h3>
              <form>
                {formData.images.map((image, index) => (
                  <div key={index} className="row gy-3 align-items-center">
                    <div className="col-md-4">
                      <input
                        type="text"
                        className="form-control"
                        value={image.title}
                        placeholder="Image Title"
                        onChange={(e) => handleImageTitleChange(index, e)}
                      />
                    </div>
                    <div className="col-md-4 d-flex align-items-center">
                      <FileBase64
                        multiple={false}
                        onDone={(file) => handleImageChange(file, index)}
                      />
                      <button
                        type="button"
                        className="btn btn-danger"
                        onClick={() => handleDeleteImage(index)}
                        style={{
                          marginLeft: "5px", // Adjust this to minimize space between the buttons
                        }}
                      >
                        Delete
                      </button>
                    </div>

                    {image.file && (
                      <div className="col-md-12">
                        <img
                          src={image.file}
                          alt="uploaded"
                          style={{ width: "150px", height: "150px" }}
                        />
                      </div>
                    )}
                  </div>
                ))}

                <button
                  type="button"
                  className="btn btn-primary"
                  onClick={handleAddImage}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  + Add Image
                </button>

                <hr
                  style={{
                    borderColor: "#fda417", // Set the color of the line
                    borderWidth: "1px", // Optional: Adjust the thickness of the line
                    backgroundColor: "#fda417", // Optional: Apply color if using for background
                    height: "1px", // Optional: Set height to match the border width
                  }}
                />
                <div className="mb-3">
                  <label htmlFor="googleMapLink" className="form-label">
                    <h3
                      style={{
                        color: "#fda417",
                        border: "#fda417",
                        fontSize: "20px",
                        fontWeight: "normal",
                      }}
                    >
                      Google Maps Link{" "}
                    </h3>
                  </label>
                  <input
                    type="text"
                    className="form-control"
                    name="googleMapLink"
                    value={formData.googleMapLink}
                    onChange={handleInputChange}
                    placeholder="Enter Google Maps link"
                  />
                </div>

                {formData.googleMapLink && (
                  <iframe
                    title="Google Map"
                    width="100%"
                    height="300"
                    src={`https://www.google.com/maps/embed/v1/view?key=YOUR_API_KEY&center=${formData.googleMapLink}&zoom=10`}
                    frameBorder="0"
                    allowFullScreen
                  ></iframe>
                )}
              </form>
              <button
                className="btn btn-primary back"
                onClick={handleBack}
                style={{ backgroundColor: "#fda417", border: "#fda417" }}
              >
                Go Back
              </button>{" "}
              <button
                className="btn btn-primary continue"
                onClick={handleContinue}
                style={{ backgroundColor: "#fda417", border: "#fda417" }}
              >
                Continue
              </button>
            </div>
          )}

          {activeTab === "Accounting" && (
            <div
              className="card"
              style={{
                color: "#fda417",
                border: "1px solid #fda417",
                padding: "10px",
                borderRadius: "8px",
              }}
            >
              <br />

              <div className="row gy-3">
                {/* Close Date A to B */}
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Close Date A to B"
                    required
                    disabled
                  />
                </div>
                <div className="col-md-4">
                  <input
                    type="date"
                    className="form-control"
                    name="closeDateAtoB"
                    value={formData.closeDateAtoB}
                    onChange={(e) => {
                      const value = e.target.value;
                      setFormData({
                        ...formData,
                        closeDateAtoB: value,
                      });
                      calculateTurnTime(value, formData.closeDateBtoC);
                    }}
                    placeholder="Close Date A to B"
                    style={{ textAlign: "right" }}
                    required
                  />
                </div>

                <div>
                  <p>
                    <span
                      style={{
                        color: "#fda417",
                        fontSize: "14px",
                        fontWeight: "bold",
                      }}
                    >
                      [M-D-Y]{" "}
                    </span>
                    :{" "}
                    <span
                      style={{
                        color: "#000000",
                        fontSize: "14px",
                        fontWeight: "normal",
                      }}
                    >
                      {new Date(formData.closeDateAtoB).toLocaleDateString(
                        "en-US",
                        {
                          month: "numeric",
                          day: "numeric",
                          year: "numeric",
                        }
                      )}
                    </span>
                  </p>
                </div>
              </div>

              <div className="row gy-3">
                {/* Close Date B to C */}
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Close Date B to C"
                    required
                    disabled
                  />
                </div>

                <div className="col-md-4">
                  <input
                    type="date"
                    className="form-control"
                    name="closeDateBtoC"
                    value={formData.closeDateBtoC}
                    onChange={(e) => {
                      const value = e.target.value;
                      setFormData({
                        ...formData,
                        closeDateBtoC: value,
                      });
                      calculateTurnTime(formData.closeDateAtoB, value);
                    }}
                    placeholder="Close Date B to C"
                    style={{ textAlign: "right" }}
                    required
                  />
                </div>

                <div>
                  <p>
                    <span
                      style={{
                        color: "#fda417",
                        fontSize: "14px",
                        fontWeight: "bold",
                      }}
                    >
                      [M-D-Y] :{" "}
                    </span>
                    <span
                      style={{
                        color: "#000000",
                        fontSize: "14px",
                        fontWeight: "normal",
                      }}
                    >
                      {new Date(formData.closeDateBtoC).toLocaleDateString(
                        "en-US",
                        {
                          month: "numeric",
                          day: "numeric",
                          year: "numeric",
                        }
                      )}
                    </span>
                  </p>
                </div>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Renovation Risk
                </span>

                <div className="col-md-7">
                  {renovationRiskOptions.map((option) => (
                    <div className="form-check form-check-inline" key={option}>
                      <input
                        className="form-check-input"
                        type="radio"
                        name="renovationRisk"
                        id={`renovationRisk${option}`}
                        value={option}
                        checked={formData.renovationRisk === option}
                        onChange={(e) => {
                          const value = parseInt(e.target.value, 10);
                          setFormData({
                            ...formData,
                            renovationRisk: value,
                          });
                        }}
                      />
                      <label
                        className="form-check-label"
                        htmlFor={`renovationRisk${option}`}
                      >
                        {option}
                      </label>
                    </div>
                  ))}
                </div>
              </div>
              <br />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Rate of Return
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="rateofreturn"
                    // value={calculaterateofreturn()}
                    value={`$ ${calculaterateofreturn().toFixed(2)}`}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    required
                  />
                </div>
              </div>

              <br />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Turn Time
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    value={turnTime}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    required
                  />
                </div>
              </div>
              <br />

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Purchase Price
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className={`form-control ${
                      formData.isPurchaseCostInvalid ? "is-invalid" : ""
                    }`}
                    value={`$ ${formData.purchaseCost}`} // Display the dollar sign in the input
                    name="purchaseCost"
                    onChange={(e) => {
                      let value = e.target.value.replace(/[^\d.]/g, ""); // Remove anything that’s not a digit or decimal point
                      const isValid = /^\d*\.?\d*$/.test(value); // Regex to allow only numbers and decimal points
                      setFormData({
                        ...formData,
                        purchaseCost: value,
                        isPurchaseCostInvalid: !isValid, // Set isPurchaseCostInvalid to true if the value is not a valid number
                      });
                    }}
                    onKeyPress={(e) => {
                      const charCode = e.charCode;
                      // Allow only numbers and decimal points
                      if ((charCode < 48 || charCode > 57) && charCode !== 46) {
                        e.preventDefault(); // Prevent non-numeric input
                        setFormData({
                          ...formData,
                          isPurchaseCostInvalid: true, // Set isPurchaseCostInvalid to true to show the alert
                        });
                      }
                    }}
                    placeholder="Enter Purchase Cost"
                    style={{ textAlign: "right" }}
                    required
                  />
                  {formData.isPurchaseCostInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Costs paid out of Closing Hud A to B:
              </span>

              {formData.costPaidAtoB.map((cost, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={cost.title}
                      onChange={(e) =>
                        handleCostChange(index, "title", e.target.value)
                      }
                      placeholder="Title"
                      required
                    />
                  </div>
                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        cost.isInvalid ? "is-invalid" : ""
                      }`}
                      value={`$ ${cost.price}`}
                      onChange={(e) => handlePriceChange(e, index)}
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {cost.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deleteCost(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  onClick={addCost}
                  className="btn btn-primary back"
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add Extra Cost
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Purchase Cost
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalPurchaseCosts"
                    value={`$ ${calculateTotalPurchaseCosts().toFixed(2)}`} // Add dollar sign before the calculated total and format it to 2 decimal places
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    required
                  />
                </div>
              </div>
              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Credits received on settlement:
              </span>

              {formData.credits.map((credits, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={credits.title}
                      onChange={(e) =>
                        handleCreditChange(index, "title", e.target.value)
                      }
                      placeholder="credits"
                      required
                    />
                  </div>
                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        credits.isInvalid ? "is-invalid" : ""
                      }`} // Apply 'is-invalid' class when invalid
                      value={credits.price}
                      onChange={(e) => handleCreditPriceChange(e, index)} // New handler for price validation
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {credits.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deleteCredits(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={addCredits}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add credits
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total credits received on settlement
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalcredits"
                    value={calculateTotalCredits()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Purchase Cost after Credits Received
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalPurchaseCostsaftercredits"
                    value={calculateTotalPurchaseCostsWithCredits()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    required
                  />
                </div>
              </div>
              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Cash Adjustments:
              </span>

              {formData.cashAdjustments.map((cost, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={cost.title}
                      onChange={(e) =>
                        handlecashAdjustmentsTitle(
                          index,
                          "title",
                          e.target.value
                        )
                      }
                      placeholder="Title"
                      required
                    />
                  </div>
                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        cost.isInvalid ? "is-invalid" : ""
                      }`} // Apply 'is-invalid' class when invalid
                      value={cost.price}
                      onChange={(e) =>
                        handlecashAdjustmentsCostChange(e, index)
                      } // Use a new handler for price validation
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {cost.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deletecashAdjustments(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={addcashAdjustments}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add Cash Adjustments
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Cash Adjustments on Settlement
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalcashAdjustments"
                    value={calculatecashAdjustments()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Cash Required on Settlement
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalcashrequiredonsettlement"
                    value={calculateTotalCashRequiredonSettlement()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Incidental Cost:
              </span>

              {formData.incidentalCost.map((cost, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={cost.title}
                      onChange={(e) =>
                        handleincidentalCostTitle(
                          index,
                          "title",
                          e.target.value
                        )
                      }
                      placeholder="Title"
                      required
                    />
                  </div>
                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        cost.isInvalid ? "is-invalid" : ""
                      }`} // Apply 'is-invalid' class when invalid
                      value={cost.price}
                      onChange={(e) => handleincidentalCostChange(e, index)} // Use a new handler for price validation
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {cost.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deleteincidentalCost(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={addincidentalCost}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add Incidental Cost
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Incidental Cost
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalincidentalCost"
                    value={calculateTotalincidentalCost()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Carry Costs:
              </span>

              {formData.carryCosts.map((cost, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={cost.title}
                      onChange={(e) =>
                        handlecarryCostsTitle(index, "title", e.target.value)
                      }
                      placeholder="Title"
                      required
                    />
                  </div>
                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        cost.isInvalid ? "is-invalid" : ""
                      }`} // Apply 'is-invalid' class when invalid
                      value={cost.price}
                      onChange={(e) => handlecarryCostsChange(e, index)} // Use a new handler for price validation
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {cost.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deletecarryCosts(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={addcarryCosts}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add Carry Cost
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Carry Cost
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalcarryCosts"
                    value={calculatetotalcarryCosts()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Reno/Construction
              </span>

              {formData.renovationCost.map((cost, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={cost.title}
                      onChange={(e) =>
                        handlerenovationCostTitle(
                          index,
                          "title",
                          e.target.value
                        )
                      }
                      placeholder="Title"
                      required
                      style={{
                        fontSize: "10px", // Set the desired font size
                      }}
                    />
                  </div>

                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        cost.isInvalid ? "is-invalid" : ""
                      }`} // Apply 'is-invalid' class when invalid
                      value={cost.price}
                      onChange={(e) => handlerenovationCostChange(e, index)} // Use a new handler for price validation
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {cost.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deleterenovationCost(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={addrenovationCost}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add Reno/Construction
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Renovation Cost
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalrenovationCost"
                    value={calculaterenovationCost()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Renovations & Holding Cost
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalRenovationsandHoldingCost"
                    value={calculatetotalRenovationsandHoldingCost()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Costs to Buy A to B
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalCoststoBuyAtoB"
                    value={calculatetotalCoststoBuyAtoB()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                  {formData.isInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Selling Price B to C
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className={`form-control ${
                      formData.isPurchaseCostInvalid ? "is-invalid" : ""
                    }`}
                    name="sellingPriceBtoC"
                    value={formData.sellingPriceBtoC}
                    onChange={(e) => {
                      const value = e.target.value;
                      const isValid = /^\d*\.?\d*$/.test(value); // Regex to allow only numbers and decimal points
                      setFormData({
                        ...formData,
                        sellingPriceBtoC: value,
                        isPurchaseCostInvalid: !isValid, // Set isPurchaseCostInvalid to true if the value is not a valid number
                      });
                    }}
                    onKeyPress={(e) => {
                      const charCode = e.charCode;
                      // Allow only numbers and decimal points
                      if ((charCode < 48 || charCode > 57) && charCode !== 46) {
                        e.preventDefault(); // Prevent non-numeric input
                        setFormData({
                          ...formData,
                          isPurchaseCostInvalid: true, // Set isPurchaseCostInvalid to true to show the alert
                        });
                      }
                    }}
                    placeholder="Enter Purchase Cost"
                    style={{ textAlign: "right" }}
                    required
                  />
                  {formData.isPurchaseCostInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Less:Costs paid out of closing Hud B to C:
              </span>

              {formData.costPaidOutofClosing.map((cost, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={cost.title}
                      onChange={(e) =>
                        handlecostPaidOutofClosingTitle(
                          index,
                          "title",
                          e.target.value
                        )
                      }
                      placeholder="Title"
                      required
                    />
                  </div>
                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        cost.isInvalid ? "is-invalid" : ""
                      }`} // Apply 'is-invalid' class when invalid
                      value={cost.price}
                      onChange={(e) =>
                        handlecostPaidOutofClosingChange(e, index)
                      } // Use a new handler for price validation
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {cost.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deletecostPaidOutofClosing(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={addcostPaidOutofClosing}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add Cost Paid Out of Closing
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total cost paid out of closing
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalcostPaidOutofClosing"
                    value={calculateTotalcostPaidOutofClosing()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Cost to Sell B to C
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalCosttoSellBtoC"
                    value={calculateTotalCosttoSellBtoC()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Gross Proceeds per HUD
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="grossproceedsperHUD"
                    value={calculateTotalCosttoSellBtoC()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Adjustments:
              </span>

              {formData.adjustments.map((cost, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={cost.title}
                      onChange={(e) =>
                        handleadjustmentsTitle(index, "title", e.target.value)
                      }
                      placeholder="Title"
                      required
                    />
                  </div>
                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        cost.isInvalid ? "is-invalid" : ""
                      }`} // Apply 'is-invalid' class when invalid
                      value={cost.price}
                      onChange={(e) => handleadjustmentsChange(e, index)} // Use a new handler for price validation
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {cost.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deleteadjustments(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={addadjustments}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add Adjustments
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Adjustments
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totaladjustments"
                    value={calculateTotaladjustments()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Funds Available for distribution
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="fundsavailablefordistribution"
                    value={calculatefundsavailablefordistribution()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Income Statement Adjustments:
              </span>

              {formData.incomestatement.map((cost, index) => (
                <div key={index} className="row gy-3 align-items-center">
                  <div className="col-md-4">
                    <input
                      type="text"
                      className="form-control"
                      value={cost.title}
                      onChange={(e) =>
                        handleincomestatementTitle(
                          index,
                          "title",
                          e.target.value
                        )
                      }
                      placeholder="Title"
                      required
                    />
                  </div>
                  <div className="col-md-4">
                    <input
                      type="text"
                      className={`form-control ${
                        cost.isInvalid ? "is-invalid" : ""
                      }`} // Apply 'is-invalid' class when invalid
                      value={cost.price}
                      onChange={(e) => handleincomestatementChange(e, index)} // Use a new handler for price validation
                      placeholder="Price"
                      style={{ textAlign: "right" }}
                      required
                    />
                    {cost.isInvalid && (
                      <div className="invalid-feedback">
                        Please enter a valid number.
                      </div>
                    )}
                  </div>
                  <div className="col-md-2 d-flex justify-content-start">
                    <button
                      className="btn btn-danger"
                      onClick={() => deleteincomestatement(index)}
                      style={{ marginLeft: "5px" }}
                    >
                      x
                    </button>
                  </div>
                </div>
              ))}

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={addincomestatement}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  <span
                    style={{
                      fontSize: "20px",
                      fontWeight: "normal",
                    }}
                  >
                    +
                  </span>{" "}
                  Add Income Statement
                </button>
              </div>

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Total Income Statement Adjustment
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalincomestatement"
                    value={calculateTotalincomestatement()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Net B to C Sale Value
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="netBtoCsalevalue"
                    value={calculatenetBtoCsalevalue()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>
              <hr
                style={{
                  borderColor: "#fda417", // Set the color of the line
                  borderWidth: "1px", // Optional: Adjust the thickness of the line
                  backgroundColor: "#fda417", // Optional: Apply color if using for background
                  height: "1px", // Optional: Set height to match the border width
                }}
              />

              <span
                style={{
                  color: "#fda417",
                  fontSize: "14px",
                  fontWeight: "bold",
                }}
              >
                Net Profit Computation
              </span>

              <div className="row gy-3 align-items-center">
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Total Costs to Buy A to B"
                    required
                    disabled
                  />
                </div>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="totalCoststoBuyAtoBagain"
                    value={calculatetotalCoststoBuyAtoB()}
                    style={{ textAlign: "right" }}
                    required
                  />
                </div>
              </div>

              <br />

              <div className="row gy-3">
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Funds Prior to Closing"
                    required
                    disabled
                  />
                </div>

                <div className="col-md-4">
                  <input
                    type="text"
                    className={`form-control ${
                      formData.isfundspriortoclosingInvalid ? "is-invalid" : ""
                    }`}
                    value={formData.fundspriortoclosing}
                    name="fundspriortoclosing"
                    onChange={(e) => {
                      const value = e.target.value;
                      const isValid = /^\d*\.?\d*$/.test(value); // Regex to allow only numbers and decimal points
                      setFormData({
                        ...formData,
                        fundspriortoclosing: value,
                        isfundspriortoclosingInvalid: !isValid, // Set isPurchaseCostInvalid to true if the value is not a valid number
                      });
                    }}
                    onKeyPress={(e) => {
                      const charCode = e.charCode;
                      // Allow only numbers and decimal points
                      if ((charCode < 48 || charCode > 57) && charCode !== 46) {
                        e.preventDefault(); // Prevent non-numeric input
                        setFormData({
                          ...formData,
                          isfundspriortoclosingInvalid: true, // Set isPurchaseCostInvalid to true to show the alert
                        });
                      }
                    }}
                    style={{ textAlign: "right" }}
                    required
                  />
                  {formData.isfundspriortoclosingInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>
              <br />

              <div className="row gy-3">
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Net B to C Sale Value"
                    required
                    disabled
                  />
                </div>

                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="netBtoCsalevalue"
                    value={calculatenetBtoCsalevalue()}
                    style={{ textAlign: "right" }}
                    required
                  />
                </div>
              </div>

              <br />

              <div className="row gy-3">
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Short Term Rental"
                    required
                    disabled
                  />
                </div>

                <div className="col-md-4">
                  <input
                    type="text"
                    className={`form-control ${
                      formData.isPurchaseCostInvalid ? "is-invalid" : ""
                    }`}
                    value={formData.shorttermrental}
                    name="shorttermrental"
                    onChange={(e) => {
                      const value = e.target.value;
                      const isValid = /^\d*\.?\d*$/.test(value); // Regex to allow only numbers and decimal points
                      setFormData({
                        ...formData,
                        shorttermrental: value,
                        isPurchaseCostInvalid: !isValid, // Set isPurchaseCostInvalid to true if the value is not a valid number
                      });
                    }}
                    onKeyPress={(e) => {
                      const charCode = e.charCode;
                      // Allow only numbers and decimal points
                      if ((charCode < 48 || charCode > 57) && charCode !== 46) {
                        e.preventDefault(); // Prevent non-numeric input
                        setFormData({
                          ...formData,
                          isPurchaseCostInvalid: true, // Set isPurchaseCostInvalid to true to show the alert
                        });
                      }
                    }}
                    style={{ textAlign: "right" }}
                    required
                  />
                  {formData.isPurchaseCostInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>
              <br />

              <div className="row gy-3">
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Other Income"
                    required
                    disabled
                  />
                </div>

                <div className="col-md-4">
                  <input
                    type="text"
                    className={`form-control ${
                      formData.isPurchaseCostInvalid ? "is-invalid" : ""
                    }`}
                    value={formData.OtherIncome}
                    name="OtherIncome"
                    onChange={(e) => {
                      const value = e.target.value;
                      const isValid = /^\d*\.?\d*$/.test(value); // Regex to allow only numbers and decimal points
                      setFormData({
                        ...formData,
                        OtherIncome: value,
                        isPurchaseCostInvalid: !isValid, // Set isPurchaseCostInvalid to true if the value is not a valid number
                      });
                    }}
                    onKeyPress={(e) => {
                      const charCode = e.charCode;
                      // Allow only numbers and decimal points
                      if ((charCode < 48 || charCode > 57) && charCode !== 46) {
                        e.preventDefault(); // Prevent non-numeric input
                        setFormData({
                          ...formData,
                          isPurchaseCostInvalid: true, // Set isPurchaseCostInvalid to true to show the alert
                        });
                      }
                    }}
                    style={{ textAlign: "right" }}
                    required
                  />
                  {formData.isPurchaseCostInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>
              <br />

              <div className="row gy-3">
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Insurance Claim"
                    required
                    disabled
                  />
                </div>

                <div className="col-md-4">
                  <input
                    type="text"
                    className={`form-control ${
                      formData.isPurchaseCostInvalid ? "is-invalid" : ""
                    }`}
                    value={formData.InsuranceClaim}
                    name="InsuranceClaim"
                    onChange={(e) => {
                      const value = e.target.value;
                      const isValid = /^\d*\.?\d*$/.test(value); // Regex to allow only numbers and decimal points
                      setFormData({
                        ...formData,
                        InsuranceClaim: value,
                        isPurchaseCostInvalid: !isValid, // Set isPurchaseCostInvalid to true if the value is not a valid number
                      });
                    }}
                    onKeyPress={(e) => {
                      const charCode = e.charCode;
                      // Allow only numbers and decimal points
                      if ((charCode < 48 || charCode > 57) && charCode !== 46) {
                        e.preventDefault(); // Prevent non-numeric input
                        setFormData({
                          ...formData,
                          isPurchaseCostInvalid: true, // Set isPurchaseCostInvalid to true to show the alert
                        });
                      }
                    }}
                    style={{ textAlign: "right" }}
                    required
                  />
                  {formData.isPurchaseCostInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>
              <br />

              <div className="row gy-3">
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    placeholder="Long Term Rental"
                    required
                    disabled
                  />
                </div>

                <div className="col-md-4">
                  <input
                    type="text"
                    className={`form-control ${
                      formData.isPurchaseCostInvalid ? "is-invalid" : ""
                    }`}
                    value={formData.LongTermRental}
                    name="LongTermRental"
                    onChange={(e) => {
                      const value = e.target.value;
                      const isValid = /^\d*\.?\d*$/.test(value); // Regex to allow only numbers and decimal points
                      setFormData({
                        ...formData,
                        LongTermRental: value,
                        isPurchaseCostInvalid: !isValid, // Set isPurchaseCostInvalid to true if the value is not a valid number
                      });
                    }}
                    onKeyPress={(e) => {
                      const charCode = e.charCode;
                      // Allow only numbers and decimal points
                      if ((charCode < 48 || charCode > 57) && charCode !== 46) {
                        e.preventDefault(); // Prevent non-numeric input
                        setFormData({
                          ...formData,
                          isPurchaseCostInvalid: true, // Set isPurchaseCostInvalid to true to show the alert
                        });
                      }
                    }}
                    style={{ textAlign: "right" }}
                    required
                  />
                  {formData.isPurchaseCostInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>
              <br />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Net Profit Before Financing Costs
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="netprofitbeforefinancingcosts"
                    value={calculateNetProfitBeforeFinancingCosts()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <br />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Financing Cost/Other Closing Costs
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className={`form-control ${
                      formData.isFinancingCostClosingCostInvalid
                        ? "is-invalid"
                        : ""
                    }`}
                    value={formData.FinancingCostClosingCost}
                    name="FinancingCostClosingCost"
                    onChange={(e) => {
                      const value = e.target.value;
                      const isValid = /^\d*\.?\d*$/.test(value); // Regex to allow only numbers and decimal points
                      setFormData({
                        ...formData,
                        FinancingCostClosingCost: value,
                        isFinancingCostClosingCostInvalid: !isValid, // Set isPurchaseCostInvalid to true if the value is not a valid number
                      });
                    }}
                    onKeyPress={(e) => {
                      const charCode = e.charCode;
                      // Allow only numbers and decimal points
                      if ((charCode < 48 || charCode > 57) && charCode !== 46) {
                        e.preventDefault(); // Prevent non-numeric input
                        setFormData({
                          ...formData,
                          isFinancingCostClosingCostInvalid: true, // Set isPurchaseCostInvalid to true to show the alert
                        });
                      }
                    }}
                    style={{ textAlign: "right" }}
                    required
                  />
                  {formData.isFinancingCostClosingCostInvalid && (
                    <div className="invalid-feedback">
                      Please enter a valid number.
                    </div>
                  )}
                </div>
              </div>

              <br />

              <div className="row gy-3 align-items-center">
                <span
                  className="col-md-4"
                  style={{
                    color: "#fda417",
                    fontSize: "14px",
                    fontWeight: "bold",
                  }}
                >
                  Net Profit
                </span>
                <div className="col-md-4">
                  <input
                    type="text"
                    className="form-control"
                    name="netprofit"
                    value={calculateNetProfit()}
                    readOnly
                    style={{
                      borderColor: "#fda417", // Custom border color for the input field
                      color: "#fda417", // Optionally apply text color to the input text
                      textAlign: "right",
                    }}
                    // placeholder="Total Incidental Cost"
                    required
                  />
                </div>
              </div>

              <div className="col-md-4">
                <button
                  className="btn btn-primary back"
                  onClick={handleBack}
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                >
                  Go Back
                </button>{" "}
                <button
                  type="button"
                  className="btn btn-primary continue"
                  style={{ backgroundColor: "#fda417", border: "#fda417" }}
                  onClick={handleSubmit}
                >
                  Submit
                </button>{" "}
              </div>
              <br />
            </div>
          )}
        </div>
      </div>
    </>
  );
};

export default Addproperty;