@infilect-sdk/infiviz-shots-react-sdk 1.2.20 → 1.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +17 -0
  2. package/android/build.gradle +1 -1
  3. package/ios/InfivizShotSDK.xcframework/Info.plist +5 -5
  4. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Assets.car +0 -0
  5. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Headers/InfivizShotSDK-Swift.h +77 -7
  6. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/InfivizShotSDK +0 -0
  7. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Info.plist +0 -0
  8. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios.abi.json +5374 -4913
  9. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +3244 -0
  10. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  11. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios.swiftinterface +3244 -0
  12. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/module.modulemap +0 -1
  13. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 2.mom +0 -0
  14. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 3.mom +0 -0
  15. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 4.mom +0 -0
  16. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 5.mom +0 -0
  17. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 6.mom +0 -0
  18. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 7.mom +0 -0
  19. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 8.mom +0 -0
  20. package/ios/InfivizShotSDK.xcframework/{ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 7.omo → ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 8.omo} +0 -0
  21. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase.mom +0 -0
  22. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/VersionInfo.plist +0 -0
  23. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/shotsSDK.storyboardc/8Tq-Ro-cFI-view-Hie-zi-eQ4.nib +0 -0
  24. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/shotsSDK.storyboardc/SW9-KF-vYy-view-a8B-9e-hfC.nib +0 -0
  25. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/shotsSDK.storyboardc/xUL-ol-gRQ-view-6A8-mO-Rhi.nib +0 -0
  26. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Assets.car +0 -0
  27. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Headers/InfivizShotSDK-Swift.h +154 -14
  28. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/InfivizShotSDK +0 -0
  29. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Info.plist +0 -0
  30. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +5374 -4913
  31. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +3244 -0
  32. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  33. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +3244 -0
  34. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +5374 -4913
  35. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +3244 -0
  36. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  37. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +3244 -0
  38. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/module.modulemap +0 -1
  39. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 2.mom +0 -0
  40. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 3.mom +0 -0
  41. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 4.mom +0 -0
  42. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 5.mom +0 -0
  43. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 6.mom +0 -0
  44. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 7.mom +0 -0
  45. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 8.mom +0 -0
  46. package/ios/InfivizShotSDK.xcframework/{ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 7.omo → ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 8.omo} +0 -0
  47. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase.mom +0 -0
  48. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/VersionInfo.plist +0 -0
  49. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/shotsSDK.storyboardc/8Tq-Ro-cFI-view-Hie-zi-eQ4.nib +0 -0
  50. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/shotsSDK.storyboardc/SW9-KF-vYy-view-a8B-9e-hfC.nib +0 -0
  51. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/shotsSDK.storyboardc/xUL-ol-gRQ-view-6A8-mO-Rhi.nib +0 -0
  52. package/ios/InfivizShotsReactSdk.swift +170 -80
  53. package/lib/module/index.js +1 -0
  54. package/lib/module/index.js.map +1 -1
  55. package/lib/module/resumeMetaKeys.js +11 -0
  56. package/lib/module/resumeMetaKeys.js.map +1 -0
  57. package/lib/typescript/src/index.d.ts +1 -0
  58. package/lib/typescript/src/index.d.ts.map +1 -1
  59. package/lib/typescript/src/resumeMetaKeys.d.ts +9 -0
  60. package/lib/typescript/src/resumeMetaKeys.d.ts.map +1 -0
  61. package/lib/typescript/src/types/InfiSession.d.ts +4 -0
  62. package/lib/typescript/src/types/InfiSession.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/react-native-infiviz-shots.podspec +1 -1
  65. package/src/index.tsx +5 -1
  66. package/src/resumeMetaKeys.ts +8 -0
  67. package/src/types/InfiSession.ts +4 -0
  68. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios.swiftmodule +0 -0
  69. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule +0 -0
  70. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule +0 -0
