diff --git a/app/src/components/ListingCard.tsx b/app/src/components/ListingCard.tsx index 13a45c4..ca8d878 100644 --- a/app/src/components/ListingCard.tsx +++ b/app/src/components/ListingCard.tsx @@ -1,11 +1,14 @@ import type { GestureResponderEvent } from "react-native"; import type { JSX } from "react"; -import { Pressable, View } from "react-native"; +import { useState } from "react"; +import { Pressable, StyleSheet, View } from "react-native"; import { useRouter } from "expo-router"; import { Button, Separator, Surface, Typography } from "heroui-native"; +import Svg, { Defs, RadialGradient, Rect, Stop } from "react-native-svg"; import type { Product } from "@/data/mock"; import { availabilityInfo } from "@/lib/status"; import { StatusChip } from "@/components/StatusChip"; +import { MonoText } from "@/components/MonoText"; import { useModals } from "@/state/modals"; interface ListingCardProps { @@ -13,9 +16,24 @@ interface ListingCardProps { variant?: "list" | "grid"; } +function CardHighlightOverlay({ gradientId }: { gradientId: string }): JSX.Element { + return ( + + + + + + + + + + ); +} + export function ListingCard({ product, variant = "grid" }: ListingCardProps): JSX.Element { const router = useRouter(); const { requestBuy } = useModals(); + const [isHovered, setIsHovered] = useState(false); const availability = availabilityInfo(product.qty); const isOut = product.qty === 0; @@ -28,8 +46,17 @@ export function ListingCard({ product, variant = "grid" }: ListingCardProps): JS if (variant === "list") { return ( - - + setIsHovered(true)} + onHoverOut={() => setIsHovered(false)} + > + - - - {product.emoji} + setIsHovered(true)} + onHoverOut={() => setIsHovered(false)} + className="w-full p-1.5 md:w-1/2 lg:w-1/4" + > + + + + {product.emoji} - - {product.name} - - - {product.seller} - - - - {product.price} + + + {product.name} + + {product.seller} + + + {product.price} +