Carousel.jsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { Carousel } from 'antd'
  2. import { LeftCircleFilled, RightCircleFilled } from '@ant-design/icons'
  3. import defaultPhoto from '../../materials/default-photo.png'
  4. import backendURL from '../../helpers/backendUrl'
  5. const SampleNextArrow = (props) => {
  6. const { onClick } = props
  7. return (
  8. <div className="NextArrow" onClick={onClick}>
  9. <RightCircleFilled />
  10. </div>
  11. )
  12. }
  13. const SamplePrevArrow = (props) => {
  14. const { onClick } = props
  15. return (
  16. <div className="PreviousArrow" onClick={onClick}>
  17. <LeftCircleFilled />
  18. </div>
  19. )
  20. }
  21. export const MyCarousel = ({ images = [],carouselWidth,carouselHeight }) => {
  22. return (
  23. <>
  24. <div className="MyCarousel">
  25. <Carousel
  26. effect="fade"
  27. arrows
  28. nextArrow={<SampleNextArrow />}
  29. prevArrow={<SamplePrevArrow />}
  30. >
  31. {images ? (
  32. images?.map(
  33. (i, index) =>
  34. i?.url && (
  35. <div key={index}>
  36. <img key={index} className="PostImage"
  37. // style={{width:carouselWidth, height: carouselHeight }}
  38. src={backendURL+'/' + i?.url} />
  39. </div>
  40. ),
  41. )
  42. ) : (
  43. <div>
  44. <img className="PostImage"
  45. style={{width:carouselWidth, height: carouselHeight }}
  46. src={defaultPhoto} />
  47. </div>
  48. )}
  49. </Carousel>
  50. </div>
  51. </>
  52. )
  53. }