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.

CaseStudy.jsx 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import propTypes from 'prop-types';
  2. const api_url = process.env.REACT_APP_API_URL;
  3. export default function CaseStudy(props) {
  4. const study = props.fetch;
  5. return (
  6. <div className="flex flex-col items-center justify-center dark:text-white max-w-custom">
  7. <h2 className="text-3xl text-dg-primary-900 font-medium mt-8 w-full">
  8. {props.heading}
  9. </h2>
  10. <div className="grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-36 mt-8">
  11. {/* Left Side */}
  12. <div className="">
  13. <div>
  14. <h3 className="font-semibold text-xl">{props.goals_heading}</h3>
  15. <p className="text-sm">{props.goals_paragraph}</p>
  16. </div>
  17. <div className="mt-8">
  18. <h3 className="font-semibold text-xl">{props.challange_heading}</h3>
  19. <p className="text-sm">{props.challange_paragraph}</p>
  20. </div>
  21. <div className="mt-8">
  22. <h3 className="font-semibold text-xl">{props.solution_heading}</h3>
  23. <p className="text-sm">{props.solution_paragraph}</p>
  24. </div>
  25. </div>
  26. {/* Right Side */}
  27. <div className="">
  28. <div>
  29. <h3 className="font-semibold text-teal-700 text-xl">
  30. {props.client_heading}
  31. </h3>
  32. <p className="text-sm">{props.client_paragraph}</p>
  33. </div>
  34. <img src={api_url + props.image} alt="Case Study's Image" />
  35. </div>
  36. </div>
  37. {/* Summary, Engineers & Technologies */}
  38. <div className="mt-8 w-full">
  39. <h3 className="font-semibold text-dg-primary-900 text-xl">
  40. {props.summary_heading}
  41. </h3>
  42. <p className="text-sm">{props.summary_paragraph}</p>
  43. </div>
  44. <div className="mt-4 mb-8 w-full flex flex-col md:flex-row items-center justify-center md:justify-between">
  45. <p className="font-semibold text-dg-primary-900 text-sm">
  46. {props.engineers + '+ engineers'}
  47. </p>
  48. <ul className="flex flex-row items-center justify-center mt-2 md:mt-0">
  49. {study.technologies.data.map(technology => (
  50. <li key={technology.id} className="mr-2">
  51. <img src={api_url + technology.attributes.url} alt="Technology's Icon" width={27} />
  52. </li>
  53. ))}
  54. </ul>
  55. </div>
  56. </div>
  57. );
  58. }
  59. CaseStudy.propTypes = {
  60. heading: propTypes.string,
  61. engineers: propTypes.number,
  62. image: propTypes.string,
  63. goals_heading: propTypes.string,
  64. goals_paragraph: propTypes.string,
  65. challange_heading: propTypes.string,
  66. challange_paragraph: propTypes.string,
  67. solution_heading: propTypes.string,
  68. solution_paragraph: propTypes.string,
  69. client_heading: propTypes.string,
  70. client_paragraph: propTypes.string,
  71. summary_heading: propTypes.string,
  72. summary_paragraph: propTypes.string,
  73. fetch: propTypes.string,
  74. key: propTypes.number,
  75. };