Browse Source

carousel

master
azri 3 weeks ago
parent
commit
8243456272
3 changed files with 86 additions and 5 deletions
  1. 78
    0
      package-lock.json
  2. 2
    0
      package.json
  3. 6
    5
      src/components/CarouselContainer/CarouselContainer.jsx

+ 78
- 0
package-lock.json View File

@@ -24,10 +24,12 @@
24 24
         "axios": "^1.7.9",
25 25
         "dotenv": "^16.4.7",
26 26
         "framer-motion": "^11.16.0",
27
+        "pure-react-carousel": "^1.32.0",
27 28
         "react": "^18.3.1",
28 29
         "react-dom": "^18.3.1",
29 30
         "react-material-ui-carousel": "^3.4.2",
30 31
         "react-redux": "^9.2.0",
32
+        "react-responsive-carousel": "^3.2.23",
31 33
         "react-router-dom": "^7.0.2",
32 34
         "react-scripts": "^5.0.1",
33 35
         "shopify-api-node": "^3.14.0",
@@ -6568,6 +6570,12 @@
6568 6570
       "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==",
6569 6571
       "license": "MIT"
6570 6572
     },
6573
+    "node_modules/classnames": {
6574
+      "version": "2.5.1",
6575
+      "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
6576
+      "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
6577
+      "license": "MIT"
6578
+    },
6571 6579
     "node_modules/clean-css": {
6572 6580
       "version": "5.3.3",
6573 6581
       "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
@@ -7532,6 +7540,12 @@
7532 7540
         "url": "https://github.com/sponsors/ljharb"
7533 7541
       }
7534 7542
     },
7543
+    "node_modules/deep-freeze": {
7544
+      "version": "0.0.1",
7545
+      "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz",
7546
+      "integrity": "sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==",
7547
+      "license": "public domain"
7548
+    },
7535 7549
     "node_modules/deep-is": {
7536 7550
       "version": "0.1.4",
7537 7551
       "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -7998,6 +8012,15 @@
7998 8012
         "url": "https://github.com/fb55/entities?sponsor=1"
7999 8013
       }
8000 8014
     },
8015
+    "node_modules/equals": {
8016
+      "version": "1.0.5",
8017
+      "resolved": "https://registry.npmjs.org/equals/-/equals-1.0.5.tgz",
8018
+      "integrity": "sha512-wI15a6ZoaaXPv+55+Vh2Kqn3+efKRv8QPtcGTjW5xmanMnQzESdAt566jevtMZyt3W/jwLDTzXpMph5ECDJ2zg==",
8019
+      "license": "MIT",
8020
+      "dependencies": {
8021
+        "jkroso-type": "1"
8022
+      }
8023
+    },
8001 8024
     "node_modules/error-ex": {
8002 8025
       "version": "1.3.2",
8003 8026
       "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -12047,6 +12070,12 @@
12047 12070
         "jiti": "bin/jiti.js"
12048 12071
       }
12049 12072
     },
12073
+    "node_modules/jkroso-type": {
12074
+      "version": "1.1.1",
12075
+      "resolved": "https://registry.npmjs.org/jkroso-type/-/jkroso-type-1.1.1.tgz",
12076
+      "integrity": "sha512-zZgay+fPG6PgMUrpyFADmQmvLo39+AZa7Gc5pZhev2RhDxwANEq2etwD8d0e6rTg5NkwOIlQmaEmns3draC6Ng==",
12077
+      "license": "MIT"
12078
+    },
12050 12079
     "node_modules/jose": {
12051 12080
       "version": "5.9.6",
12052 12081
       "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz",
@@ -15139,6 +15168,32 @@
15139 15168
         "node": ">=6"
15140 15169
       }
15141 15170
     },
15171
+    "node_modules/pure-react-carousel": {
15172
+      "version": "1.32.0",
15173
+      "resolved": "https://registry.npmjs.org/pure-react-carousel/-/pure-react-carousel-1.32.0.tgz",
15174
+      "integrity": "sha512-RW0zKjjId1Xmspcqdu3v0pmlce3BVDACJ0fzt1+ZPJ4GxqJbIqt2kPAh1e5M19S5BDewihnq6kz4kIaGXleO3w==",
15175
+      "license": "MIT",
15176
+      "dependencies": {
15177
+        "@babel/runtime": "^7.5.5",
15178
+        "deep-freeze": "0.0.1",
15179
+        "deepmerge": "^2.2.1",
15180
+        "equals": "^1.0.5",
15181
+        "prop-types": "^15.6.2"
15182
+      },
15183
+      "peerDependencies": {
15184
+        "react": "15.x || 16.x || 17.x || 18.x",
15185
+        "react-dom": "15.x || 16.x || 17.x || 18.x"
15186
+      }
15187
+    },
15188
+    "node_modules/pure-react-carousel/node_modules/deepmerge": {
15189
+      "version": "2.2.1",
15190
+      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
15191
+      "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==",
15192
+      "license": "MIT",
15193
+      "engines": {
15194
+        "node": ">=0.10.0"
15195
+      }
15196
+    },
15142 15197
     "node_modules/q": {
15143 15198
       "version": "1.5.1",
15144 15199
       "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
@@ -15410,6 +15465,18 @@
15410 15465
         "react": "^18.3.1"
15411 15466
       }
