@@ -19,6 +19,7 @@ class Xs2aReactNativeView: UIView {
19
19
@objc var onSuccess : RCTDirectEventBlock ?
20
20
@objc var onAbort : RCTDirectEventBlock ?
21
21
@objc var onNetworkError : RCTDirectEventBlock ?
22
+ @objc var onSessionError : RCTDirectEventBlock ?
22
23
23
24
var xs2aViewController : XS2AViewController ?
24
25
var xs2aConfig : XS2AiOS . Configuration ?
@@ -300,18 +301,57 @@ class Xs2aReactNativeView: UIView {
300
301
switch result {
301
302
case . success( . finish) :
302
303
self . onSuccess ? ( [ : ] )
303
- break
304
304
case . success( . finishWithCredentials( let credentials) ) :
305
305
self . onSuccess ? ( [ " credentials " : credentials] )
306
- break
307
306
case . failure( let error) :
308
307
switch error {
309
308
case . userAborted:
310
309
self . onAbort ? ( [ : ] )
311
- break
312
310
case . networkError:
313
311
self . onNetworkError ? ( [ : ] )
314
- break
312
+ }
313
+ case . sessionError( let sessionError) :
314
+ switch sessionError {
315
+ case . loginFailed( recoverable: let recoverable) :
316
+ self . onSessionError ? ( [
317
+ " errorCode " : " login_failed " ,
318
+ " recoverable " : recoverable
319
+ ] )
320
+ case . sessionTimeout( recoverable: let recoverable) :
321
+ self . onSessionError ? ( [
322
+ " errorCode " : " session_timeout " ,
323
+ " recoverable " : recoverable
324
+ ] )
325
+ case . tanFailed( recoverable: let recoverable) :
326
+ self . onSessionError ? ( [
327
+ " errorCode " : " tan_failed " ,
328
+ " recoverable " : recoverable
329
+ ] )
330
+ case . techError( recoverable: let recoverable) :
331
+ self . onSessionError ? ( [
332
+ " errorCode " : " tech_error " ,
333
+ " recoverable " : recoverable
334
+ ] )
335
+ case . testmodeError( recoverable: let recoverable) :
336
+ self . onSessionError ? ( [
337
+ " errorCode " : " testmode_error " ,
338
+ " recoverable " : recoverable
339
+ ] )
340
+ case . transNotPossible( recoverable: let recoverable) :
341
+ self . onSessionError ? ( [
342
+ " errorCode " : " trans_not_possible " ,
343
+ " recoverable " : recoverable
344
+ ] )
345
+ case . validationFailed( recoverable: let recoverable) :
346
+ self . onSessionError ? ( [
347
+ " errorCode " : " validation_failed " ,
348
+ " recoverable " : recoverable
349
+ ] )
350
+ case . other( errorCode: let errorCode, recoverable: let recoverable) :
351
+ self . onSessionError ? ( [
352
+ " errorCode " : errorCode,
353
+ " recoverable " : recoverable
354
+ ] )
315
355
}
316
356
}
317
357
}
0 commit comments