mirror of
https://gitea.tendokyu.moe/ppc/amnet.git
synced 2026-09-26 16:18:17 +03:00
34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
import {useMemo} from "react";
|
|
import {Text} from "react-native";
|
|
import {CreditCard, History} from "lucide-react-native";
|
|
|
|
import TimeAgo from "./TimeAgo";
|
|
import {AMCardData} from "../models/AMCard";
|
|
import {AMUICard, AMUICardActionProps, AMUICardDetail} from "./AMUICard";
|
|
|
|
export interface AimeCardProps extends AMUICardActionProps {
|
|
card: AMCardData,
|
|
showFullCardNumber?: boolean
|
|
}
|
|
|
|
export function AimeCard(props: AimeCardProps) {
|
|
const displayedCardNumber = useMemo(() => props.showFullCardNumber
|
|
? props.card.code.match(/.{1,4}/g)?.join(" ")
|
|
: `•••• ${props.card.code.substring(props.card.code.length - 4)}`,
|
|
[props.showFullCardNumber, props.card.code]);
|
|
|
|
return (
|
|
<AMUICard title={props.card.name} {...props}>
|
|
<AMUICardDetail>
|
|
<CreditCard size={18} color="gray"/>
|
|
<Text style={{color: "gray", fontFamily: "JetBrainsMono_400Regular"}}>{displayedCardNumber}</Text>
|
|
</AMUICardDetail>
|
|
{props.card.lastUsed && (
|
|
<AMUICardDetail>
|
|
<History size={18} color="gray"/>
|
|
<TimeAgo style={{color: "gray"}} dateTo={props.card.lastUsed}/>
|
|
</AMUICardDetail>
|
|
)}
|
|
</AMUICard>
|
|
);
|
|
} |