From e0ba6c04f279e2400e8d9a322682db0a1dc7d4f9 Mon Sep 17 00:00:00 2001 From: ppc Date: Sun, 12 Jan 2025 20:53:35 +0000 Subject: [PATCH] add idm/access client-side handling --- amnet-native/app/ServerCardIn.tsx | 9 +++++++-- amnet-native/models/AMServer.ts | 8 +++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/amnet-native/app/ServerCardIn.tsx b/amnet-native/app/ServerCardIn.tsx index f0b7325..12ffead 100644 --- a/amnet-native/app/ServerCardIn.tsx +++ b/amnet-native/app/ServerCardIn.tsx @@ -32,7 +32,8 @@ import {ICCard} from "../components/ICCard"; import RealmContext from "../models/RealmContext"; import {AMServer} from "../models/AMServer"; import {AMCard} from "../models/AMCard"; -import ObjectId = BSON.ObjectId; + +import {icCard0008Number} from "../lib/iccard"; import { AMServerConnectionInfo, AMServerInstanceMetrics, @@ -41,6 +42,8 @@ import { performCardIn } from "amnet-shared"; +import ObjectId = BSON.ObjectId; + const {useRealm, useQuery, useObject} = RealmContext; export default function ServerCardIn({route, navigation}) { @@ -147,8 +150,10 @@ export default function ServerCardIn({route, navigation}) { const cardInCallback = useCallback(() => { setCardInCompleted(false); + const cardId = selectedCard.physicalCardData && server.preferredCardIdFormat === "idm" ? icCard0008Number(selectedCard.physicalCardData.cardIDm) : selectedCard.code; const abortController = new AbortController(); - performCardIn(server, {cardId: selectedCard.code}, abortController.signal).then(async r => { + + performCardIn(server, {cardId}, abortController.signal).then(async r => { const now = new Date(); realm.write(() => { server.lastUsed = now; diff --git a/amnet-native/models/AMServer.ts b/amnet-native/models/AMServer.ts index b7b227d..01d9b62 100644 --- a/amnet-native/models/AMServer.ts +++ b/amnet-native/models/AMServer.ts @@ -1,7 +1,7 @@ import {Realm} from 'realm'; -import {AMServerConnectionInfo, AMServerMetadata} from "amnet-shared"; +import {AMServerConnectionInfo, AMServerMetadata, AMServerPhysicalCardPreferences} from "amnet-shared"; -export class AMServer extends Realm.Object implements AMServerConnectionInfo, AMServerMetadata { +export class AMServer extends Realm.Object implements AMServerConnectionInfo, AMServerMetadata, AMServerPhysicalCardPreferences { _id!: Realm.BSON.ObjectId; apiVersion: number; @@ -12,7 +12,9 @@ export class AMServer extends Realm.Object implements AMServerConnecti lastUsed: Date; createdAt: Date; - + + preferredCardIdFormat?: "idm" | "access" | null; + get shareUrl() { return `http://card.ppc.moe/#/servers/add?address=${encodeURIComponent(this.serverAddress)}`; }