diff --git a/amnet-native/app/ServerCardIn.tsx b/amnet-native/app/ServerCardIn.tsx index f5e26dd..90191dc 100644 --- a/amnet-native/app/ServerCardIn.tsx +++ b/amnet-native/app/ServerCardIn.tsx @@ -1,15 +1,15 @@ import {BSON} from "realm"; -import {useSafeAreaInsets} from "react-native-safe-area-context"; import React, {useCallback, useEffect, useLayoutEffect, useMemo, useState} from "react"; import {ActivityIndicator, Button, Paragraph, Title, useTheme} from "react-native-paper"; -import {Alert, RefreshControl, ScrollView, Share, StyleSheet, TouchableOpacity, View} from "react-native"; +import {Alert, RefreshControl, ScrollView, Share, StyleSheet, Text, TouchableOpacity, View} from "react-native"; import { CircleCheck, CircleDot, CreditCard, Nfc, Plus, SmartphoneNfcIcon, - Share as ShareIcon, WifiOff, TvMinimalPlay + Share as ShareIcon, WifiOff, TvMinimalPlay, Star } from "lucide-react-native"; import {EmptyStatePlaceholder} from "../components/EmptyStatePlaceholder"; import {AMUIStatusAlert} from "../components/AMUIStatusAlert"; +import {AMUICardDetail} from "../components/AMUICard"; import {AimeCard} from "../components/AimeCard"; import RealmContext from "../models/RealmContext"; @@ -36,6 +36,7 @@ export default function ServerCardIn({route, navigation}) { query: q => q.sorted("lastUsed", true) }); + const [defaultCard, setDefaultCard] = useState(null); const [selectedCard, setSelectedCard] = useState(null); const [cardInCompleted, setCardInCompleted] = useState(null); @@ -90,6 +91,10 @@ export default function ServerCardIn({route, navigation}) { return; } + if (defaultCard?.isValid() === false) { + setDefaultCard(null); + } + // select a card if there's none selected let setCard = selectedCard?.isValid() !== true; if (setCard) { @@ -108,6 +113,7 @@ export default function ServerCardIn({route, navigation}) { if (setCard) { // only reselect card if it was set by us previously setSelectedCard(cards.find(x => x.lastUsedGameId === server.gameId) || cards[0]); + setDefaultCard(selectedCard); } } else { setConnectionTestResult(false); @@ -135,8 +141,12 @@ export default function ServerCardIn({route, navigation}) { selectedCard.lastUsedGameId = server.gameId; }); + // set default card if there's a game id provided by the server + if (server.gameId) { + setDefaultCard(selectedCard); + } + setCardInCompleted(r); - setSelectedCard(selectedCard); }).catch(() => { setCardInCompleted(false); }).finally(() => { @@ -174,7 +184,9 @@ export default function ServerCardIn({route, navigation}) { {selectedCard ? <> }/> + actionIcon={}> + {selectedCard === defaultCard && } +