diff --git a/amnet-native/app/CardManager.tsx b/amnet-native/app/CardManager.tsx
index 7f788d2..1029579 100644
--- a/amnet-native/app/CardManager.tsx
+++ b/amnet-native/app/CardManager.tsx
@@ -26,12 +26,12 @@ function CardEntry(props: { card: AMCard, navigation: any }) {
return;
// edit card
- case "1":
+ case "1,0":
props.navigation.navigate('add-card', {cardId: props.card.code, cardName: props.card.name});
return;
// remove card
- case "2,0":
+ case "1,1":
realm.write(() => realm.delete(props.card));
return;
}
@@ -42,11 +42,12 @@ function CardEntry(props: { card: AMCard, navigation: any }) {
onPress={e => callback(e.nativeEvent?.indexPath)}
actions={[
{title: "Copy Card Number", systemIcon: "doc.on.doc"},
- {title: "Edit Card", systemIcon: "square.and.pencil"},
{
title: "",
inlineChildren: true,
- actions: [{title: "Delete Card", destructive: true, systemIcon: "trash"}]
+ actions: [
+ {title: "Edit Card", systemIcon: "square.and.pencil"},
+ {title: "Delete Card", destructive: true, systemIcon: "trash"}]
}]}>
diff --git a/amnet-native/app/ServerCardIn.tsx b/amnet-native/app/ServerCardIn.tsx
index 28fa3df..9906a26 100644
--- a/amnet-native/app/ServerCardIn.tsx
+++ b/amnet-native/app/ServerCardIn.tsx
@@ -57,7 +57,7 @@ export default function ServerCardIn({route, navigation}) {
navigation.setOptions({
title: server.serverName,
headerRight: () => (
- Share.share({url: `http://card.ppc.moe/#/servers/add?address=${encodeURIComponent(server.serverAddress)}`})}>
+ Share.share({url: server.shareUrl})}>
)
diff --git a/amnet-native/app/ServerManager.tsx b/amnet-native/app/ServerManager.tsx
index 2d9a201..03efac8 100644
--- a/amnet-native/app/ServerManager.tsx
+++ b/amnet-native/app/ServerManager.tsx
@@ -1,7 +1,7 @@
import {Button, Paragraph, useTheme} from "react-native-paper";
import {Globe, History, Plus, ServerOff} from "lucide-react-native";
-import {FlatList, NativeSyntheticEvent, Text, View} from "react-native";
import React, {useCallback, useLayoutEffect, useMemo, useState} from "react";
+import {FlatList, NativeSyntheticEvent, Share, Text, View} from "react-native";
import ContextMenu, {ContextMenuOnPressNativeEvent} from "react-native-context-menu-view";
import {EmptyStatePlaceholder} from "../components/EmptyStatePlaceholder";
import {AMUICard, AMUICardDetail} from "../components/AMUICard";
@@ -21,23 +21,32 @@ function ServerCard(props: { server: AMServer, navigation: any }) {
}, [props.navigation, props.server]);
const pageContextMenuCallback = useCallback((action: NativeSyntheticEvent) => {
- switch (action.nativeEvent.index) {
- case 0:
+ switch (action.nativeEvent.indexPath.toString()) {
+ case "0":
pageCallback();
- break;
+ return;
- case 1:
- realm.write(() => {
- realm.delete(props.server);
- });
- break;
+ case "1,0":
+ Share.share({url: props.server.shareUrl});
+ return;
+
+ case "1,1":
+ realm.write(() => realm.delete(props.server));
+ return;
}
}, [realm, props.server]);
return (
diff --git a/amnet-native/models/AMServer.ts b/amnet-native/models/AMServer.ts
index 59ad780..7b16bce 100644
--- a/amnet-native/models/AMServer.ts
+++ b/amnet-native/models/AMServer.ts
@@ -12,6 +12,10 @@ export class AMServer extends Realm.Object implements AMServerInfoResp
lastUsed: Date;
createdAt: Date;
+
+ get shareUrl() {
+ return `http://card.ppc.moe/#/servers/add?address=${encodeURIComponent(this.serverAddress)}`;
+ }
static generate(serverAddress: string) {
return {