Last active
December 31, 2021 10:05
-
-
Save vivekvardhanadepu/4a0e2ec3650058cfd194e679152abc53 to your computer and use it in GitHub Desktop.
Event Listeners in react-native-stripe-terminal package
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import StripeTerminal from 'react-native-stripe-terminal'; | |
// Add a listener to handle when readers are discovered. | |
// You could display the readers to the user to select, or just | |
// auto-connect to the first available reader. | |
const discoverListener = StripeTerminal.addReadersDiscoveredListener(discoveredReaders => { | |
console.log("discoveredReaders", discoveredReaders); | |
}); | |
// This firing without error does not mean the SDK is not still discovering. Just that it found readers. | |
// The SDK must be actively discovering in order to connect. | |
const discoverCompleteListener = StripeTerminal.addAbortDiscoverReadersCompletionListener( | |
({ error }) => { | |
console.log('AbortDiscoverReadersCompletionListener'); | |
if (error) { | |
console.log("error", error); | |
} | |
}, | |
); | |
// Handle changes in reader connection status | |
const connectionStatusListener = StripeTerminal.addDidChangeConnectionStatusListener( | |
event => { | |
// Can check event.status against constants like: | |
if (event.status === StripeTerminal.ConnectionStatusConnecting) { | |
console.log("Connecting...") | |
} | |
if (event.status === StripeTerminal.ConnectionStatusConnected) { | |
console.log('Connected successfully'); | |
} | |
}, | |
); | |
// Handle unexpected disconnects | |
const disconnectListener = StripeTerminal.addDidReportUnexpectedReaderDisconnectListener( | |
reader => { | |
console.log('Unexpectedly disconnected from reader ' + reader.serialNumber); | |
}, | |
); | |
// Pass StripeTerminal logs to the Javascript console, if needed | |
const logListener = StripeTerminal.addLogListener(log => { | |
console.log('[StripeTerminal] -- ' + log); | |
}); | |
// Listen for reader input | |
const inputListener = StripeTerminal.addDidRequestReaderInputListener(text => { | |
console.log('Reader Input: ' + text); | |
}); | |
// Remove listeners after unmounted | |
// Class Component | |
componentWillUnmount(){ | |
discoverListener.remove(); | |
connectionStatusListener.remove(); | |
disconnectListener.remove(); | |
logListener.remove(); | |
inputListener.remove(); | |
} | |
// or // | |
// Using Hooks | |
useEffect(()=>{ | |
return () => { | |
discoverListener.remove(); | |
connectionStatusListener.remove(); | |
disconnectListener.remove(); | |
logListener.remove(); | |
inputListener.remove(); | |
} | |
},[]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment