From ab261f115e79d609294e42543f5b0a8c228ceae0 Mon Sep 17 00:00:00 2001 From: Joshua Rogers Date: Tue, 3 Feb 2026 20:16:35 +0800 Subject: [PATCH] Avoid import-time crash from new NativeEventEmitter(Wallet) (cherry picked from commit 12361e0b98e92611e94a6b46d2bb95692acbfb77) --- src/index.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 1f94756..950c8b5 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -21,10 +21,20 @@ function getModuleLinkingRejection() { return Promise.reject(new Error(`Failed to load Wallet module, make sure to link ${PACKAGE_NAME} correctly`)); } -const eventEmitter = new NativeEventEmitter(Wallet); +let eventEmitter: NativeEventEmitter | null = null; + +function getEventEmitter(): NativeEventEmitter { + if (!Wallet) { + throw new Error(`Failed to load Wallet module, make sure to link ${PACKAGE_NAME} correctly`); + } + if (!eventEmitter) { + eventEmitter = new NativeEventEmitter(Wallet); + } + return eventEmitter; +} function addListener(event: string, callback: (data: onCardActivatedPayload) => void): EmitterSubscription { - return eventEmitter.addListener(event, callback); + return getEventEmitter().addListener(event, callback); } function removeListener(subscription: EmitterSubscription): void {