fix bad selection logic

This commit is contained in:
ppc
2024-09-28 09:22:43 +01:00
parent 4702052cc4
commit 4b6037fe24
+13 -8
View File
@@ -110,10 +110,16 @@ export default function ServerCardIn({route, navigation}) {
Object.keys(r).forEach(x => server[x] = r[x]);
});
if (setCard) {
// only reselect card if it was set by us previously
setSelectedCard(cards.length ? (cards.find(x => x.lastUsedGameId === server.gameId) || cards[0]) : null);
setDefaultCard(selectedCard);
if (setCard && cards.length) {
const matchingGameCard = cards.find(x => x.lastUsedGameId === server.gameId);
setSelectedCard(matchingGameCard || cards[0]);
if (matchingGameCard) {
setDefaultCard(matchingGameCard);
}
} else {
setSelectedCard(null);
setDefaultCard(null);
}
} else {
setConnectionTestResult(false);
@@ -185,7 +191,7 @@ export default function ServerCardIn({route, navigation}) {
<AimeCard actionDisabled
card={selectedCard}
actionIcon={<CircleCheck color="green" size={24}/>}>
{selectedCard === defaultCard && <DefaultCardDetail/>}
{defaultCard?.code == selectedCard.code && <DefaultCardDetail/>}
</AimeCard>
<Button textColor="white"
onPress={cardInCallback}
@@ -225,11 +231,10 @@ export default function ServerCardIn({route, navigation}) {
key={card._id.toHexString()}
actionIcon={<CircleDot color={theme.colors.tertiary} size={24}/>}
onPress={() => setSelectedCard(card)}>
{defaultCard === selectedCard && <DefaultCardDetail/>}
{defaultCard?.code == card.code && <DefaultCardDetail/>}
</AimeCard>))
: <View style={styles.emptyPlaceholderView}>
<EmptyStatePlaceholder message="No additional cards"
icon={<SmartphoneNfcIcon color="gray"/>}/>
<EmptyStatePlaceholder message="No additional cards" icon={<SmartphoneNfcIcon color="gray"/>}/>
</View>}
</View>)}
</ScrollView>