import * as Clipboard from 'expo-clipboard'; import {FlatList, View} from "react-native"; import React, {useCallback, useMemo} from "react"; import {AMCard} from "../models/AMCard"; import {AimeCard} from "../components/AimeCard"; import RealmContext from "../models/RealmContext"; import ContextMenu from "react-native-context-menu-view"; import {EmptyStatePlaceholder} from "../components/EmptyStatePlaceholder"; import {CreditCard, Plus} from "lucide-react-native"; import {Button, useTheme} from "react-native-paper"; const {useQuery, useRealm} = RealmContext; function CardEntry(props: { card: AMCard }) { const realm = useRealm(); const callback = useCallback(async (index: number) => { if (!props.card.isValid()) { return; } switch (index) { // copy card no case 0: await Clipboard.setStringAsync(props.card.code); break; case 1: realm.write(() => { realm.delete(props.card); }); break; } }, [realm, props.card]); return ( callback(e.nativeEvent?.index)} actions={[ {title: "Copy Card Number", systemIcon: "doc.on.doc"}, {title: "Delete Card", destructive: true, systemIcon: "trash"}]}> ); } export default function CardManager({navigation}) { const query = useQuery(AMCard); const cards = useMemo(() => query.sorted("added", true), [query]); const theme = useTheme(); if (!cards.length) { return ( }/> ) } return ( i._id.toString()} contentContainerStyle={{paddingBottom: 40}} ItemSeparatorComponent={() => } renderItem={i => }/> ) }