fix card scanning using previously selected card

This commit is contained in:
ppc
2025-01-15 11:25:30 +00:00
parent 16c0ff54c6
commit bc48917fe8
+9 -8
View File
@@ -150,20 +150,21 @@ export default function ServerCardIn({route, navigation}) {
}
}, [serverId, serverReloadCounter, realm]);
const cardInCallback = useCallback(() => {
const cardInCallback = useCallback((card: AMCard) => {
setCardInCompleted(false);
const abortController = new AbortController();
performCardIn(server, {
cardId: selectedCard.code,
physicalCardIDm: selectedCard.physicalCardData?.cardIDm ?? undefined
cardId: card.code,
physicalCardIDm: card.physicalCardData?.cardIDm ?? undefined
}, abortController.signal).then(r => {
const now = new Date();
realm.write(() => {
server.lastUsed = now;
selectedCard.lastUsed = now;
selectedCard.lastUsedGameId = server.gameId;
card.lastUsed = now;
card.lastUsedGameId = server.gameId;
});
setCardInCompleted(r);
@@ -175,7 +176,7 @@ export default function ServerCardIn({route, navigation}) {
setTimeout(() => abortController.abort(), 5000);
return () => abortController.abort();
}, [server, selectedCard]);
}, [server]);
const performPhysicalCardIn = useCallback(async () => {
const card = await felicaCardReadAsync();
@@ -188,7 +189,7 @@ export default function ServerCardIn({route, navigation}) {
if (savedCard) {
setUserSelectedCard(savedCard);
cardInCallback();
cardInCallback(savedCard);
return;
}
@@ -244,11 +245,11 @@ export default function ServerCardIn({route, navigation}) {
<View style={{display: "flex", flexDirection: "row", gap: 5}}>
<Button style={{flex: 1}}
textColor="white"
onPress={cardInCallback}
disabled={disableCardIn}
contentStyle={{flexDirection: 'row-reverse'}}
mode={serverConnectionSuccess ? "contained" : "outlined"}
buttonColor={cardInCompleted === false ? "red" : "green"}
onPress={() => cardInCallback(selectedCard)}
icon={() => <SquareArrowOutUpRight color={disableCardIn ? "gray" : "white"}
size={18}/>}>
{cardInCompleted === null ? "Card In" : cardInCompleted ? "Card In Success" : "Failed"}