diff --git a/components/features.tsx b/components/features.tsx index 288fee6c..8041a71b 100644 --- a/components/features.tsx +++ b/components/features.tsx @@ -14,7 +14,7 @@ gsap.registerPlugin(ScrollTrigger); const TestAndStubGenerationImage = ({ isVisible }: { isVisible: boolean }) => (
-
+
{isVisible && tests and stub gen gif}
@@ -22,8 +22,8 @@ const TestAndStubGenerationImage = ({ isVisible }: { isVisible: boolean }) => ( const TestDuplicationImage = ({ isVisible }: { isVisible: boolean }) => (
-
- {isVisible && dedup image gif} +
+ {isVisible && dedup image gif}
); @@ -35,11 +35,11 @@ const TextSection = ({ btnDescription, btnLink, }: { - svg: any; + svg: React.ReactNode; heading: string; description: string; btnDescription?: string; - btnLink?: any; + btnLink: string; }) => { return (
@@ -75,7 +75,7 @@ export default function Features() { useEffect(() => { if (!inView) { - ScrollTrigger.getAll().forEach((trigger) => trigger.kill()); + ScrollTrigger.getAll().forEach((trigger) => {trigger.kill()}); setImage1Visible(false); setImage2Visible(false); return; @@ -113,8 +113,8 @@ export default function Features() { ScrollTrigger.create({ trigger: details[2], - start: "top 80%", - end: "bottom 25%", + start: "top 80%", + end: "top 70%", onEnter: () => { gsap.to(images[0], { opacity: 0, @@ -131,6 +131,22 @@ export default function Features() { }); setImage2Visible(true); }, + onLeave: () => { + gsap.to(images[1], { + opacity: 0, + y: 50, + duration: 0.8, + ease: "power2.out" + }); + setImage2Visible(false); + gsap.to(images[1], { // Add this to show image1 again + opacity: 1, + y: 0, + duration: 0.8, + ease: "power2.out", + }); + setImage2Visible(true); + }, onLeaveBack: () => { gsap.to(images[1], { opacity: 0, @@ -139,7 +155,6 @@ export default function Features() { ease: "power2.out", }); setImage2Visible(false); - gsap.to(images[0], { opacity: 1, y: 0, @@ -176,7 +191,7 @@ export default function Features() { trigger: ".content-container", start: "top top", end: "bottom bottom", - pin: ".heading-text", + pin: "top", }); details.forEach((detail: HTMLElement) => { @@ -194,7 +209,7 @@ export default function Features() { }); return () => { - ScrollTrigger.getAll().forEach((trigger) => trigger.kill()); + ScrollTrigger.getAll().forEach((trigger) => {trigger.kill()}); }; }, [inView]); @@ -203,78 +218,80 @@ export default function Features() { return ( <> -
-
-

+
+
+

Keploy for Developers

smart API testing, capture network calls and generate tests with stubs

-
-
-
- - - - } - heading={"Record Replay API Flows"} - description=" Record and replay complex, distributed API flows as mocks and stubs. It's like time machine for tests!" - btnDescription="Explore More" - btnLink="https://keploy.io/docs/keploy-explained/introduction/" - /> +
+
+
+
+ + + + } + heading={"Record Replay API Flows"} + description=" Record and replay complex, distributed API flows as mocks and stubs. It's like time machine for tests!" + btnDescription="Explore More" + btnLink="https://keploy.io/docs/keploy-explained/introduction/" + /> +
+
+ + + + } + heading={"Find Duplicate Tests"} + description="Find redundant tests that doesn't add to the test coverage. Automatically detect and remove duplicate tests, ideal for big-teams crowd-sourcing tests." + btnDescription="Explore More" + btnLink="https://keploy.io/docs/keploy-cloud/deduplication/" + /> +
+
+ + + + } + heading={"Works with JUnit, PyTest, Jest, Go-Test in CI/CD"} + description="Merge Keploy tests coverage with unit testing libraries for combined test coverage gating in CI/CD pipelines like Jenkins, Github Actions." + btnDescription="Explore More" + btnLink=" https://keploy.io/docs/server/sdk-installation/go/" + /> +
-
- - - - } - heading={"Find Duplicate Tests"} - description="Find redundant tests that doesn't add to the test coverage. Automatically detect and remove duplicate tests, ideal for big-teams crowd-sourcing tests." - btnDescription="Explore More" - btnLink="https://keploy.io/docs/keploy-cloud/deduplication/" - /> +
+ +
-
- - - - } - heading={"Works with JUnit, PyTest, Jest, Go-Test in CI/CD"} - description="Merge Keploy tests coverage with unit testing libraries for combined test coverage gating in CI/CD pipelines like Jenkins, Github Actions." - btnDescription="Explore More" - btnLink=" https://keploy.io/docs/server/sdk-installation/go/" - /> -
-
-
- -