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.

AdDetailsCandidateCard.js 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import React from "react";
  2. import PropTypes from "prop-types";
  3. import { CANDIDATES_DETAILS_PAGE } from "../../constants/pages";
  4. import { useHistory } from "react-router-dom";
  5. const AdDetailsCandidateCard = ({
  6. className,
  7. id,
  8. firstName,
  9. lastName,
  10. experience,
  11. cv,
  12. }) => {
  13. const history = useHistory();
  14. return (
  15. <div data-testid="ad-details-candidate" className={`ad-details-candidate ${className}`}>
  16. <div className="ad-details-candidate-date">
  17. <p>{new Date().toLocaleDateString()}</p>
  18. </div>
  19. <div className="ad-details-candidate-title">
  20. <h3 data-testid="ad-details-candidate-title-link" onClick={() => history.push(CANDIDATES_DETAILS_PAGE.replace(":id", id))}>
  21. {firstName} {lastName}
  22. </h3>
  23. </div>
  24. <div className="ad-details-candidate-experience">
  25. {experience > 0 ? (
  26. <p>{experience}+ years of experience</p>
  27. ) : (
  28. <p>No experience</p>
  29. )}
  30. </div>
  31. <div className="ad-details-candidate-buttons">
  32. <button>React</button>
  33. <button>.NET</button>
  34. <button>Angular</button>
  35. </div>
  36. <div className="ad-details-candidate-cv">
  37. <a href="#">{cv}</a>
  38. </div>
  39. </div>
  40. );
  41. };
  42. AdDetailsCandidateCard.propTypes = {
  43. className: PropTypes.any,
  44. id: PropTypes.number,
  45. firstName: PropTypes.string,
  46. lastName: PropTypes.string,
  47. experience: PropTypes.number,
  48. cv: PropTypes.string,
  49. };
  50. export default AdDetailsCandidateCard;