@@ -7,5 +7,4 @@ framework module InfivizShotSDK {
7
7
 
8
8
  module InfivizShotSDK.Swift {
9
9
  header "InfivizShotSDK-Swift.h"
10
- requires objc
11
10
  }
@@ -8,7 +8,37 @@
8
8
  import Foundation
9
9
  import InfivizShotSDK
10
10
  import React
11
+ import UIKit
11
12
 
13
+ /// Dismisses our modally presented `UINavigationController` only after the user pops back to the
14
+ /// placeholder root. The SDK's `viewIRResults` / workflow completion fires when setup finishes, not when the user leaves the screen.
15
+ private final class ModalNavDismissWhenPoppedToRoot: NSObject, UINavigationControllerDelegate {
16
+ private weak var navigationController: UINavigationController?
17
+ private var sawMoreThanOneScreen = false
18
+ private let onInvalidate: () -> Void
19
+
20
+ init(navigationController: UINavigationController, onInvalidate: @escaping () -> Void) {
21
+ self.navigationController = navigationController
22
+ self.onInvalidate = onInvalidate
23
+ super.init()
24
+ }
25
+
26
+ func navigationController(
27
+ _ navigationController: UINavigationController,
28
+ didShow viewController: UIViewController,
29
+ animated: Bool
30
+ ) {
31
+ guard navigationController === self.navigationController else { return }
32
+ let count = navigationController.viewControllers.count
33
+ if count > 1 {
34
+ sawMoreThanOneScreen = true
35
+ } else if count == 1, sawMoreThanOneScreen {
36
+ navigationController.delegate = nil
37
+ onInvalidate()
38
+ navigationController.dismiss(animated: true)
39
+ }
40
+ }
41
+ }
12
42
 
13
43
  @objc(InfivizShotsReactSdk)
14
44
  class InfivizShotsReactSdk: RCTEventEmitter {
@@ -111,6 +141,9 @@ class InfivizShotsReactSdk: RCTEventEmitter {
111
141
 
112
142
 
113
143
  var activity: InfivizShotsActivity?
144
+
145
+ /// Strong retain; `UINavigationController.delegate` is weak. Cleared when the user pops to root or on setup failure.
146
+ private var modalNavPopToRootDismisser: ModalNavDismissWhenPoppedToRoot?
114
147
 
115
148
  // MARK: –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
116
149
  // MARK: – Helper Methods (not directly exposed to JS)
@@ -423,7 +456,14 @@ class InfivizShotsReactSdk: RCTEventEmitter {
423
456
  rejecter reject: @escaping RCTPromiseRejectBlock) {
424
457
 
425
458
  DispatchQueue.main.async {
426
- // 1️⃣ Build the CameraContext just like before
459
+ // 1️⃣ Build the CameraContext from RN args.
460
+ // Generic iOS SDK: `nil` maxPhoto means no configured cap; `0` must not be passed as a cap
461
+ // (CameraViewController treats non-nil limits literally; 0 makes `photoTaken >= 0` always true).
462
+ let maxPhotoInt = maxPhoto.intValue
463
+ let maxPhotoOneGoInt = maxPhotoOneGo.intValue
464
+ let maxPhotoOptional: Int? = maxPhotoInt > 0 ? maxPhotoInt : nil
465
+ let maxPhotoOneGoOptional: Int? = maxPhotoOneGoInt > 0 ? maxPhotoOneGoInt : nil
466
+
427
467
  let metadataDict: [String: Any]? = metaData as? [String: Any]
428
468
  let context = CameraContext(
429
469
  taskName: taskName as String,
@@ -431,8 +471,8 @@ class InfivizShotsReactSdk: RCTEventEmitter {
431
471
  storeId: storeId as String,
432
472
  photoType: photoType as String,
433
473
  category: category as String,
434
- maxPhoto: 0,
435
- maxPhotoOneGo: 0,
474
+ maxPhoto: maxPhotoOptional,
475
+ maxPhotoOneGo: maxPhotoOneGoOptional,
436
476
  tempSessionId: nil,
437
477
  imageURI: nil,
438
478
  navigationController: nil,
@@ -522,52 +562,70 @@ class InfivizShotsReactSdk: RCTEventEmitter {
522
562
  }
523
563
  return top
524
564
  }
565
+
566
+ private static func resolveOrPresentNavController(
567
+ modalDismissBridge: InfivizShotsReactSdk?,
568
+ reject: @escaping RCTPromiseRejectBlock,
569
+ completion: @escaping (_ navController: UINavigationController, _ wasCreated: Bool) -> Void
570
+ ) {
571
+ guard let topVC = topMostViewController() else {
572
+ reject("NAV_ERROR", "No view controller available", nil)
573
+ return
574
+ }
575
+
576
+ if let existingNav = topVC as? UINavigationController {
577
+ completion(existingNav, false)
578
+ return
579
+ }
580
+
581
+ if let existingNav = topVC.navigationController {
582
+ completion(existingNav, false)
583
+ return
584
+ }
585
+
586
+ let placeholder = UIViewController()
587
+ placeholder.view.backgroundColor = .clear
588
+ let navController = UINavigationController(rootViewController: placeholder)
589
+ navController.modalPresentationStyle = .fullScreen
590
+ topVC.present(navController, animated: false) {
591
+ if let bridge = modalDismissBridge {
592
+ let helper = ModalNavDismissWhenPoppedToRoot(navigationController: navController) { [weak bridge] in
593
+ bridge?.modalNavPopToRootDismisser = nil
594
+ }
595
+ bridge.modalNavPopToRootDismisser = helper
596
+ navController.delegate = helper
597
+ }
598
+ completion(navController, true)
599
+ }
600
+ }
525
601
 
526
602
  // MARK: - View IR Results via bridge
527
603
  @objc(viewIRResults:resolver:rejecter:)
528
604
  func viewIRResults(_ sessionID: NSString,
529
605
  resolver resolve: @escaping RCTPromiseResolveBlock,
530
606
  rejecter reject: @escaping RCTPromiseRejectBlock) {
531
- DispatchQueue.main.async {
532
- // guard let navigationController = UIApplication.shared.connectedScenes
533
- // .compactMap({ $0 as? UIWindowScene })
534
- // .flatMap({ $0.windows })
535
- // .first(where: { $0.isKeyWindow })?
536
- // .rootViewController?.navigationController else {
537
- // reject("NAV_ERROR", "No navigation controller available", nil)
538
- // return
539
- // }
540
- guard let topVC = InfivizShotsReactSdk.topMostViewController() else {
541
- reject("NAV_ERROR", "No view controller available", nil)
542
- return
543
- }
544
-
545
- // Create a navigation controller for the SDK to use
546
- let navController: UINavigationController
547
-
548
- if let existingNav = topVC as? UINavigationController {
549
- // TopVC is already a navigation controller
550
- navController = existingNav
551
- } else if let existingNav = topVC.navigationController {
552
- // TopVC is inside a navigation controller
553
- navController = existingNav
554
- } else {
555
- // React Native doesn't have a nav controller, create a temporary one
556
- // We'll pass this to the SDK, and the SDK will handle presenting its views
557
- navController = UINavigationController()
558
- navController.setViewControllers([], animated: false)
607
+ DispatchQueue.main.async { [weak self] in
608
+ guard let self = self else { return }
609
+ Self.resolveOrPresentNavController(modalDismissBridge: self, reject: reject) { navController, wasCreated in
610
+ let realTimeView = InfivizRealTimeView(sessionID: sessionID as String,
611
+ navigationController: navController)
612
+ realTimeView.viewIRResults(sessionID: sessionID as String) { result in
613
+ DispatchQueue.main.async { [weak self] in
614
+ guard let self = self else { return }
615
+ switch result {
616
+ case .success(let value):
617
+ print("View IR Results success: \(value)")
618
+ resolve(value)
619
+ case .failure(let error):
620
+ print("View IR Results error: \(error.localizedDescription)")
621
+ if wasCreated {
622
+ navController.delegate = nil
623
+ self.modalNavPopToRootDismisser = nil
624
+ navController.dismiss(animated: true)
625
+ }
626
+ reject("VIEW_IR_FAILED", error.localizedDescription, nil)
627
+ }
559
628
  }
560
-
561
- let realTimeView = InfivizRealTimeView(sessionID: sessionID as String,
562
- navigationController: navController)
563
- realTimeView.viewIRResults(sessionID: sessionID as String) { result in
564
- switch result {
565
- case .success(let value):
566
- print("View IR Results success: \(value)")
567
- resolve(value)
568
- case .failure(let error):
569
- print("View IR Results error: \(error.localizedDescription)")
570
- reject("VIEW_IR_FAILED", error.localizedDescription, nil)
571
629
  }
572
630
  }
573
631
  }
@@ -582,30 +640,40 @@ class InfivizShotsReactSdk: RCTEventEmitter {
582
640
  dateTimeStamp: NSString,
583
641
  resolver resolve: @escaping RCTPromiseResolveBlock,
584
642
  rejecter reject: @escaping RCTPromiseRejectBlock) {
585
- DispatchQueue.main.async {
586
- guard let navigationController = UIApplication.shared.connectedScenes
587
- .compactMap({ $0 as? UIWindowScene })
588
- .flatMap({ $0.windows })
589
- .first(where: { $0.isKeyWindow })?
590
- .rootViewController?.navigationController else {
591
- reject("NAV_ERROR", "No navigation controller available", nil)
592
- return
593
- }
594
- let realTimeView = InfivizRealTimeView(sessionID: sessionId as String,
595
- navigationController: navigationController)
596
- realTimeView.startActionsWorkFlow(storeId: storeId as String,
597
- sessionId: sessionId as String,
598
- latitude: latitude as String,
599
- longitude: longitude as String,
600
- dateTimeStamp: dateTimeStamp as String) { result in
601
- switch result {
602
- case .success(let value): resolve(value)
603
- case .failure(let error): reject("ACTIONS_WORKFLOW_FAILED", error.localizedDescription, nil)
643
+ DispatchQueue.main.async { [weak self] in
644
+ guard let self = self else { return }
645
+ Self.resolveOrPresentNavController(modalDismissBridge: self, reject: reject) { navController, wasCreated in
646
+ let realTimeView = InfivizRealTimeView(sessionID: sessionId as String,
647
+ navigationController: navController)
648
+ realTimeView.startActionsWorkFlow(storeId: storeId as String,
649
+ sessionId: sessionId as String,
650
+ latitude: latitude as String,
651
+ longitude: longitude as String,
652
+ dateTimeStamp: dateTimeStamp as String) { result in
653
+ DispatchQueue.main.async { [weak self] in
654
+ guard let self = self else { return }
655
+ switch result {
656
+ case .success(let value):
657
+ resolve(value)
658
+ case .failure(let error):
659
+ if wasCreated {
660
+ navController.delegate = nil
661
+ self.modalNavPopToRootDismisser = nil
662
+ navController.dismiss(animated: true)
663
+ }
664
+ reject("ACTIONS_WORKFLOW_FAILED", error.localizedDescription, nil)
665
+ }
666
+ }
604
667
  }
605
668
  }
606
669
  }
607
670
  }
608
671
 
672
+ /// Optional resume metadata keys (stripped before passing through to the native camera).
673
+ /// JS can set these from `fetchSessionDetails()` caps when the host does not pass limits on resume.
674
+ private static let resumeMetaMaxPhotoKey = "__infiviz_sdk_maxPhoto"
675
+ private static let resumeMetaMaxPhotoOneGoKey = "__infiviz_sdk_maxPhotoOneGo"
676
+
609
677
  @objc(resumeCamera:metaData:resolver:rejecter:)
610
678
  func resumeCamera(
611
679
  _ temporarySessionID: NSString,
@@ -613,30 +681,46 @@ class InfivizShotsReactSdk: RCTEventEmitter {
613
681
  resolver resolve: @escaping RCTPromiseResolveBlock,
614
682
  rejecter reject: @escaping RCTPromiseRejectBlock
615
683
  ) {
616
- // Build whatever CameraContext your SDK needs. In your original UI code,
617
- // you were reading from text fields (e.g. shelfTextField.text, traderTextField.text, etc.).
618
- // In a module method you typically won't have those outlets available, so you'll
619
- // need to pass any required "taskName", "storeTitle" etc. from JS into this call
620
- // or hard‐code defaults here. For now, I'll show a minimal example:
684
+ var md = (metaData as? [String: Any]) ?? [:]
685
+
686
+ var maxPhotoOptional: Int?
687
+ var maxPhotoOneGoOptional: Int?
688
+ if let n = md[Self.resumeMetaMaxPhotoKey] as? NSNumber {
689
+ let v = n.intValue
690
+ if v > 0 { maxPhotoOptional = v }
691
+ } else if let n = md[Self.resumeMetaMaxPhotoKey] as? Int {
692
+ if n > 0 { maxPhotoOptional = n }
693
+ }
694
+ if let n = md[Self.resumeMetaMaxPhotoOneGoKey] as? NSNumber {
695
+ let v = n.intValue
696
+ if v > 0 { maxPhotoOneGoOptional = v }
697
+ } else if let n = md[Self.resumeMetaMaxPhotoOneGoKey] as? Int {
698
+ if n > 0 { maxPhotoOneGoOptional = n }
699
+ }
700
+ md.removeValue(forKey: Self.resumeMetaMaxPhotoKey)
701
+ md.removeValue(forKey: Self.resumeMetaMaxPhotoOneGoKey)
621
702
 
703
+ // `nil` caps: limits come from the persisted session row inside InfivizShotSDK.
704
+ // Do not pass `0` — that becomes a non-nil cap and breaks limit checks.
622
705
  let context = CameraContext(
623
- taskName: "", // ← pass in from JS if you really need it
706
+ taskName: "",
624
707
  storeTitle: "",
625
708
  storeId: "",
626
709
  photoType: "",
627
710
  category: "",
628
- maxPhoto: 0,
629
- maxPhotoOneGo: 0,
630
- navigationController: nil // ← no UIKit nav controller in RN module
711
+ maxPhoto: maxPhotoOptional,
712
+ maxPhotoOneGo: maxPhotoOneGoOptional,
713
+ tempSessionId: nil,
714
+ imageURI: nil,
715
+ navigationController: nil,
716
+ retake: false,
717
+ metaData: md.isEmpty ? nil : md
631
718
  )
632
719
 
633
- // Instantiate your SDK's camera controller just like before:
634
720
  let controller = InfilectSDKCameraActivityForResult(cameraContext: context)
635
721
 
636
- // Convert NSDictionary to [String: Any]
637
- let metadataDict: [String: Any]? = metaData as? [String: Any]
722
+ let metadataDict: [String: Any]? = md.isEmpty ? nil : md
638
723
 
639
- // Call the updated `resumeCamera(sessionID:metaData:completion:)` API with metadata
640
724
  controller.resumeCamera(sessionID: temporarySessionID as String, metaData: metadataDict) { result in
641
725
  switch result {
642
726
  case .success(let sessionID):
@@ -666,11 +750,14 @@ class InfivizShotsReactSdk: RCTEventEmitter {
666
750
  storeTitle: "",
667
751
  storeId: "",
668
752
  photoType: "",
669
-
670
753
  category: "",
671
- maxPhoto: 0,
672
- maxPhotoOneGo: 0,
673
- navigationController: nil
754
+ maxPhoto: nil,
755
+ maxPhotoOneGo: nil,
756
+ tempSessionId: nil,
757
+ imageURI: nil,
758
+ navigationController: nil,
759
+ retake: false,
760
+ metaData: nil
674
761
  )
675
762
  let controller = InfilectSDKCameraActivityForResult(cameraContext: context)
676
763
  controller.deleteImage(imageURL: imageURI as String, sessionID: temporarySessionId as String) { result in
@@ -697,9 +784,12 @@ class InfivizShotsReactSdk: RCTEventEmitter {
697
784
  storeId: "",
698
785
  photoType: "",
699
786
  category: "",
700
- maxPhoto: 0,
701
- maxPhotoOneGo: 0,
787
+ maxPhoto: nil,
788
+ maxPhotoOneGo: nil,
789
+ tempSessionId: nil,
790
+ imageURI: nil,
702
791
  navigationController: nil,
792
+ retake: true,
703
793
  metaData: metaData as? [String: Any]
704
794
  )
705
795
 
@@ -68,4 +68,5 @@ export async function fetchSdkStatusLogs(days) {
68
68
  }
69
69
  export { Environment } from "./types/Environment.js";
70
70
  export { SDKStatus } from "./types/SDKStatus.js";
71
+ export { INFIVIZ_RESUME_META_MAX_PHOTO, INFIVIZ_RESUME_META_MAX_PHOTO_ONE_GO } from "./resumeMetaKeys.js";
71
72
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["InfivizShotsReactSdk","InfivizShotsReactSdkEmitter","InfivizShotsReactSdkEvents","addListener","eventName","callback","removeAllListeners","initialize","appID","authSecret","accountKey","userID","clientID","apiToken","env","syncSession","sessionId","startCamera","taskName","storeTitle","storeId","photoType","category","maxPhoto","maxPhotoOneGo","metaData","fetchSessionDetails","temporarySessionID","session","deletePhoto","imageURI","temporarySessionId","retakeImage","fetchUniversalSessionId","resumeCamera","logout","fetchLatestSdkStatus","dataArchival","console","log","getIrResult","getActionsResult","getSessionStatus","sessionStatusJson","sessionStatus","JSON","parse","viewIrResult","viewIRResults","startActionsWorkflow","latitude","longitude","dateInMMDDYYYY","startActionsWorkFlow","uploadSessions","uploadSession","checkTokenValidity","fetchSdkStatusLogs","days","Environment","SDKStatus"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,oBAAoB,IAAGC,2BAA2B,QAAO,iCAA8B;AAM9F,OAAO,MAAMC,0BAA0B,GAAG;EACxCC,WAAW,EAAEA,CAACC,SAAiB,EAAEC,QAA6B,KAC5DJ,2BAA2B,CAACE,WAAW,CAACC,SAAS,EAAEC,QAAQ,CAAC;EAE9DC,kBAAkB,EAAGF,SAAiB,IACpCH,2BAA2B,CAACK,kBAAkB,CAACF,SAAS;AAC5D,CAAC;AAGD,OAAO,eAAeG,UAAUA,CAC9BC,KAAa,EACbC,UAAkB,EAClBC,UAAkB,EAClBC,MAAc,EACdC,QAAgB,EAChBC,QAAgB,EAChBC,GAAgB,EACD;EACf,OAAOd,oBAAoB,CAACO,UAAU,CAACC,KAAK,EAAEC,UAAU,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,GAAG,CAAC;AACxG;AAEA,OAAO,SAASC,WAAWA,CAACC,SAAiB,EAAE;EAC3ChB,oBAAoB,CAACe,WAAW,CAACC,SAAS,CAAC;AAC/C;AAEA,OAAO,eAAeC,WAAWA,CAC/BC,QAAgB,EAChBC,UAAkB,EAClBC,OAAe,EACfC,SAAiB,EACjBC,QAAgB,EAChBC,QAAgB,EAChBC,aAAqB,EACrBC,QAA8B,EACb;EACjB,OAAOzB,oBAAoB,CAACiB,WAAW,CAACC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,QAAQ,CAAC;AAChI;AAEA,OAAO,eAAeC,mBAAmBA,CAACC,kBAA0B,EAAwB;EAC1F,MAAMC,OAAoB,GAAG,MAAM5B,oBAAoB,CAAC0B,mBAAmB,CAACC,kBAAkB,CAAC;EAC/F,OAAOC,OAAO;AAChB;AAEA,OAAO,eAAeC,WAAWA,CAACC,QAAgB,EAAEC,kBAA0B,EAAmB;EAC7F,OAAO/B,oBAAoB,CAAC6B,WAAW,CAACC,QAAQ,EAAEC,kBAAkB,CAAC;AACzE;AAEA,OAAO,eAAeC,WAAWA,CAACL,kBAA0B,EAAEG,QAAgB,EAAEL,QAA8B,EAAmB;EAC/H,OAAOzB,oBAAoB,CAACgC,WAAW,CAACL,kBAAkB,EAAEG,QAAQ,EAAEL,QAAQ,IAAI,CAAC,CAAC,CAAC;AACvF;AAEA,OAAO,eAAeQ,uBAAuBA,CAACN,kBAA0B,EAAmB;EACzF,OAAO3B,oBAAoB,CAACiC,uBAAuB,CAACN,kBAAkB,CAAC;AACzE;AAGA,OAAO,eAAeO,YAAYA,CAACP,kBAA0B,EAAEF,QAA6B,EAAmB;EAC7G,OAAOzB,oBAAoB,CAACkC,YAAY,CAACP,kBAAkB,EAAEF,QAAQ,CAAC;AACxE;AAEA,OAAO,eAAeU,MAAMA,CAAA,EAAkB;EAC1C,OAAOnC,oBAAoB,CAACmC,MAAM,CAAC,CAAC;AACxC;AAEA,OAAO,eAAeC,oBAAoBA,CAAA,EAAuB;EAC/D,OAAOpC,oBAAoB,CAACoC,oBAAoB,CAAC,CAAC;AACpD;AAEA,OAAO,eAAeC,YAAYA,CAAA,EAAoB;EAClDC,OAAO,CAACC,GAAG,CAAC,kBAAkB,CAAC;EAC/B,OAAOvC,oBAAoB,CAACqC,YAAY,CAAC,CAAC;AAC9C;AAEA,OAAO,eAAeG,WAAWA,CAACxB,SAAiB,EAAmB;EAClE,OAAOhB,oBAAoB,CAACwC,WAAW,CAACxB,SAAS,CAAC;AACtD;AAEA,OAAO,eAAeyB,gBAAgBA,CAACzB,SAAiB,EAAmB;EACvE,OAAOhB,oBAAoB,CAACyC,gBAAgB,CAACzB,SAAS,CAAC;AAC3D;AAEA,OAAO,eAAe0B,gBAAgBA,CAAC1B,SAAiB,EAA0B;EAC9E,MAAM2B,iBAAiB,GAAG,MAAM3C,oBAAoB,CAAC0C,gBAAgB,CAAC1B,SAAS,CAAC;EAChF,MAAM4B,aAA4B,GAAGC,IAAI,CAACC,KAAK,CAACH,iBAAiB,CAAC;EAClE,OAAOC,aAAa;AACxB;AAEA,OAAO,eAAeG,YAAYA,CAAC/B,SAAiB,EAAmB;EACnE,OAAOhB,oBAAoB,CAACgD,aAAa,CAAChC,SAAS,CAAC;AACxD;AAEA,OAAO,eAAeiC,oBAAoBA,CACtC7B,OAAe,EACfJ,SAAiB,EACjBkC,QAAgB,EAChBC,SAAiB,EACjBC,cAAsB,EACxB;EACE,OAAOpD,oBAAoB,CAACqD,oBAAoB,CAACjC,OAAO,EAAEJ,SAAS,EAAEkC,QAAQ,EAAEC,SAAS,EAAEC,cAAc,CAAC;AAC7G;AAEA,OAAO,eAAeE,cAAcA,CAAC3B,kBAA4B,EAAE;EAC/D,OAAO3B,oBAAoB,CAACuD,aAAa,CAAC5B,kBAAkB,CAAC;AACjE;AAEA,OAAO,eAAe6B,kBAAkBA,CAAC5C,QAAgB,EAAED,MAAc,EAAoB;EAC3F,OAAOX,oBAAoB,CAACwD,kBAAkB,CAAC5C,QAAQ,EAAED,MAAM,CAAC;AAClE;AAEA,OAAO,eAAe8C,kBAAkBA,CAACC,IAAY,EAAwB;EAC3E,OAAO1D,oBAAoB,CAACyD,kBAAkB,CAACC,IAAI,CAAC;AACtD;AAEA,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,SAAS,QAAQ,sBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["InfivizShotsReactSdk","InfivizShotsReactSdkEmitter","InfivizShotsReactSdkEvents","addListener","eventName","callback","removeAllListeners","initialize","appID","authSecret","accountKey","userID","clientID","apiToken","env","syncSession","sessionId","startCamera","taskName","storeTitle","storeId","photoType","category","maxPhoto","maxPhotoOneGo","metaData","fetchSessionDetails","temporarySessionID","session","deletePhoto","imageURI","temporarySessionId","retakeImage","fetchUniversalSessionId","resumeCamera","logout","fetchLatestSdkStatus","dataArchival","console","log","getIrResult","getActionsResult","getSessionStatus","sessionStatusJson","sessionStatus","JSON","parse","viewIrResult","viewIRResults","startActionsWorkflow","latitude","longitude","dateInMMDDYYYY","startActionsWorkFlow","uploadSessions","uploadSession","checkTokenValidity","fetchSdkStatusLogs","days","Environment","SDKStatus","INFIVIZ_RESUME_META_MAX_PHOTO","INFIVIZ_RESUME_META_MAX_PHOTO_ONE_GO"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Optional keys for `resumeCamera(sessionId, metaData)` on iOS.
5
+ * The native bridge strips these before forwarding metadata to the camera.
6
+ * Populate from `fetchSessionDetails()` (`maxPhotoCap` / `maxPhotoOneGoCap`) when resuming
7
+ * so limits apply even if the session row is the only source of truth.
8
+ */
9
+ export const INFIVIZ_RESUME_META_MAX_PHOTO = '__infiviz_sdk_maxPhoto';
10
+ export const INFIVIZ_RESUME_META_MAX_PHOTO_ONE_GO = '__infiviz_sdk_maxPhotoOneGo';
11
+ //# sourceMappingURL=resumeMetaKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["INFIVIZ_RESUME_META_MAX_PHOTO","INFIVIZ_RESUME_META_MAX_PHOTO_ONE_GO"],"sourceRoot":"../../src","sources":["resumeMetaKeys.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,6BAA6B,GAAG,wBAAwB;AACrE,OAAO,MAAMC,oCAAoC,GAAG,6BAA6B","ignoreList":[]}
@@ -27,4 +27,5 @@ export declare function checkTokenValidity(clientID: string, userID: string): Pr
27
27
  export declare function fetchSdkStatusLogs(days: number): Promise<SDKStatus[]>;
28
28
  export { Environment } from './types/Environment';
29
29
  export { SDKStatus } from './types/SDKStatus';
30
+ export { INFIVIZ_RESUME_META_MAX_PHOTO, INFIVIZ_RESUME_META_MAX_PHOTO_ONE_GO, } from './resumeMetaKeys';
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Optional keys for `resumeCamera(sessionId, metaData)` on iOS.
3
+ * The native bridge strips these before forwarding metadata to the camera.
4
+ * Populate from `fetchSessionDetails()` (`maxPhotoCap` / `maxPhotoOneGoCap`) when resuming
5
+ * so limits apply even if the session row is the only source of truth.
6
+ */
7
+ export declare const INFIVIZ_RESUME_META_MAX_PHOTO = "__infiviz_sdk_maxPhoto";
8
+ export declare const INFIVIZ_RESUME_META_MAX_PHOTO_ONE_GO = "__infiviz_sdk_maxPhotoOneGo";
9
+ //# sourceMappingURL=resumeMetaKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resumeMetaKeys.d.ts","sourceRoot":"","sources":["../../../src/resumeMetaKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AACtE,eAAO,MAAM,oCAAoC,gCAAgC,CAAC"}
@@ -14,5 +14,9 @@ export interface InfiSession {
14
14
  category: string;
15
15
  storeId: string;
16
16
  imageMetaData: ImageMetaData[];
17
+ /** Max total photos cap persisted for this session (iOS local DB). Omitted on older SDK rows. */
18
+ maxPhotoCap?: number | null;
19
+ /** Optional “one go” cap from the session row. */
20
+ maxPhotoOneGoCap?: number | null;
17
21
  }
18
22
  //# sourceMappingURL=InfiSession.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InfiSession.d.ts","sourceRoot":"","sources":["../../../../src/types/InfiSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC"}
1
+ {"version":3,"file":"InfiSession.d.ts","sourceRoot":"","sources":["../../../../src/types/InfiSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infilect-sdk/infiviz-shots-react-sdk",
3
- "version": "1.2.20",
3
+ "version": "1.2.22",
4
4
  "description": "React Native package for native libraries",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/module/index.js",
@@ -20,7 +20,7 @@ Pod::Spec.new do |s|
20
20
  }
21
21
 
22
22
  s.dependency 'Alamofire', '~> 5.10.0'
23
- s.dependency 'AmplitudeSwift', '~> 1.0.0'
23
+ s.dependency 'AmplitudeSwift', '>= 1.17.5', '< 2.0'
24
24
  s.dependency 'SwiftyJSON', '~> 5.0.1'
25
25
  s.dependency 'SwiftLocation', '~> 5.1.0'
26
26
  s.dependency 'DGCharts', '~> 5.0.0'
package/src/index.tsx CHANGED
@@ -118,4 +118,8 @@ export async function fetchSdkStatusLogs(days: number): Promise<SDKStatus[]> {
118
118
  }
119
119
 
120
120
  export { Environment } from './types/Environment';
121
- export { SDKStatus } from './types/SDKStatus';
121
+ export { SDKStatus } from './types/SDKStatus';
122
+ export {
123
+ INFIVIZ_RESUME_META_MAX_PHOTO,
124
+ INFIVIZ_RESUME_META_MAX_PHOTO_ONE_GO,
125
+ } from './resumeMetaKeys';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Optional keys for `resumeCamera(sessionId, metaData)` on iOS.
3
+ * The native bridge strips these before forwarding metadata to the camera.
4
+ * Populate from `fetchSessionDetails()` (`maxPhotoCap` / `maxPhotoOneGoCap`) when resuming
5
+ * so limits apply even if the session row is the only source of truth.
6
+ */
7
+ export const INFIVIZ_RESUME_META_MAX_PHOTO = '__infiviz_sdk_maxPhoto';
8
+ export const INFIVIZ_RESUME_META_MAX_PHOTO_ONE_GO = '__infiviz_sdk_maxPhotoOneGo';
@@ -15,4 +15,8 @@ export interface InfiSession {
15
15
  category: string;
16
16
  storeId: string;
17
17
  imageMetaData: ImageMetaData[];
18
+ /** Max total photos cap persisted for this session (iOS local DB). Omitted on older SDK rows. */
19
+ maxPhotoCap?: number | null;
20
+ /** Optional “one go” cap from the session row. */
21
+ maxPhotoOneGoCap?: number | null;
18
22
  }