Skip to content

Commit 7e3f945

Browse files
committed
animation fix
Signed-off-by: HIMANSHU RAI <[email protected]>
1 parent ca6f78a commit 7e3f945

File tree

1 file changed

+40
-12
lines changed

1 file changed

+40
-12
lines changed

src/sections/Home/Partners-home/index.js

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
2-
import React from "react";
1+
import React, { useState, useEffect } from "react";
32
import { Container, Row } from "../../../reusecore/Layout";
43
import SectionTitle from "../../../reusecore/SectionTitle";
54
import PartnerItemWrapper from "./partnerSection.style";
@@ -9,7 +8,7 @@ import Slider from "react-slick";
98

109
const settings = {
1110
initialSlide: 1,
12-
lazyLoad: true,
11+
lazyLoad: false, // disable slick's lazyLoad
1312
arrows: false,
1413
dots: false,
1514
infinite: true,
@@ -28,6 +27,23 @@ const settings = {
2827
};
2928

3029
const Projects = () => {
30+
const [allImagesLoaded, setAllImagesLoaded] = useState(false);
31+
32+
useEffect(() => {
33+
const imagePromises = partners.map(partner => {
34+
return new Promise((resolve, reject) => {
35+
const img = new Image();
36+
img.src = partner.imageLink;
37+
img.onload = resolve;
38+
img.onerror = reject;
39+
});
40+
});
41+
42+
Promise.all(imagePromises)
43+
.then(() => setAllImagesLoaded(true))
44+
.catch(() => setAllImagesLoaded(true)); // still render even if some fail
45+
}, []);
46+
3147
return (
3248
<PartnerItemWrapper>
3349
<Container>
@@ -41,15 +57,27 @@ const Projects = () => {
4157
</SectionTitle>
4258
</Row>
4359
</Container>
44-
<Slider {...settings}>
45-
{partners.map((partner, index) => (
46-
<Link className="partner-card" to={partner.imageRoute} key={index}>
47-
<div className={partner.innerDivStyle}>
48-
<img className="partner-image" id={partner.name} loading="lazy" src={partner.imageLink} alt={partner.name} width={partner.imageWidth} height={partner.imageHeight} />
49-
</div>
50-
</Link>
51-
))}
52-
</Slider>
60+
61+
{allImagesLoaded ? (
62+
<Slider {...settings}>
63+
{partners.map((partner, index) => (
64+
<Link className="partner-card" to={partner.imageRoute} key={index}>
65+
<div className={partner.innerDivStyle}>
66+
<img
67+
className="partner-image"
68+
id={partner.name}
69+
src={partner.imageLink}
70+
alt={partner.name}
71+
width={partner.imageWidth}
72+
height={partner.imageHeight}
73+
/>
74+
</div>
75+
</Link>
76+
))}
77+
</Slider>
78+
) : (
79+
<div style={{ height: "100px", textAlign: "center" }}>Loading...</div>
80+
)}
5381
</PartnerItemWrapper>
5482
);
5583
};

0 commit comments

Comments
 (0)