diff --git a/src/components/sections/team/TeamCardTwo.tsx b/src/components/sections/team/TeamCardTwo.tsx index d3bb400..208590b 100644 --- a/src/components/sections/team/TeamCardTwo.tsx +++ b/src/components/sections/team/TeamCardTwo.tsx @@ -1,240 +1,57 @@ -"use client"; +import React from 'react'; +import { CardStack } from '@/components/cardStack/CardStack'; -import { memo } from "react"; -import CardStack from "@/components/cardStack/CardStack"; -import MediaContent from "@/components/shared/MediaContent"; -import { cls } from "@/lib/utils"; -import type { LucideIcon } from "lucide-react"; -import type { ButtonConfig, GridVariant, CardAnimationType, TitleSegment, ButtonAnimationType } from "@/components/cardStack/types"; -import type { TextboxLayout, InvertedBackground } from "@/providers/themeProvider/config/constants"; - -type TeamCardTwoGridVariant = Exclude; - -type SocialLink = { - icon: LucideIcon; - url: string; -}; - -type TeamMember = { +interface TeamCardTwoProps { + members: Array<{ id: string; name: string; role: string; - description: string; imageSrc?: string; - videoSrc?: string; - imageAlt?: string; - videoAriaLabel?: string; - socialLinks?: SocialLink[]; -}; - -interface TeamCardTwoProps { - members: TeamMember[]; - carouselMode?: "auto" | "buttons"; - gridVariant: TeamCardTwoGridVariant; - uniformGridCustomHeightClasses?: string; - animationType: CardAnimationType; - title: string; - titleSegments?: TitleSegment[]; - description: string; - tag?: string; - tagIcon?: LucideIcon; - tagAnimation?: ButtonAnimationType; - buttons?: ButtonConfig[]; - buttonAnimation?: ButtonAnimationType; - textboxLayout: TextboxLayout; - useInvertedBackground: InvertedBackground; - ariaLabel?: string; - className?: string; - containerClassName?: string; - cardClassName?: string; - textBoxTitleClassName?: string; - textBoxTitleImageWrapperClassName?: string; - textBoxTitleImageClassName?: string; - textBoxDescriptionClassName?: string; - imageClassName?: string; - overlayClassName?: string; - nameClassName?: string; - roleClassName?: string; - memberDescriptionClassName?: string; - socialLinksClassName?: string; - socialIconClassName?: string; - gridClassName?: string; - carouselClassName?: string; - controlsClassName?: string; - textBoxClassName?: string; - textBoxTagClassName?: string; - textBoxButtonContainerClassName?: string; - textBoxButtonClassName?: string; - textBoxButtonTextClassName?: string; + }>; + title: string; + description: string; + gridVariant?: string; + gridRowsClassName?: string; + animationType?: string; + textboxLayout?: string; + useInvertedBackground?: boolean; + [key: string]: any; } -interface TeamMemberCardProps { - member: TeamMember; - cardClassName?: string; - imageClassName?: string; - overlayClassName?: string; - nameClassName?: string; - roleClassName?: string; - memberDescriptionClassName?: string; - socialLinksClassName?: string; - socialIconClassName?: string; -} +const TeamCardTwo: React.FC = ({ + members, + title, + description, + gridVariant = 'uniform-all-items-equal', + gridRowsClassName = '', + animationType = 'slide-up', + textboxLayout = 'default', + useInvertedBackground = false, + ...props +}) => { + const memberItems = members.map((member) => ( +
+ {member.imageSrc && ( + {member.name} + )} +

{member.name}

+

{member.role}

+
+ )); -const TeamMemberCard = memo(({ - member, - cardClassName = "", - imageClassName = "", - overlayClassName = "", - nameClassName = "", - roleClassName = "", - memberDescriptionClassName = "", - socialLinksClassName = "", - socialIconClassName = "", -}: TeamMemberCardProps) => { - return ( -
- - -
-
-

- {member.name} -

-
-

- {member.role} -

-
-
- -

- {member.description} -

- - {member.socialLinks && member.socialLinks.length > 0 && ( -
- {member.socialLinks.map((link, index) => ( - - - - ))} -
- )} -
-
- ); -}); - -TeamMemberCard.displayName = "TeamMemberCard"; - -const TeamCardTwo = ({ - members, - carouselMode = "buttons", - gridVariant, - uniformGridCustomHeightClasses = "min-h-95 2xl:min-h-105", - animationType, - title, - titleSegments, - description, - tag, - tagIcon, - tagAnimation, - buttons, - buttonAnimation, - textboxLayout, - useInvertedBackground, - ariaLabel = "Team section", - className = "", - containerClassName = "", - cardClassName = "", - textBoxTitleClassName = "", - textBoxTitleImageWrapperClassName = "", - textBoxTitleImageClassName = "", - textBoxDescriptionClassName = "", - imageClassName = "", - overlayClassName = "", - nameClassName = "", - roleClassName = "", - memberDescriptionClassName = "", - socialLinksClassName = "", - socialIconClassName = "", - gridClassName = "", - carouselClassName = "", - controlsClassName = "", - textBoxClassName = "", - textBoxTagClassName = "", - textBoxButtonContainerClassName = "", - textBoxButtonClassName = "", - textBoxButtonTextClassName = "", -}: TeamCardTwoProps) => { - const customGridRows = (gridVariant === "bento-grid" || gridVariant === "bento-grid-inverted") - ? "md:grid-rows-[22rem_22rem] 2xl:grid-rows-[26rem_26rem]" - : undefined; - - return ( - - {members.map((member, index) => ( - - ))} - - ); + return ( + + {memberItems} + + ); }; -TeamCardTwo.displayName = "TeamCardTwo"; - -export default TeamCardTwo; +export default TeamCardTwo; \ No newline at end of file