import React, { useContext } from "react";
import Loader from "../../shared/components/loader";
import Rating from "./rating";
import { getTranslations } from "../../shared/utils/localization-util";
import SettingsContext from "../settings-context";
import Icon from "./icon";

interface HeaderProps {
  name: string;
  rating: number | undefined;
  priceText: string | undefined;
  hasFlight: boolean;
  hasTransfer: boolean;
  isLoading: boolean;
}

const Header: React.FC<HeaderProps> = ({
  name,
  rating,
  priceText,
  isLoading,
  hasFlight,
  hasTransfer
}) => {
  const {
    language
  } = useContext(SettingsContext);
  const translations = getTranslations(language);

  return (
    <div className="booking-product__header">
      <div className="booking-product__hotel">
        {rating && <Rating rating={rating} />}
        <div className="booking-product__title">{name}</div>
      </div>
      <div className="booking-product__price">
        {isLoading
          ? (<Loader loaderText={translations.PRODUCT.LOADING_PRICE} />)
          : (
            <>
              <div className="pricing__header pricing__price">
                {priceText}
              </div>
              <div className="package-icons">
                {priceText && (
                  <div className="package-icons__icon">
                    <Icon name="ui-bed" title={translations.PRODUCT.STAY_INCLUDED} width={25} height={25} />
                  </div>
                )}
                {hasFlight && (
                  <div className="package-icons__icon">
                    <Icon name="ui-flight" title={translations.PRODUCT.FLIGHT_INCLUDED} width={25} height={25} />
                  </div>
                )}
                {hasTransfer && (
                  <div className="package-icons__icon">
                    <Icon name="ui-transfer" title={translations.PRODUCT.TRANSFER_INCLUDED} width={25} height={25} />
                  </div>
                )}
              </div>
            </>
          )}
      </div>
    </div>
  )
}

export default Header;