pageTemplate.js 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. function PageTemplate(props) {
  2. const { useRef, useState, useEffect } = React;
  3. const refSwiperContainer = useRef();
  4. const refPagination = useRef();
  5. const imageArray = [
  6. {
  7. demo: 'https://d1xzlli46wohoc.cloudfront.net/assets/images/demo/demo-A.png',
  8. merge: 'https://d1xzlli46wohoc.cloudfront.net/assets/images/demo/template-A.jpg',
  9. },
  10. {
  11. demo:'https://d1xzlli46wohoc.cloudfront.net/assets/images/demo/demo-B.png',
  12. merge:'https://d1xzlli46wohoc.cloudfront.net/assets/images/demo/template-B.jpg',
  13. }
  14. ]
  15. let mySwiper;
  16. function goNext(src) {
  17. props.next(src);
  18. }
  19. function goBack() {
  20. props.back();
  21. }
  22. function onConfirm() {
  23. goNext(imageArray[mySwiper.realIndex]);
  24. }
  25. function initSwiper() {
  26. mySwiper = new Swiper(refSwiperContainer.current,{
  27. // loop: true,
  28. // autoplay: {
  29. // delay: 3000,
  30. // disableOnInteraction: false,
  31. // },
  32. direction: 'horizontal',
  33. slidesPerView: 1,
  34. spaceBetween: 30,
  35. initialSlide: 0,
  36. pagination: {
  37. el: refPagination.current,
  38. clickable: true,
  39. renderBullet: function (index, className) {
  40. return '<div class="pagination__bullet ' + className + '"></div>';
  41. },
  42. },
  43. navigation: {
  44. nextEl: '.description--carousell--next',
  45. prevEl: '.description--carousell--prev',
  46. },
  47. });
  48. }
  49. useEffect(() => {
  50. initSwiper();
  51. return () => {};
  52. },[])
  53. return (
  54. <div class="templatePage">
  55. <div class="templatePage__header">
  56. <div class="btn__back" onClick={goBack}>
  57. <img src="https://d1xzlli46wohoc.cloudfront.net/assets/images/btn-retake.png" alt="" />
  58. </div>
  59. </div>
  60. <div class="templatePage__body">
  61. <div class="templatePage__title">
  62. <img src="https://d1xzlli46wohoc.cloudfront.net/assets/images/merge-title.png" alt="" />
  63. </div>
  64. <div class="templatePage__swiper">
  65. <div class="swiper-container" ref={refSwiperContainer}>
  66. <div class="swiper-wrapper">
  67. <div class="swiper-slide">
  68. <div class="templatePage__slide">
  69. <img src='https://d1xzlli46wohoc.cloudfront.net/assets/images/demo/demo-A.png' />
  70. </div>
  71. </div>
  72. <div class="swiper-slide">
  73. <div class="templatePage__slide">
  74. <img src='https://d1xzlli46wohoc.cloudfront.net/assets/images/demo/demo-B.png' />
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <div class="templatePage__pagination" ref={refPagination}>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="templatePage__footer">
  84. <div class="btn__confirm" onClick={onConfirm}>
  85. <img src='https://d1xzlli46wohoc.cloudfront.net/assets/images/btn-next.png' />
  86. </div>
  87. </div>
  88. </div>
  89. );
  90. }