diff --git a/amnet-native/app/ServerCardIn.tsx b/amnet-native/app/ServerCardIn.tsx index 9eebe84..cbfaad9 100644 --- a/amnet-native/app/ServerCardIn.tsx +++ b/amnet-native/app/ServerCardIn.tsx @@ -27,7 +27,13 @@ import {AMServer} from "../models/AMServer"; import {AMCard} from "../models/AMCard"; import {felicaCardReadAsync, icCard0008Number, ICType} from "../lib/iccard"; -import {AMServerConnectionInfo, AMServerInstanceMetrics, fetchServerInfo, getGameName, performCardIn} from "amnet-shared"; +import { + AMServerConnectionInfo, + AMServerInstanceMetrics, + fetchServerInfo, + getGameName, + performCardIn +} from "amnet-shared"; import ObjectId = BSON.ObjectId; @@ -149,7 +155,10 @@ export default function ServerCardIn({route, navigation}) { const abortController = new AbortController(); - performCardIn(server, {cardId: selectedCard.code, physicalCardIDm: selectedCard.physicalCardData?.cardIDm ?? undefined}, abortController.signal).then(r => { + performCardIn(server, { + cardId: selectedCard.code, + physicalCardIDm: selectedCard.physicalCardData?.cardIDm ?? undefined + }, abortController.signal).then(r => { const now = new Date(); realm.write(() => { server.lastUsed = now; @@ -175,6 +184,14 @@ export default function ServerCardIn({route, navigation}) { return; } + const savedCard = cards.find(x => x.physicalCardData?.cardIDm === card.idm); + + if (savedCard) { + setUserSelectedCard(savedCard); + cardInCallback(); + return; + } + setCardInCompleted(false); const cardId = card.type !== ICType.Amusement ? icCard0008Number(card.idm) : card.accessCode; @@ -211,7 +228,8 @@ export default function ServerCardIn({route, navigation}) { } return ( - }> + }> @@ -231,17 +249,18 @@ export default function ServerCardIn({route, navigation}) { contentStyle={{flexDirection: 'row-reverse'}} mode={serverConnectionSuccess ? "contained" : "outlined"} buttonColor={cardInCompleted === false ? "red" : "green"} - icon={() => }> + icon={() => }> {cardInCompleted === null ? "Card In" : cardInCompleted ? "Card In Success" : "Failed"} {nfcSupported === true && ( }/> + icon={() => }/> )}