UNPKG

@youssefhenna/expo-enode-link-sdk

Version:
39 lines (31 loc) 994 B
import { NativeModulesProxy, EventEmitter } from "expo-modules-core"; import ExpoEnodeLinkSDKModule from "./ExpoEnodeLinkSDKModule"; type ResultCode = | "success" | "missingLinkToken" | "malformedLinkToken" | "dismissedViaDismissFunction" | "cancelledByUser" | "USER_INTERACTION" | "backendError" | "earlyExitRequestedFromFrontend" | "permissionError" | "unknownError"; type OnResultEvent = { code: ResultCode; errorMessage?: string }; const ON_RESULT_EVENT_NAME = "OnResult"; const emitter = new EventEmitter( ExpoEnodeLinkSDKModule ?? NativeModulesProxy.ExpoEnodeLinkSDK ); export function listenToResult( onResult: (code: ResultCode, errorMessage?: string) => void ) { const listener = emitter.addListener<OnResultEvent>( ON_RESULT_EVENT_NAME, (event) => onResult(event.code, event.errorMessage) ); return { remove: () => listener.remove() }; } export function show(token: string) { ExpoEnodeLinkSDKModule.show(token); } export { ResultCode };