import React from 'react';
import styled from 'styled-components';
import { FaStar, FaCaretDown, FaCheck } from 'react-icons/fa';

const ReviewsHeaderContainer = styled.div`
  .reviews-total {
    display:flex;
    font-family: 'Roboto', sans-serif;
    letter-spacing: 0.35px;
    font-size: 26px;
    font-weight: 300;
    color: #222222;
  }
  #reviews-title-stars {
    margin: 3px 0px 0px 12px;
    font-size:20px;
    font-weight:300;
  }
  .reviews-tab-list {
    border-bottom: 2px solid rgba(34, 34, 34, 0.15);
  }
  .reviewsTabItem {
    font-size: 16px;
    line-height: 22.4px;
    margin: 0px 12px 0px 0px;
    padding: 12px 0px;
    background: white;
    border: none;
    cursor: pointer;
    border-bottom:  ${(props) => (props.reviewsTab === 'reviewsItem' ? '2px solid;' : '2px solid rgba(34, 34, 34, 0.15);')};
    border-color: ${(props) => (props.reviewsTab === 'reviewsItem' ? '#222222;' : 'none')};
    margin-bottom: -1px;
    outline: none;
  }
  .reviewsTabShop {
    font-size: 16px;
    line-height: 22.4px;
    margin: 0px 12px 0px 0px;
    padding: 12px 0px;
    background: white;
    border: none;
    cursor: pointer;
    border-bottom:  ${(props) => (props.reviewsTab === 'reviewsShop' ? '2px solid;' : '2px solid rgba(34, 34, 34, 0.15);')};
    border-color: ${(props) => (props.reviewsTab === 'reviewsShop' ? '#222222;' : 'none')};
    outline: none;
  }
  .reviewsTabShop:hover{
    border-bottom: 2px solid;
    border-color: #222222;
    transition: 1s;
  }
  .reviewsTabItem:hover{
    border-bottom: 2px solid;
    border-color: #222222;
    transition: 1s;
  }
  #reviews-ratings {
    font-size:13px;
    line-height: 13px;
    background-color: #2222;
    margin: 0px 0px 0px 12px;
    padding: 6px 9px;
    border-radius: 45%;
  }
  .reviews-sort {
    display:flex;
    flex-direction: row;
    justify-content: flex-end;
    font-size: 13px;
    line-height: 18.2px;
    margin: 0px 12px 0px 0px;
    padding: 9px 15px;
  }
  .reviews-sort-items {
    display:flex;
    justify-content: flex-start;
    flex-direction: column;
    position: absolute;
    background:white;
    border-radius: 24px;
    border: ${(props) => (props.dropdown === false ? 'none;' : '2px solid rgba(34, 34, 34, 0.15);')}; 
  }
  .reviews-sort-title {
    cursor: pointer;
    background: white;
    font-weight: 500;
    border:none;
    padding: 9px 15px;
    border-radius: 24px;
    outline: none;
  }
  .reviews-sort-title:hover {
    background-color: ${(props) => (props.dropdown === false ? '#2222;' : 'white;')};
  }
  .reviews-dropdown-content {
    flex-direction:row;
    font-weight: 300;
    font-color: #222222;
    display: ${(props) => (props.dropdown === false ? 'none;' : 'flex;')};
    flex-direction: ${(props) => (props.dropdown === false ? 'none;' : 'column;')};
    cursor:pointer;
    padding: 12px 18px;
  }
  .reviews-sort-dropdown-1{
    color:#222222;
  }
  .reviews-sort-dropdown-2{
    color:#222222;
  }
  .reviews-sort-dropdown-1:hover {
    background-color: #2222;
  }
  .reviews-sort-dropdown-2:hover {
    background-color: #2222;
  }
  #reviews-dropdown-check {
    margin: 0px 0px 0px 75px;
  }
`;

const ReviewsHeader = (props) => {
  const {
    reviewsForItem, reviewsForShop, reviewsTab, handleClick, handleSortClick,
    handleDropdown, dropdown, handleSortNewest, handleSortRecommended, sortName,
  } = props;
  if (sortName === 'Newest') {
    return (
      <ReviewsHeaderContainer reviewsTab={reviewsTab} dropdown={dropdown} className="ReviewsHeaderContainer">
        <div>
          <h3 className="reviews-total">
            {reviewsForShop.length} reviews <span id="reviews-title-stars"><FaStar/> <FaStar/> <FaStar/> <FaStar/> <FaStar/></span>
          </h3>
          <div className="reviews-tab-items">
            <div className="reviews-tab-list" id="reviews-tab-list">
              <button type="button" className="reviewsTabItem" tabIndex="0" role="tab" value="reviewsItem" onClick={handleClick}>Reviews for this item <span id="reviews-ratings">{reviewsForItem.length}</span></button>
              <button type="button" className="reviewsTabShop" tabIndex="0" role="tab" value="reviewsShop" onClick={handleClick}>Reviews for this shop <span id="reviews-ratings">{reviewsForShop.length}</span></button>
            </div>
          </div>
        </div>
        <div className="reviews-sort">
          <div className="reviews-sort-items">
            <button type="button" className="reviews-sort-title" onClick={handleDropdown}>
              Sort by: {sortName} <FaCaretDown />
            </button>
            <div className="reviews-dropdown-content">
              <div className="reviews-sort-dropdown-1" onClick={handleSortRecommended}>Recommended</div>
              <br></br>
              <div className="reviews-sort-dropdown-2"onClick={handleSortNewest}>Newest <span id="reviews-dropdown-check"><FaCheck/></span></div>
            </div>
          </div>
        </div>
      </ReviewsHeaderContainer>
    );
  }
  return (
    <ReviewsHeaderContainer reviewsTab={reviewsTab} dropdown={dropdown} className="ReviewsHeaderContainer">
      <div>
        <h3 className="reviews-total">
          {reviewsForShop.length} reviews <span id="reviews-title-stars"><FaStar/> <FaStar/> <FaStar/> <FaStar/> <FaStar/></span>
        </h3>
        <div className="reviews-tab-items">
          <div className="reviews-tab-list" id="reviews-tab-list">
            <button type="button" className="reviewsTabItem" tabIndex="0" role="tab" value="reviewsItem" onClick={handleClick}>Reviews for this item <span id="reviews-ratings">{reviewsForItem.length}</span></button>
            <button type="button" className="reviewsTabShop" tabIndex="0" role="tab" value="reviewsShop" onClick={handleClick}>Reviews for this shop <span id="reviews-ratings">{reviewsForShop.length}</span></button>
          </div>
        </div>
      </div>
      <div className="reviews-sort">
        <div className="reviews-sort-items">
          <button type="button" className="reviews-sort-title" onClick={handleDropdown}>
            Sort by: {sortName} <FaCaretDown />
          </button>
          <div className="reviews-dropdown-content">
            <a className="reviews-sort-dropdown-1" onClick={handleSortRecommended}>Recommended <span id="reviews-dropdown-check"><FaCheck/></span></a>
            <br></br>
            <a className="reviews-sort-dropdown-2"onClick={handleSortNewest}>Newest</a>
          </div>
        </div>
      </div>
    </ReviewsHeaderContainer>
  );
};

export default ReviewsHeader;