Skip to content

Instantly share code, notes, and snippets.

@vivekvardhanadepu
Last active December 31, 2021 10:05
Show Gist options
  • Save vivekvardhanadepu/4a0e2ec3650058cfd194e679152abc53 to your computer and use it in GitHub Desktop.
Save vivekvardhanadepu/4a0e2ec3650058cfd194e679152abc53 to your computer and use it in GitHub Desktop.
Event Listeners in react-native-stripe-terminal package
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