diff --git a/src/components/CarCard.tsx b/src/components/CarCard.tsx new file mode 100644 index 0000000..f7b032f --- /dev/null +++ b/src/components/CarCard.tsx @@ -0,0 +1,107 @@ +import React, { FC } from "react"; +import { DEMO_CAR_LISTINGS } from "@/data/listings"; +import { CarDataType } from "@/data/types"; +import StartRating from "@/components/StartRating"; +import BtnLikeIcon from "@/components/BtnLikeIcon"; +import SaleOffBadge from "@/components/SaleOffBadge"; +import Badge from "@/shared/Badge"; +import Image from "next/image"; +import Link from "next/link"; + +export interface CarCardProps { + className?: string; + data?: CarDataType; + size?: "default" | "small"; +} + +const DEMO_DATA: CarDataType = DEMO_CAR_LISTINGS[0]; + +const CarCard: FC = ({ + size = "default", + className = "", + data = DEMO_DATA, +}) => { + const { + featuredImage, + title, + href, + like, + saleOff, + isAds, + price, + reviewStart, + reviewCount, + seats, + gearshift, + } = data; + + const renderSliderGallery = () => { + return ( +
+
+ car +
+ + {saleOff && } +
+ ); + }; + + const renderContent = () => { + return ( +
+
+
+ {isAds && } +

+ {title} +

+
+
+ {seats} seats + - + {gearshift} +
+
+
+
+ + {price} + {` `} + {size === "default" && ( + + /day + + )} + + +
+
+ ); + }; + + return ( +
+ + {renderSliderGallery()} + {renderContent()} + +
+ ); +}; + +export default CarCard;