Add ResolverCard hover

This commit is contained in:
thesn10
2026-07-03 13:00:10 +02:00
parent 48d6a11fb8
commit da78b8c0a2

View File

@@ -1,7 +1,9 @@
import type { JSX } from "react"; import type { JSX } from "react";
import { useState } from "react";
import { Pressable, View } from "react-native"; import { Pressable, View } from "react-native";
import { Typography } from "heroui-native"; import { Typography } from "heroui-native";
import type { Resolver } from "@/data/mock"; import type { Resolver } from "@/data/mock";
import { MonoText } from "@/components/MonoText";
interface ResolverCardProps { interface ResolverCardProps {
resolver: Resolver; resolver: Resolver;
@@ -10,20 +12,25 @@ interface ResolverCardProps {
} }
export function ResolverCard({ resolver, isSelected, onSelect }: ResolverCardProps): JSX.Element { export function ResolverCard({ resolver, isSelected, onSelect }: ResolverCardProps): JSX.Element {
const [isHovered, setIsHovered] = useState(false);
const borderClass = isSelected ? "border-accent" : isHovered ? "border-border-secondary" : "border-border";
const bgClass = isSelected ? "bg-accent/10" : "bg-surface-secondary";
return ( return (
<Pressable <Pressable
onPress={onSelect} onPress={onSelect}
className={`mb-1.5 rounded-xl border p-3 ${ onHoverIn={() => setIsHovered(true)}
isSelected ? "border-accent bg-accent/10" : "border-border bg-transparent" onHoverOut={() => setIsHovered(false)}
}`} className={`mb-1.5 rounded-xl border p-3 ${borderClass} ${bgClass}`}
> >
<View className="flex-row items-center justify-between"> <View className="flex-row items-center justify-between">
<Typography type="body-sm" weight="semibold" className={isSelected ? "text-accent" : undefined}> <Typography type="body-sm" weight="semibold" className={isSelected ? "text-accent" : undefined}>
{resolver.name} {resolver.name}
</Typography> </Typography>
<Typography type="body-sm" weight="semibold" className={isSelected ? "text-accent" : undefined}> <MonoText weight="semibold" className={isSelected ? "text-accent" : undefined}>
{resolver.fee} {resolver.fee}
</Typography> </MonoText>
</View> </View>
<Typography type="body-xs" color="muted" className="mt-0.5"> <Typography type="body-xs" color="muted" className="mt-0.5">
{resolver.type} · {resolver.wins}% buyer-favorable {resolver.type} · {resolver.wins}% buyer-favorable