diff --git a/src/__tests__/unit/hooks/useScanOperations.test.tsx b/src/__tests__/unit/hooks/useScanOperations.test.tsx index a909cd4..6e0a26f 100644 --- a/src/__tests__/unit/hooks/useScanOperations.test.tsx +++ b/src/__tests__/unit/hooks/useScanOperations.test.tsx @@ -31,6 +31,14 @@ const createMockBarcode = (rawValue: string): Barcode => ({ // Capacitor plugins (Nfc, BarcodeScanner, Haptics). describe("useScanOperations", () => { + const mockNfcWriter = { + write: vi.fn().mockResolvedValue(undefined), + end: vi.fn().mockResolvedValue(undefined), + writing: false, + result: null, + status: null, + }; + const defaultProps = { connected: true, hasData: true, @@ -38,6 +46,7 @@ describe("useScanOperations", () => { setLastToken: vi.fn(), setProPurchaseModalOpen: vi.fn(), setWriteOpen: vi.fn(), + nfcWriter: mockNfcWriter, }; beforeEach(() => { diff --git a/src/hooks/useScanOperations.tsx b/src/hooks/useScanOperations.tsx index 6e37b89..bb6354c 100644 --- a/src/hooks/useScanOperations.tsx +++ b/src/hooks/useScanOperations.tsx @@ -5,7 +5,7 @@ import { BarcodeScanner } from "@capacitor-mlkit/barcode-scanning"; import toast from "react-hot-toast"; import { cancelSession, readTag, sessionManager, Status } from "@/lib/nfc"; import { ScanResult, TokenResponse } from "@/lib/models"; -import { useNfcWriter, WriteAction } from "@/lib/writeNfcHook"; +import { WriteAction, WriteNfcHook } from "@/lib/writeNfcHook"; import { runToken } from "@/lib/tokenOperations.tsx"; import { logger } from "@/lib/logger"; import { useAnnouncer } from "@/components/A11yAnnouncer"; @@ -17,12 +17,12 @@ import { interface UseScanOperationsProps { connected: boolean; - /** Whether we have received data from the server (indicates prior connection) */ hasData: boolean; launcherAccess: boolean; setLastToken: (token: TokenResponse) => void; setProPurchaseModalOpen: (open: boolean) => void; setWriteOpen: (open: boolean) => void; + nfcWriter: WriteNfcHook; } export function useScanOperations({ @@ -32,9 +32,9 @@ export function useScanOperations({ setLastToken, setProPurchaseModalOpen, setWriteOpen, + nfcWriter, }: UseScanOperationsProps) { const { t } = useTranslation(); - const nfcWriter = useNfcWriter(); const { announce } = useAnnouncer(); const { impact, notification } = useHaptics(); const [scanSession, setScanSession] = useState(false); diff --git a/src/lib/writeNfcHook.tsx b/src/lib/writeNfcHook.tsx index 06bf13d..19dd3c4 100644 --- a/src/lib/writeNfcHook.tsx +++ b/src/lib/writeNfcHook.tsx @@ -19,7 +19,7 @@ import { CoreAPI } from "./coreApi.ts"; import { logger } from "./logger"; import { NfcCancelledError, isCancellationError } from "./errors"; -interface WriteNfcHook { +export interface WriteNfcHook { write: (action: WriteAction, text?: string) => Promise; end: () => Promise; writing: boolean; diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 00a5ce0..7e656a3 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -83,6 +83,7 @@ export function Index() { setLastToken, setProPurchaseModalOpen, setWriteOpen, + nfcWriter, }); const history = useQuery({