"use client";
import { useParseFloat, useParseMoney } from "@/utils/lib/helpers";
import { Tooltip } from "flowbite-react";
import { FC } from "react";
import { TbCurrencyTaka } from "react-icons/tb";
import { twMerge } from "tailwind-merge";

type props = {
  amount: number | undefined | null | string;
  format?: boolean;
  moneyClass?: string;
  iconClass?: string;
  className?: string,
  icon?: boolean;
  discount?: number;
  showCalculation?: boolean;
  tooltip?: boolean;
};
const MoneyFormat: FC<props> = ({
  amount = 0,
  format = true,
  moneyClass,
  iconClass,
  className = "",
  icon = true,
  discount = 0,
  showCalculation = false,
  tooltip = false
}) => {
  const netAmount = useParseFloat(amount) - useParseFloat(discount);
  return (
    tooltip ? (<Tooltip content={`Amount: ${useParseMoney(amount, 0)}, Discount: ${useParseMoney(discount, 0)}, Net Amount: ${useParseMoney(netAmount, 0)}`}>
      <div className={twMerge("flex w-24", className)}>
        {icon && <TbCurrencyTaka className={`text-lg ${iconClass}`} />}
        {format ? (
          <div className={moneyClass}>
            {discount > 0 ? (useParseMoney(netAmount)) : (useParseMoney(amount, 0))}
            {icon && "/-"}
          </div>
        ) : (
          <div className={moneyClass}>
            {discount > 0 ? (netAmount) : (amount)}
            {icon && "/-"}
          </div>
        )}
      </div>
    </Tooltip>) : (
      <>
        <div className={twMerge("flex w-24", className)}>
          {icon && <TbCurrencyTaka className={`text-lg ${iconClass}`} />}
          {format ? (
            <div className={moneyClass}>
              {discount > 0 ? (useParseMoney(netAmount)) : (useParseMoney(amount, 0))}
              {"/-"}
            </div>
          ) : (
            <div className={moneyClass}>
              {discount > 0 ? (netAmount) : (amount)}
              {"/-"}
            </div>
          )}
        </div>
      </>
    )
  );
};

export default MoneyFormat;
