add realm safety checks

This commit is contained in:
ppc
2024-08-13 21:51:06 +01:00
parent 84d12d4102
commit 4820c68e81
2 changed files with 20 additions and 2 deletions
+5 -1
View File
@@ -15,6 +15,10 @@ 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:
@@ -42,7 +46,7 @@ function CardEntry(props: { card: AMCard }) {
export default function CardManager({navigation}) {
const query = useQuery(AMCard);
const cards = useMemo(() => query.sorted("added", true), [query]);
const cards = useMemo(() => query.sorted("added", true).filter(x => x.isValid()), [query]);
const theme = useTheme();
+15 -1
View File
@@ -24,7 +24,21 @@ export default function ServerCardIn({route, navigation}) {
const [selectedCard, setSelectedCard] = useState<AMCard>(null);
const [cardInCompleted, setCardInCompleted] = useState<boolean>(null);
const unselectedCards = useMemo(() => cards.filter(x => !x._id.equals(selectedCard?._id)), [cards, selectedCard]);
const unselectedCards = useMemo(() => {
// protect against selected card being removed
switch (selectedCard?.isValid()) {
case true:
return cards.filter(x => !x._id.equals(selectedCard._id));
// clear out invalid
case false:
setSelectedCard(null);
return cards;
default:
return cards;
}
}, [cards, selectedCard]);
// server state
const [serverInfo, setServerInfo] = useState<AMServer>(null);