drop testcafe node back to 16
This commit is contained in:
+1
-1
@@ -67,7 +67,7 @@ build:
|
||||
- .next/cache/
|
||||
|
||||
test:e2e:
|
||||
image: circleci/node:20-browsers
|
||||
image: circleci/node:16-browsers
|
||||
needs: ["install", "build"]
|
||||
stage: test
|
||||
script:
|
||||
|
||||
@@ -3,11 +3,11 @@ import Image from "next/image";
|
||||
import styled, { keyframes, Keyframes } from "styled-components";
|
||||
|
||||
interface CrossFadeImagesProps {
|
||||
width: number | string;
|
||||
height: number | string;
|
||||
images: string[];
|
||||
presentationTime: number;
|
||||
fadeTime: number;
|
||||
width: number | string;
|
||||
height: number | string;
|
||||
images: string[];
|
||||
presentationTime: number;
|
||||
fadeTime: number;
|
||||
}
|
||||
|
||||
const AnimatedImage = styled(Image) <{ $delay: number }>`
|
||||
@@ -37,13 +37,13 @@ const Container = styled.div<{ $animation: Keyframes; $duration: number; }>`
|
||||
`;
|
||||
|
||||
const CrossFadeImages: React.FC<CrossFadeImagesProps> = ({
|
||||
width, height, images, presentationTime, fadeTime,
|
||||
width, height, images, presentationTime, fadeTime,
|
||||
}) => {
|
||||
const len = images.length;
|
||||
const SINGLE_IMAGE_TIME = presentationTime + fadeTime;
|
||||
const TOTAL_TIME = SINGLE_IMAGE_TIME * len;
|
||||
const len = images.length;
|
||||
const SINGLE_IMAGE_TIME = presentationTime + fadeTime;
|
||||
const TOTAL_TIME = SINGLE_IMAGE_TIME * len;
|
||||
|
||||
const animation = keyframes`
|
||||
const animation = keyframes`
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
@@ -62,29 +62,29 @@ const CrossFadeImages: React.FC<CrossFadeImagesProps> = ({
|
||||
}
|
||||
`;
|
||||
|
||||
const delays = images.map((_, idx) => idx * SINGLE_IMAGE_TIME).reverse();
|
||||
const delays = images.map((_, idx) => idx * SINGLE_IMAGE_TIME).reverse();
|
||||
|
||||
return (
|
||||
<Container
|
||||
$animation={animation}
|
||||
$duration={len * SINGLE_IMAGE_TIME}
|
||||
>
|
||||
{images.map((image, idx) => (
|
||||
// eslint-disable-next-line react/no-array-index-key
|
||||
<div key={idx} className={idx > 0 ? "not-first" : undefined}>
|
||||
<AnimatedImage
|
||||
src={image}
|
||||
objectFit="cover"
|
||||
alt=""
|
||||
width={width as any}
|
||||
height={height as any}
|
||||
layout="responsive"
|
||||
$delay={delays[idx]}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</Container>
|
||||
);
|
||||
return (
|
||||
<Container
|
||||
$animation={animation}
|
||||
$duration={len * SINGLE_IMAGE_TIME}
|
||||
>
|
||||
{images.map((image, idx) => (
|
||||
// eslint-disable-next-line react/no-array-index-key
|
||||
<div key={idx} className={idx > 0 ? "not-first" : undefined}>
|
||||
<AnimatedImage
|
||||
src={image}
|
||||
objectFit="cover"
|
||||
alt=""
|
||||
width={width as any}
|
||||
height={height as any}
|
||||
layout="responsive"
|
||||
$delay={delays[idx]}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</Container>
|
||||
);
|
||||
};
|
||||
|
||||
export default CrossFadeImages;
|
||||
|
||||
Reference in New Issue
Block a user