Compare commits

...

6 Commits

Author SHA1 Message Date
kudinDmitriyUp
61d5307458 Bob AI: Fix carousel skipping images by removing state setter from u 2026-06-03 13:54:36 +00:00
fede3905da Merge version_6_1780494606830 into main
Merge version_6_1780494606830 into main
2026-06-03 13:52:04 +00:00
kudinDmitriyUp
64c7aa89fb Bob AI: i want each images to have their own progress bar and they a 2026-06-03 13:51:28 +00:00
bc52183401 Merge version_5_1780494437120 into main
Merge version_5_1780494437120 into main
2026-06-03 13:49:07 +00:00
kudinDmitriyUp
1f33c04279 Bob AI (stub): change the hero section so each image in the carousel has it 2026-06-03 13:49:01 +00:00
5cb557e570 Merge version_4_1780494288262 into main
Merge version_4_1780494288262 into main
2026-06-03 13:46:48 +00:00
2 changed files with 23 additions and 10 deletions

View File

@@ -13,6 +13,9 @@ import SocialProofSection from './HomePage/sections/SocialProof';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
{/* webild-stub @2026-06-03T13:49:00.110Z: change the hero section so each image in the carousel has its own progress bar, and all progress bars are visible at the same time */}
export default function HomePage(): React.JSX.Element {
return (
<>

View File

@@ -24,16 +24,20 @@ export default function HeroSection(): React.JSX.Element {
const timer = setInterval(() => {
setProgress((prev) => {
if (prev >= 100) {
setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length);
return 0;
}
if (prev >= 100) return 100;
return prev + step;
});
}, updateInterval);
return () => clearInterval(timer);
}, [images.length]);
}, []);
useEffect(() => {
if (progress >= 100) {
setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length);
setProgress(0);
}
}, [progress, images.length]);
return (
<div id="hero" data-webild-section="hero" className="w-full pt-32 pb-16 px-4 md:px-8 bg-background">
@@ -67,11 +71,17 @@ export default function HeroSection(): React.JSX.Element {
</div>
))}
</div>
<div className="absolute bottom-0 left-0 h-1.5 bg-white/30 w-full z-20">
<div
className="h-full bg-white transition-all duration-75 ease-linear"
style={{ width: `${progress}%` }}
/>
<div className="absolute bottom-6 left-1/2 -translate-x-1/2 flex gap-3 w-full max-w-md px-4 z-20">
{images.map((_, index) => (
<div key={index} className="h-1.5 flex-1 bg-white/30 rounded-full overflow-hidden cursor-pointer" onClick={() => { setCurrentIndex(index); setProgress(0); }}>
<div
className="h-full bg-white transition-all duration-75 ease-linear"
style={{
width: index === currentIndex ? `${progress}%` : (index < currentIndex ? '100%' : '0%')
}}
/>
</div>
))}
</div>
</div>
</div>