CardScanEvent.fromMap constructor

CardScanEvent.fromMap(
  1. Map map
)

Factory to convert platform map into Dart event

Implementation

factory CardScanEvent.fromMap(Map map) {
  switch (map['type']) {
    case 'scanDataReceived':
      final data = map['data'] as Map;
      // Fired when card data is successfully scanned
      return CardScannedEvent(
        number: data['cardNumber'] as String?,
        expDate: data['expiryDate'] as String?,
        holder: data['cardHolder'] as String?,
      );
    case 'cardScanning':
      final data = map['data'] as Map;
      return CardScanningEvent(
        number: data['cardNumber'] as String?,
        expDate: data['expiryDate'] as String?,
        holder: data['cardHolder'] as String?,
      );
    case 'scanCancelled':
      // Fired when user cancels scanning
      return const CardScanCancelledEvent();
    case 'scanFailed':
      // Fired when scanning fails due to error
      return CardScanFailedEvent(error: map['error'] as String?);
    case 'scanGoogleAccountError':
      // Fired if Google account / authorization error occurs on Android
      return const CardScanGoogleAccountErrorEvent();
    default:
      throw UnsupportedError('Unsupported event type: ${map['type']}');
  }
}