15412 15467
     },
15468
+    "node_modules/react-easy-swipe": {
15469
+      "version": "0.0.21",
15470
+      "resolved": "https://registry.npmjs.org/react-easy-swipe/-/react-easy-swipe-0.0.21.tgz",
15471
+      "integrity": "sha512-OeR2jAxdoqUMHIn/nS9fgreI5hSpgGoL5ezdal4+oO7YSSgJR8ga+PkYGJrSrJ9MKlPcQjMQXnketrD7WNmNsg==",
15472
+      "license": "MIT",
15473
+      "dependencies": {
15474
+        "prop-types": "^15.5.8"
15475
+      },
15476
+      "engines": {
15477
+        "node": ">= 6"
15478
+      }
15479
+    },
15413 15480
     "node_modules/react-error-overlay": {
15414 15481
       "version": "6.0.11",
15415 15482
       "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
@@ -15730,6 +15797,17 @@
15730 15797
         "node": ">=0.10.0"
15731 15798
       }
15732 15799
     },
15800
+    "node_modules/react-responsive-carousel": {
15801
+      "version": "3.2.23",
15802
+      "resolved": "https://registry.npmjs.org/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz",
15803
+      "integrity": "sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg==",
15804
+      "license": "MIT",
15805
+      "dependencies": {
15806
+        "classnames": "^2.2.5",
15807
+        "prop-types": "^15.5.8",
15808
+        "react-easy-swipe": "^0.0.21"
15809
+      }
15810
+    },
15733 15811
     "node_modules/react-router": {
15734 15812
       "version": "7.0.2",
15735 15813
       "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.0.2.tgz",

+ 2
- 0
package.json View File

@@ -19,10 +19,12 @@
19 19
     "axios": "^1.7.9",
20 20
     "dotenv": "^16.4.7",
21 21
     "framer-motion": "^11.16.0",
22
+    "pure-react-carousel": "^1.32.0",
22 23
     "react": "^18.3.1",
23 24
     "react-dom": "^18.3.1",
24 25
     "react-material-ui-carousel": "^3.4.2",
25 26
     "react-redux": "^9.2.0",
27
+    "react-responsive-carousel": "^3.2.23",
26 28
     "react-router-dom": "^7.0.2",
27 29
     "react-scripts": "^5.0.1",
28 30
     "shopify-api-node": "^3.14.0",

+ 6
- 5
src/components/CarouselContainer/CarouselContainer.jsx View File

@@ -5,18 +5,21 @@ import ArrowForwardIosIcon from "@mui/icons-material/ArrowForwardIos";
5 5
 import mainImage1 from "../../assets/images/MAINHEADER-01.webp";
6 6
 import mainImage2 from "../../assets/images/MAINHEADER-02.webp";
7 7
 import mainImageMobile from "../../assets/images/mainwallpaper-mobile.jpg";
8
-import Carousel from 'react-material-ui-carousel'
8
+import "react-responsive-carousel/lib/styles/carousel.min.css"; // requires a loader
9
+import { Carousel } from 'react-responsive-carousel';
9 10
 
10 11
 const CarouselContainer = () => {
11 12
 
12 13
   const items = [
14
+    { img_src: mainImage2, alt_name: "Image 2" },
13 15
     { img_src: mainImage1, alt_name: "Image 1" },
14 16
     { img_src: mainImage2, alt_name: "Image 2" },
17
+    { img_src: mainImage1, alt_name: "Image 1" },
15 18
   ];
16 19
 
17 20
   return (
18 21
 
19
-    <Carousel indicators={false} autoPlay={true} interval={3000}>
22
+    <Carousel showStatus={false} autoPlay={true} infiniteLoop={true} interval={3000} showIndicators={false} stopOnHover={false}>
20 23
       {items?.map(({ img_src, alt_name }, index) => (
21 24
         <Box
22 25
           key={index}
@@ -25,13 +28,11 @@ const CarouselContainer = () => {
25 28
           alt={alt_name}
26 29
           sx={{
27 30
             width: "100%",
28
-            objectFit: "cover",
29
-            transition: "opacity 0.5s ease-in-out",
31
+            height: "100%",
30 32
             zIndex: 0,
31 33
           }}
32 34
         />
33 35
       ))}
34
-
35 36
     </Carousel>
36 37
 
37 38
 

Loading…
Cancel
Save