Update src/components/sections/blog/BlogCardTwo.tsx
This commit is contained in:
@@ -3,9 +3,6 @@
|
||||
import React, { useState } from "react";
|
||||
import { ChevronLeft, ChevronRight, ArrowRight } from "lucide-react";
|
||||
import TextBox from "@/components/Textbox";
|
||||
import { CardStack } from "@/components/card/CardStack";
|
||||
import type { CardStackProps } from "@/components/card/CardStack";
|
||||
import type { CardAnimationType } from "@/components/card/types";
|
||||
|
||||
export interface BlogCardTwoProps {
|
||||
blogs: Array<{
|
||||
@@ -22,7 +19,7 @@ export interface BlogCardTwoProps {
|
||||
}>;
|
||||
carouselMode?: "auto" | "buttons";
|
||||
uniformGridCustomHeightClasses?: string;
|
||||
animationType?: CardAnimationType;
|
||||
animationType?: string;
|
||||
title?: string;
|
||||
titleSegments?: Array<{ type: "text"; content: string } | { type: "image"; src: string; alt?: string }>;
|
||||
description?: string;
|
||||
@@ -69,26 +66,8 @@ const BlogCardTwo: React.FC<BlogCardTwoProps> = ({
|
||||
buttons,
|
||||
buttonAnimation,
|
||||
textboxLayout = "default", useInvertedBackground = false,
|
||||
ariaLabel = "Blog section", className = "", containerClassName = "", cardClassName = "", imageWrapperClassName = "", imageClassName = "", categoryClassName = "", cardTitleClassName = "", excerptClassName = "", authorContainerClassName = "", authorAvatarClassName = "", authorNameClassName = "", dateClassName = "", textBoxTitleClassName = "", textBoxTitleImageWrapperClassName = "", textBoxTitleImageClassName = "", textBoxDescriptionClassName = "", gridClassName = "", carouselClassName = "", controlsClassName = "", textBoxClassName = "", textBoxTagClassName = "", textBoxButtonContainerClassName = "", textBoxButtonClassName = "", textBoxButtonTextClassName = ""}) => {
|
||||
ariaLabel = "Blog section", className = "", containerClassName = "", cardClassName = "", imageWrapperClassName = "", imageClassName = "", categoryClassName = "", cardTitleClassName = "", excerptClassName = "", authorContainerClassName = "", authorAvatarClassName = "", authorNameClassName = "", dateClassName = "", textBoxTitleClassName = "", textBoxTitleImageWrapperClassName = "", textBoxTitleImageClassName = "", textBoxDescriptionClassName = "", gridClassName = "", carouselClassName = "", controlsClassName = "", textBoxClassName = "", textBoxTagClassName = "", textBoxButtonContainerClassName = "", textBoxButtonClassName = "", textBoxButtonTextClassName = "" }) => {
|
||||
const [currentIndex, setCurrentIndex] = useState(0);
|
||||
const shouldCarousel = blogs.length > 4;
|
||||
const mode = shouldCarousel ? "buttons" : "auto";
|
||||
|
||||
const cardStackProps: Omit<CardStackProps, "children"> = {
|
||||
gridVariant: "uniform-all-items-equal", uniformGridCustomHeightClasses,
|
||||
animationType: animationType as CardAnimationType,
|
||||
carouselMode: mode,
|
||||
carouselThreshold: 4,
|
||||
currentIndex: shouldCarousel ? currentIndex : undefined,
|
||||
onCarouselChange: shouldCarousel ? setCurrentIndex : undefined,
|
||||
ariaLabel,
|
||||
className,
|
||||
containerClassName,
|
||||
cardClassName,
|
||||
gridClassName,
|
||||
carouselClassName,
|
||||
controlsClassName,
|
||||
};
|
||||
|
||||
const blogCards = blogs.map((blog) => (
|
||||
<div
|
||||
@@ -184,9 +163,9 @@ const BlogCardTwo: React.FC<BlogCardTwoProps> = ({
|
||||
)}
|
||||
|
||||
<div className="max-w-content-width mx-auto px-4">
|
||||
<CardStack {...cardStackProps}>
|
||||
<div className={`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 ${gridClassName}`}>
|
||||
{blogCards}
|
||||
</CardStack>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user