You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

HeaderSelect.js 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React from "react";
  2. import PropTypes from "prop-types";
  3. import { useTranslation } from "react-i18next";
  4. import { HeaderSelectContainer, SelectOption } from "./HeaderSelect.styled";
  5. const HeaderSelect = (props) => {
  6. const sorting = props?.sorting;
  7. const { t } = useTranslation();
  8. const handleChangeSelect = (event) => {
  9. sorting?.changeSorting(event.target.value);
  10. };
  11. return (
  12. <HeaderSelectContainer
  13. hideSorting={props?.hideSorting}
  14. value={
  15. sorting?.selectedSortOption?.value
  16. ? sorting?.selectedSortOption
  17. : "default"
  18. }
  19. onChange={handleChangeSelect}
  20. myOffers={props?.myOffers}
  21. >
  22. <SelectOption style={{ display: "none" }} value="default">
  23. {t("reviews.sortBy")}
  24. </SelectOption>
  25. {Object.keys(sorting?.sortOptions).map((property) => {
  26. if (sorting?.sortOptions[property].value === 0) return;
  27. return (
  28. <SelectOption
  29. value={sorting?.sortOptions[property]}
  30. key={sorting?.sortOptions[property].value}
  31. >
  32. {sorting?.sortOptions[property].mainText}
  33. </SelectOption>
  34. );
  35. })}
  36. </HeaderSelectContainer>
  37. );
  38. };
  39. HeaderSelect.propTypes = {
  40. sorting: PropTypes.any,
  41. myOffers: PropTypes.bool,
  42. hideSorting: PropTypes.bool,
  43. };
  44. HeaderSelect.defaultProps = {
  45. myOffers: false,
  46. hideSorting: false,
  47. };
  48. export default HeaderSelect;