@convep_mobilogy/react-native-qms-plugin 1.0.0 → 1.1.0

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 (33) hide show
  1. package/android/build.gradle +1 -1
  2. package/ios/QmsPlugin/QmsDashboardViewManager.mm +21 -0
  3. package/ios/QmsPlugin/UIViewController+QmsAnalytics.m +3 -1
  4. package/ios/QmsPluginFramework.xcframework/Info.plist +5 -5
  5. package/ios/QmsPluginFramework.xcframework/ios-arm64/QmsPluginFramework.framework/Assets.car +0 -0
  6. package/ios/QmsPluginFramework.xcframework/ios-arm64/QmsPluginFramework.framework/QmsPluginFramework +0 -0
  7. package/ios/QmsPluginFramework.xcframework/ios-arm64/QmsPluginFramework.framework/_CodeSignature/CodeResources +4 -4
  8. package/ios/QmsPluginFramework.xcframework/ios-arm64/QmsPluginFramework.framework/en.json +4 -4
  9. package/ios/QmsPluginFramework.xcframework/ios-arm64_x86_64-simulator/QmsPluginFramework.framework/Assets.car +0 -0
  10. package/ios/QmsPluginFramework.xcframework/ios-arm64_x86_64-simulator/QmsPluginFramework.framework/QmsPluginFramework +0 -0
  11. package/ios/QmsPluginFramework.xcframework/ios-arm64_x86_64-simulator/QmsPluginFramework.framework/_CodeSignature/CodeResources +4 -4
  12. package/ios/QmsPluginFramework.xcframework/ios-arm64_x86_64-simulator/QmsPluginFramework.framework/en.json +4 -4
  13. package/lib/module/QmsDashboardView.android.js +6 -0
  14. package/lib/module/QmsDashboardView.android.js.map +1 -1
  15. package/lib/module/QmsDashboardView.ios.js +6 -2
  16. package/lib/module/QmsDashboardView.ios.js.map +1 -1
  17. package/lib/module/analyticsUtils.js +30 -0
  18. package/lib/module/analyticsUtils.js.map +1 -1
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/typescript/src/QmsDashboardView.android.d.ts.map +1 -1
  21. package/lib/typescript/src/QmsDashboardView.ios.d.ts.map +1 -1
  22. package/lib/typescript/src/QmsDashboardView.types.d.ts +13 -0
  23. package/lib/typescript/src/QmsDashboardView.types.d.ts.map +1 -1
  24. package/lib/typescript/src/analyticsUtils.d.ts +31 -0
  25. package/lib/typescript/src/analyticsUtils.d.ts.map +1 -1
  26. package/lib/typescript/src/index.d.ts +1 -1
  27. package/lib/typescript/src/index.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/QmsDashboardView.android.tsx +15 -1
  30. package/src/QmsDashboardView.ios.tsx +15 -3
  31. package/src/QmsDashboardView.types.ts +14 -0
  32. package/src/analyticsUtils.ts +64 -0
  33. package/src/index.tsx +4 -1
@@ -75,7 +75,7 @@ dependencies {
75
75
  implementation "com.facebook.react:react-android"
76
76
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
77
77
  implementation 'com.facebook.react:react-native:+'
78
- implementation "com.convep.qms:qms-plugin:1.18.0"
78
+ implementation "com.convep.qms:qms-plugin:1.19.0"
79
79
 
80
80
  implementation 'androidx.appcompat:appcompat:1.6.1'
81
81
 
@@ -27,6 +27,7 @@ static NSString * const kQmsRoutePayloadNotification = @"QmsRoutePayloadNotifica
27
27
 
28
28
  @property (nonatomic, copy) RCTDirectEventBlock onClose;
29
29
  @property (nonatomic, copy) RCTDirectEventBlock onLogout;
30
+ @property (nonatomic, copy) RCTDirectEventBlock onActiveAccountChange;
30
31
  @property (nonatomic, copy) RCTDirectEventBlock onAnalyticsScreen;
31
32
  @property (nonatomic, copy) RCTDirectEventBlock onAnalyticsEvent;
32
33
  @end
@@ -84,6 +85,10 @@ static NSString * const kQmsRoutePayloadNotification = @"QmsRoutePayloadNotifica
84
85
  selector:@selector(handleDashboardLogout:)
85
86
  name:@"QmsDashboardDidLogoutNotification"
86
87
  object:nil];
88
+ [[NSNotificationCenter defaultCenter] addObserver:self
89
+ selector:@selector(handleActiveAccountChange:)
90
+ name:@"QmsActiveAccountDidChangeNotification"
91
+ object:nil];
87
92
  [[NSNotificationCenter defaultCenter] addObserver:self
88
93
  selector:@selector(handleRoutePayloadNotification:)
89
94
  name:kQmsRoutePayloadNotification
@@ -145,6 +150,12 @@ static NSString * const kQmsRoutePayloadNotification = @"QmsRoutePayloadNotifica
145
150
  }
146
151
  }
147
152
 
153
+ - (void)handleActiveAccountChange:(NSNotification *)note {
154
+ if (self.onActiveAccountChange) {
155
+ self.onActiveAccountChange(note.userInfo ?: @{});
156
+ }
157
+ }
158
+
148
159
  - (void)cleanupDashboard {
149
160
  if (!_dashboardVC) return;
150
161
 
@@ -627,6 +638,7 @@ RCT_EXPORT_VIEW_PROPERTY(fontFamily, NSString)
627
638
  RCT_EXPORT_VIEW_PROPERTY(isOrigin, BOOL)
628
639
  RCT_EXPORT_VIEW_PROPERTY(payload, NSDictionary)
629
640
  RCT_EXPORT_VIEW_PROPERTY(onLogout, RCTDirectEventBlock)
641
+ RCT_EXPORT_VIEW_PROPERTY(onActiveAccountChange, RCTDirectEventBlock)
630
642
  RCT_EXPORT_VIEW_PROPERTY(onAnalyticsScreen, RCTDirectEventBlock)
631
643
  RCT_EXPORT_VIEW_PROPERTY(onAnalyticsEvent, RCTDirectEventBlock)
632
644
 
@@ -670,6 +682,10 @@ RCT_EXPORT_MODULE();
670
682
  selector:@selector(handleDashboardLogout:)
671
683
  name:@"QmsDashboardDidLogoutNotification"
672
684
  object:nil];
685
+ [[NSNotificationCenter defaultCenter] addObserver:self
686
+ selector:@selector(handleActiveAccountChangeEmitter:)
687
+ name:@"QmsActiveAccountDidChangeNotification"
688
+ object:nil];
673
689
  }
674
690
  return self;
675
691
  }
@@ -678,6 +694,7 @@ RCT_EXPORT_MODULE();
678
694
  return @[
679
695
  @"onClose",
680
696
  @"onLogout",
697
+ @"onActiveAccountChange",
681
698
  @"onAnalyticsScreen",
682
699
  @"onAnalyticsEvent",
683
700
  @"QmsSdkOnAnalyticsScreen",
@@ -704,6 +721,10 @@ RCT_EXPORT_MODULE();
704
721
  [self sendEventWithName:@"onLogout" body:note.userInfo];
705
722
  }
706
723
 
724
+ - (void)handleActiveAccountChangeEmitter:(NSNotification *)note {
725
+ [self sendEventWithName:@"onActiveAccountChange" body:note.userInfo];
726
+ }
727
+
707
728
  - (void)dealloc {
708
729
  [[NSNotificationCenter defaultCenter] removeObserver:self];
709
730
  }
@@ -230,7 +230,9 @@ static void qms_swizzleInstanceMethod(Class cls, SEL originalSelector, SEL swizz
230
230
 
231
231
  - (void)qms_applyPrimaryRecursively:(UIView *)view themeColor:(UIColor *)themeColor {
232
232
  if (!view || !themeColor) return;
233
- if ([self qms_isDefaultPrimaryColor:view.backgroundColor]) {
233
+ BOOL skipSemanticStatusPill = (view.tag == 500 &&
234
+ [NSStringFromClass([self class]) isEqualToString:@"AppointmentDetailsViewController"]);
235
+ if (!skipSemanticStatusPill && [self qms_isDefaultPrimaryColor:view.backgroundColor]) {
234
236
  view.backgroundColor = themeColor;
235
237
  }
236
238
  for (UIView *subview in view.subviews) {
@@ -8,32 +8,32 @@
8
8
  <key>BinaryPath</key>
9
9
  <string>QmsPluginFramework.framework/QmsPluginFramework</string>
10
10
  <key>LibraryIdentifier</key>
11
- <string>ios-arm64_x86_64-simulator</string>
11
+ <string>ios-arm64</string>
12
12
  <key>LibraryPath</key>
13
13
  <string>QmsPluginFramework.framework</string>
14
14
  <key>SupportedArchitectures</key>
15
15
  <array>
16
16
  <string>arm64</string>
17
- <string>x86_64</string>
18
17
  </array>
19
18
  <key>SupportedPlatform</key>
20
19
  <string>ios</string>
21
- <key>SupportedPlatformVariant</key>
22
- <string>simulator</string>
23
20
  </dict>
24
21
  <dict>
25
22
  <key>BinaryPath</key>
26
23
  <string>QmsPluginFramework.framework/QmsPluginFramework</string>
27
24
  <key>LibraryIdentifier</key>
28
- <string>ios-arm64</string>
25
+ <string>ios-arm64_x86_64-simulator</string>
29
26
  <key>LibraryPath</key>
30
27
  <string>QmsPluginFramework.framework</string>
31
28
  <key>SupportedArchitectures</key>
32
29
  <array>
33
30
  <string>arm64</string>
31
+ <string>x86_64</string>
34
32
  </array>
35
33
  <key>SupportedPlatform</key>
36
34
  <string>ios</string>
35
+ <key>SupportedPlatformVariant</key>
36
+ <string>simulator</string>
37
37
  </dict>
38
38
  </array>
39
39
  <key>CFBundlePackageType</key>
@@ -6,7 +6,7 @@
6
6
  <dict>
7
7
  <key>Assets.car</key>
8
8
  <data>
9
- T6eAuLKo8eHQ5cFQW2kHvRI+LZQ=
9
+ OFNSvB3amYHYvcSdVpA4/9zqjGI=
10
10
  </data>
11
11
  <key>Headers/QmsPlugin.h</key>
12
12
  <data>
@@ -46,7 +46,7 @@
46
46
  </data>
47
47
  <key>en.json</key>
48
48
  <data>
49
- jJePlr0jVQ0oMyMuz9T0D2I97JU=
49
+ 4Tqlnsl9cvRAJ3mMAQNj1MokMPA=
50
50
  </data>
51
51
  </dict>
52
52
  <key>files2</key>
@@ -55,7 +55,7 @@
55
55
  <dict>
56
56
  <key>hash2</key>
57
57
  <data>
58
- TJCmDXhTLBWwv/j4ARNk/VZD7zBRw8ormYCou4/wAlk=
58
+ gi1+dFKH/mzhWhHXI7FnH1u9DFI1VBn0+nH5FFy2cQk=
59
59
  </data>
60
60
  </dict>
61
61
  <key>Headers/QmsPlugin.h</key>
@@ -118,7 +118,7 @@
118
118
  <dict>
119
119
  <key>hash2</key>
120
120
  <data>
121
- Z4eYf4Co8BLRvV0MN9d9VLOtDoCQTpIqzplRDCXhQPg=
121
+ 3gHzwkpXeTuAPWs/zdPLAma6GZdL51xbjVc4VR+WSrk=
122
122
  </data>
123
123
  </dict>
124
124
  </dict>
@@ -232,7 +232,7 @@
232
232
  "BY_CATEGORY": "By Category",
233
233
  "BY_CONTRACTOR": "By Contractor",
234
234
  "DESELECT_ALL": "Deselect All",
235
- "SELECT_ALL": "Select All Statuses",
235
+ "SELECT_ALL": "Select All",
236
236
  "SEARCH_LABEL1": "Search Issues",
237
237
  "REJECTED": "Rejected",
238
238
  "TAKE_PHOTO": "Take Photo",
@@ -447,7 +447,7 @@
447
447
  "REJECTS": "Reject",
448
448
  "PHOTO_UPLOAD": "Photo Upload",
449
449
  "STORAGE_PERMISSION_MESSAGE": "Storage permission required to access this function",
450
- "SELECT_ISSUE": " - Select Issue -",
450
+ "SELECT_ISSUE": "Select Issue",
451
451
  "VIEW_SUMMARY": "View Summary",
452
452
  "SIGN_OFF_": "Sign Off",
453
453
  "CANCEL_POA_MESSAGE": "Cancel pending owner acceptance sign off?",
@@ -775,8 +775,8 @@
775
775
  "TUTORIAL_LINKSUB2": "The link created and shared by you will allow your authorised person to view the submitted issues.",
776
776
  "TUTORIAL_LINKTITLE3": "Change link access at your convenience",
777
777
  "TUTORIAL_LINKSUB3": "Toggle to switch link access when you no longer need the authorised person’s assistance.",
778
- "HANDOVER_SURVEY": "Handover Survey",
778
+ "HANDOVER_SURVEY": "Customer Satisfaction Survey",
779
779
  "EMPTY_SURVEY": "Please fill up the required fields in this survey before submitting.",
780
780
  "CONFIRM_SUBMIT_SURVEY": "Confirm to submit survey ?",
781
- "ALERT_MESSAGE_ISSUE_SURVEY": "Please complete the survey before submitting an issue."
781
+ "ALERT_MESSAGE_ISSUE_SURVEY": "Please complete the customer satisfaction survey before submitting an issue."
782
782
  }
@@ -6,7 +6,7 @@
6
6
  <dict>
7
7
  <key>Assets.car</key>
8
8
  <data>
9
- T6eAuLKo8eHQ5cFQW2kHvRI+LZQ=
9
+ OFNSvB3amYHYvcSdVpA4/9zqjGI=
10
10
  </data>
11
11
  <key>Headers/QmsPlugin.h</key>
12
12
  <data>
@@ -46,7 +46,7 @@
46
46
  </data>
47
47
  <key>en.json</key>
48
48
  <data>
49
- jJePlr0jVQ0oMyMuz9T0D2I97JU=
49
+ 4Tqlnsl9cvRAJ3mMAQNj1MokMPA=
50
50
  </data>
51
51
  </dict>
52
52
  <key>files2</key>
@@ -55,7 +55,7 @@
55
55
  <dict>
56
56
  <key>hash2</key>
57
57
  <data>
58
- TJCmDXhTLBWwv/j4ARNk/VZD7zBRw8ormYCou4/wAlk=
58
+ gi1+dFKH/mzhWhHXI7FnH1u9DFI1VBn0+nH5FFy2cQk=
59
59
  </data>
60
60
  </dict>
61
61
  <key>Headers/QmsPlugin.h</key>
@@ -118,7 +118,7 @@
118
118
  <dict>
119
119
  <key>hash2</key>
120
120
  <data>
121
- Z4eYf4Co8BLRvV0MN9d9VLOtDoCQTpIqzplRDCXhQPg=
121
+ 3gHzwkpXeTuAPWs/zdPLAma6GZdL51xbjVc4VR+WSrk=
122
122
  </data>
123
123
  </dict>
124
124
  </dict>
@@ -232,7 +232,7 @@
232
232
  "BY_CATEGORY": "By Category",
233
233
  "BY_CONTRACTOR": "By Contractor",
234
234
  "DESELECT_ALL": "Deselect All",
235
- "SELECT_ALL": "Select All Statuses",
235
+ "SELECT_ALL": "Select All",
236
236
  "SEARCH_LABEL1": "Search Issues",
237
237
  "REJECTED": "Rejected",
238
238
  "TAKE_PHOTO": "Take Photo",
@@ -447,7 +447,7 @@
447
447
  "REJECTS": "Reject",
448
448
  "PHOTO_UPLOAD": "Photo Upload",
449
449
  "STORAGE_PERMISSION_MESSAGE": "Storage permission required to access this function",
450
- "SELECT_ISSUE": " - Select Issue -",
450
+ "SELECT_ISSUE": "Select Issue",
451
451
  "VIEW_SUMMARY": "View Summary",
452
452
  "SIGN_OFF_": "Sign Off",
453
453
  "CANCEL_POA_MESSAGE": "Cancel pending owner acceptance sign off?",
@@ -775,8 +775,8 @@
775
775
  "TUTORIAL_LINKSUB2": "The link created and shared by you will allow your authorised person to view the submitted issues.",
776
776
  "TUTORIAL_LINKTITLE3": "Change link access at your convenience",
777
777
  "TUTORIAL_LINKSUB3": "Toggle to switch link access when you no longer need the authorised person’s assistance.",
778
- "HANDOVER_SURVEY": "Handover Survey",
778
+ "HANDOVER_SURVEY": "Customer Satisfaction Survey",
779
779
  "EMPTY_SURVEY": "Please fill up the required fields in this survey before submitting.",
780
780
  "CONFIRM_SUBMIT_SURVEY": "Confirm to submit survey ?",
781
- "ALERT_MESSAGE_ISSUE_SURVEY": "Please complete the survey before submitting an issue."
781
+ "ALERT_MESSAGE_ISSUE_SURVEY": "Please complete the customer satisfaction survey before submitting an issue."
782
782
  }
@@ -10,6 +10,7 @@ export const QmsDashboardView = ({
10
10
  style,
11
11
  onClose,
12
12
  onLogout,
13
+ onActiveAccountChange,
13
14
  onAnalyticsScreen,
14
15
  onAnalyticsEvent,
15
16
  onLocate,
@@ -90,6 +91,11 @@ export const QmsDashboardView = ({
90
91
  const subscription = DeviceEventEmitter.addListener('QmsSdkOnLogout', () => onLogout());
91
92
  return () => subscription.remove();
92
93
  }, [onLogout]);
94
+ useEffect(() => {
95
+ if (!onActiveAccountChange) return;
96
+ const subscription = DeviceEventEmitter.addListener('QmsSdkOnActiveAccountChange', payload => onActiveAccountChange(payload ?? {}));
97
+ return () => subscription.remove();
98
+ }, [onActiveAccountChange]);
93
99
  useEffect(() => {
94
100
  if (!onAnalyticsScreen) return;
95
101
  const subscription = DeviceEventEmitter.addListener('QmsSdkOnAnalyticsScreen', event => onAnalyticsScreen(event?.screenName, event?.screenClass));
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","DeviceEventEmitter","NativeModules","View","jsx","_jsx","QmsModule","QmsDashboardView","style","onClose","onLogout","onAnalyticsScreen","onAnalyticsEvent","onLocate","clientID","clientCode","ClientID","ClientCode","user_token","token","userToken","autoShow","themeColor","headerThemeColor","headerTextColor","headerIconColor","accentColor","fontFamily","isOrigin","payload","resolvedClientID","resolvedClientCode","resolvedToken","hasPayload","Object","keys","length","showQms","setPrimaryColor","resolvedHeaderColor","setHeaderTextColor","resolvedHeaderIconColor","setHeaderIconColor","setAccentColor","setFontFamily","showQmsWithPayload","subscription","addListener","remove","event","screenName","screenClass","eventName","params","lat","lng"],"sourceRoot":"../../src","sources":["QmsDashboardView.android.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","DeviceEventEmitter","NativeModules","View","jsx","_jsx","QmsModule","QmsDashboardView","style","onClose","onLogout","onActiveAccountChange","onAnalyticsScreen","onAnalyticsEvent","onLocate","clientID","clientCode","ClientID","ClientCode","user_token","token","userToken","autoShow","themeColor","headerThemeColor","headerTextColor","headerIconColor","accentColor","fontFamily","isOrigin","payload","resolvedClientID","resolvedClientCode","resolvedToken","hasPayload","Object","keys","length","showQms","setPrimaryColor","resolvedHeaderColor","setHeaderTextColor","resolvedHeaderIconColor","setHeaderIconColor","setAccentColor","setFontFamily","showQmsWithPayload","subscription","addListener","remove","event","screenName","screenClass","eventName","params","lat","lng"],"sourceRoot":"../../src","sources":["QmsDashboardView.android.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,kBAAkB,EAAEC,aAAa,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMvE,MAAM;EAAEC;AAAU,CAAC,GAAGJ,aAqBrB;AAED,OAAO,MAAMK,gBAAiD,GAAGA,CAAC;EAChEC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRC,qBAAqB;EACrBC,iBAAiB;EACjBC,gBAAgB;EAChBC,QAAQ;EACRC,QAAQ;EACRC,UAAU;EACVC,QAAQ;EACRC,UAAU;EACVC,UAAU;EACVC,KAAK;EACLC,SAAS;EACTC,QAAQ,GAAG,IAAI;EACfC,UAAU;EACVC,gBAAgB;EAChBC,eAAe;EACfC,eAAe;EACfC,WAAW;EACXC,UAAU;EACVC,QAAQ,GAAG,KAAK;EAChBC;AACF,CAAC,KAAK;EACJ9B,SAAS,CAAC,MAAM;IACd,MAAM+B,gBAAgB,GAAGhB,QAAQ,IAAIE,QAAQ,IAAI,EAAE;IACnD,MAAMe,kBAAkB,GAAGhB,UAAU,IAAIE,UAAU,IAAI,EAAE;IACzD,MAAMe,aAAa,GAAGd,UAAU,IAAIC,KAAK,IAAIC,SAAS,IAAI,EAAE;IAC5D,MAAMa,UAAU,GAAGJ,OAAO,IAAI,IAAI,IAAIK,MAAM,CAACC,IAAI,CAACN,OAAO,CAAC,CAACO,MAAM,GAAG,CAAC;IAErE,IAAIf,QAAQ,IAAIhB,SAAS,EAAEgC,OAAO,EAAE;MAClC,IAAIhC,SAAS,EAAEiC,eAAe,EAAE;QAC9BjC,SAAS,CAACiC,eAAe,CAAChB,UAAU,IAAI,EAAE,CAAC;MAC7C;MACA,MAAMiB,mBAAmB,GAAGhB,gBAAgB,IAAIC,eAAe,IAAI,EAAE;MACrE,IAAInB,SAAS,EAAEmC,kBAAkB,EAAE;QACjCnC,SAAS,CAACmC,kBAAkB,CAACD,mBAAmB,CAAC;MACnD;MACA,MAAME,uBAAuB,GAAGlB,gBAAgB,IAAIE,eAAe,IAAI,EAAE;MACzE,IAAIpB,SAAS,EAAEqC,kBAAkB,EAAE;QACjCrC,SAAS,CAACqC,kBAAkB,CAACD,uBAAuB,CAAC;MACvD;MACA,IAAIpC,SAAS,EAAEsC,cAAc,EAAE;QAC7BtC,SAAS,CAACsC,cAAc,CAACjB,WAAW,IAAI,EAAE,CAAC;MAC7C;MACA,IAAIrB,SAAS,EAAEuC,aAAa,EAAE;QAC5BvC,SAAS,CAACuC,aAAa,CAACjB,UAAU,IAAI,EAAE,CAAC;MAC3C;MACA;MACA,IAAIM,UAAU,IAAI5B,SAAS,EAAEwC,kBAAkB,EAAE;QAC/CxC,SAAS,CAACwC,kBAAkB,CAC1Bb,aAAa,EACbF,gBAAgB,EAChBC,kBAAkB,EAClBH,QAAQ,EACRC,OACF,CAAC;MACH,CAAC,MAAM;QACLxB,SAAS,CAACgC,OAAO,CACfL,aAAa,EACbF,gBAAgB,EAChBC,kBAAkB,EAClBH,QACF,CAAC;MACH;IACF;EACF,CAAC,EAAE,CACDd,QAAQ,EACRC,UAAU,EACVC,QAAQ,EACRC,UAAU,EACVC,UAAU,EACVC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,EACfC,WAAW,EACXC,UAAU,EACVC,QAAQ,EACRC,OAAO,CACR,CAAC;EAEF9B,SAAS,CAAC,MAAM;IACd,IAAIM,SAAS,EAAEiC,eAAe,EAAE;MAC9BjC,SAAS,CAACiC,eAAe,CAAChB,UAAU,IAAI,EAAE,CAAC;IAC7C;IACA,MAAMiB,mBAAmB,GAAGhB,gBAAgB,IAAIC,eAAe,IAAI,EAAE;IACrE,IAAInB,SAAS,EAAEmC,kBAAkB,EAAE;MACjCnC,SAAS,CAACmC,kBAAkB,CAACD,mBAAmB,CAAC;IACnD;IACA,MAAME,uBAAuB,GAAGlB,gBAAgB,IAAIE,eAAe,IAAI,EAAE;IACzE,IAAIpB,SAAS,EAAEqC,kBAAkB,EAAE;MACjCrC,SAAS,CAACqC,kBAAkB,CAACD,uBAAuB,CAAC;IACvD;IACA,IAAIpC,SAAS,EAAEsC,cAAc,EAAE;MAC7BtC,SAAS,CAACsC,cAAc,CAACjB,WAAW,IAAI,EAAE,CAAC;IAC7C;IACA,IAAIrB,SAAS,EAAEuC,aAAa,EAAE;MAC5BvC,SAAS,CAACuC,aAAa,CAACjB,UAAU,IAAI,EAAE,CAAC;IAC3C;EACF,CAAC,EAAE,CACDL,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,EACfC,WAAW,EACXC,UAAU,CACX,CAAC;EAEF5B,SAAS,CAAC,MAAM;IACd,IAAI,CAACS,OAAO,EAAE;IACd,MAAMsC,YAAY,GAAG9C,kBAAkB,CAAC+C,WAAW,CAAC,eAAe,EAAE,MACnEvC,OAAO,CAAC,CACV,CAAC;IACD,OAAO,MAAMsC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACxC,OAAO,CAAC,CAAC;EAEbT,SAAS,CAAC,MAAM;IACd,IAAI,CAACU,QAAQ,EAAE;IACf,MAAMqC,YAAY,GAAG9C,kBAAkB,CAAC+C,WAAW,CAAC,gBAAgB,EAAE,MACpEtC,QAAQ,CAAC,CACX,CAAC;IACD,OAAO,MAAMqC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACvC,QAAQ,CAAC,CAAC;EAEdV,SAAS,CAAC,MAAM;IACd,IAAI,CAACW,qBAAqB,EAAE;IAC5B,MAAMoC,YAAY,GAAG9C,kBAAkB,CAAC+C,WAAW,CACjD,6BAA6B,EAC5BlB,OAAiC,IAChCnB,qBAAqB,CAACmB,OAAO,IAAI,CAAC,CAAC,CACvC,CAAC;IACD,OAAO,MAAMiB,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACtC,qBAAqB,CAAC,CAAC;EAE3BX,SAAS,CAAC,MAAM;IACd,IAAI,CAACY,iBAAiB,EAAE;IACxB,MAAMmC,YAAY,GAAG9C,kBAAkB,CAAC+C,WAAW,CACjD,yBAAyB,EACxBE,KAAqD,IACpDtC,iBAAiB,CAACsC,KAAK,EAAEC,UAAU,EAAED,KAAK,EAAEE,WAAW,CAC3D,CAAC;IACD,OAAO,MAAML,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACrC,iBAAiB,CAAC,CAAC;EAEvBZ,SAAS,CAAC,MAAM;IACd,IAAI,CAACa,gBAAgB,EAAE;IACvB,MAAMkC,YAAY,GAAG9C,kBAAkB,CAAC+C,WAAW,CACjD,wBAAwB,EACvBE,KAAgE,IAC/DrC,gBAAgB,CAACqC,KAAK,EAAEG,SAAS,EAAEH,KAAK,EAAEI,MAAM,IAAI,IAAI,CAC5D,CAAC;IACD,OAAO,MAAMP,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACpC,gBAAgB,CAAC,CAAC;EACtBb,SAAS,CAAC,MAAM;IACd,IAAI,CAACc,QAAQ,EAAE;IACf,MAAMiC,YAAY,GAAG9C,kBAAkB,CAAC+C,WAAW,CACjD,gBAAgB,EACfE,KAAsC,IACrCpC,QAAQ,CAACoC,KAAK,EAAEK,GAAG,EAAEL,KAAK,EAAEM,GAAG,CACnC,CAAC;IACD,OAAO,MAAMT,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACnC,QAAQ,CAAC,CAAC;EACd;EACA;EACA,oBAAOT,IAAA,CAACF,IAAI;IAACK,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC/B,CAAC","ignoreList":[]}
@@ -11,6 +11,7 @@ export const QmsDashboardView = props => {
11
11
  const {
12
12
  onClose,
13
13
  onLogout,
14
+ onActiveAccountChange,
14
15
  onAnalyticsScreen,
15
16
  onAnalyticsEvent,
16
17
  clientID,
@@ -45,7 +46,7 @@ export const QmsDashboardView = props => {
45
46
  module?.setFontFamily?.(fontFamily ?? '');
46
47
  }, [themeColor, resolvedHeaderColor, resolvedHeaderIconColor, accentColor, fontFamily]);
47
48
  useEffect(() => {
48
- if (!onClose && !onLogout) return;
49
+ if (!onClose && !onLogout && !onActiveAccountChange) return;
49
50
  const nativeEmitterModule = NativeModules.QmsDashboardEmitter;
50
51
  if (!nativeEmitterModule) return;
51
52
  const emitter = new NativeEventEmitter(nativeEmitterModule);
@@ -56,8 +57,11 @@ export const QmsDashboardView = props => {
56
57
  if (onLogout) {
57
58
  subscriptions.push(emitter.addListener('onLogout', onLogout));
58
59
  }
60
+ if (onActiveAccountChange) {
61
+ subscriptions.push(emitter.addListener('onActiveAccountChange', raw => onActiveAccountChange(raw ?? {})));
62
+ }
59
63
  return () => subscriptions.forEach(sub => sub.remove());
60
- }, [onClose, onLogout]);
64
+ }, [onClose, onLogout, onActiveAccountChange]);
61
65
  useEffect(() => {
62
66
  if (!onAnalyticsScreen) return;
63
67
  const subscription = DeviceEventEmitter.addListener('QmsSdkOnAnalyticsScreen', payload => onAnalyticsScreen(payload?.screenName, payload?.screenClass));
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","DeviceEventEmitter","NativeEventEmitter","NativeModules","requireNativeComponent","jsx","_jsx","NativeQmsDashboardView","QmsDashboardView","props","onClose","onLogout","onAnalyticsScreen","onAnalyticsEvent","clientID","clientCode","ClientID","ClientCode","user_token","userToken","token","isOrigin","themeColor","headerThemeColor","headerTextColor","headerIconColor","accentColor","fontFamily","payload","rest","resolvedClientID","resolvedClientCode","resolvedToken","resolvedHeaderColor","resolvedHeaderIconColor","module","QmsModule","setPrimaryColor","setHeaderTextColor","setHeaderIconColor","setAccentColor","setFontFamily","nativeEmitterModule","QmsDashboardEmitter","emitter","subscriptions","push","addListener","forEach","sub","remove","subscription","screenName","screenClass","eventName","params"],"sourceRoot":"../../src","sources":["QmsDashboardView.ios.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","DeviceEventEmitter","NativeEventEmitter","NativeModules","requireNativeComponent","jsx","_jsx","NativeQmsDashboardView","QmsDashboardView","props","onClose","onLogout","onActiveAccountChange","onAnalyticsScreen","onAnalyticsEvent","clientID","clientCode","ClientID","ClientCode","user_token","userToken","token","isOrigin","themeColor","headerThemeColor","headerTextColor","headerIconColor","accentColor","fontFamily","payload","rest","resolvedClientID","resolvedClientCode","resolvedToken","resolvedHeaderColor","resolvedHeaderIconColor","module","QmsModule","setPrimaryColor","setHeaderTextColor","setHeaderIconColor","setAccentColor","setFontFamily","nativeEmitterModule","QmsDashboardEmitter","emitter","subscriptions","push","addListener","raw","forEach","sub","remove","subscription","screenName","screenClass","eventName","params"],"sourceRoot":"../../src","sources":["QmsDashboardView.ios.tsx"],"mappings":"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","ignoreList":[]}
@@ -18,4 +18,34 @@ export function toFirebaseEventName(raw) {
18
18
  .replace(/^_+|_+$/g, '') // strip leading/trailing underscores
19
19
  .slice(0, 40); // Firebase max 40 chars
20
20
  }
21
+
22
+ // ---------------------------------------------------------------------------
23
+ // Structured analytics event types
24
+ // ---------------------------------------------------------------------------
25
+
26
+ /**
27
+ * Flattens a structured QmsEventParams into Firebase-compatible key-value params.
28
+ * Firebase logEvent only supports flat string/number values.
29
+ *
30
+ * Usage with @react-native-firebase/analytics:
31
+ * analytics().logEvent(
32
+ * toFirebaseEventName(eventName),
33
+ * toFirebaseParams(params as QmsEventParams)
34
+ * );
35
+ */
36
+ export function toFirebaseParams(params) {
37
+ return {
38
+ user_name: params.user?.name ?? '',
39
+ user_email: params.user?.email ?? '',
40
+ unit_project: params.unit?.project ?? '',
41
+ unit_no: params.unit?.unit_no ?? '',
42
+ lot_no: params.unit?.lot_no ?? '',
43
+ action_name: params.action?.name ?? '',
44
+ action_type: params.action?.type ?? '',
45
+ action_clicked: params.action?.clicked ?? '',
46
+ action_from: params.action?.from ?? '',
47
+ action_to: params.action?.to ?? '',
48
+ created_at: params.created_at ?? ''
49
+ };
50
+ }
21
51
  //# sourceMappingURL=analyticsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["toFirebaseEventName","raw","trim","toLowerCase","replace","slice"],"sourceRoot":"../../src","sources":["analyticsUtils.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAACC,GAA8B,EAAU;EAC1E,IAAI,CAACA,GAAG,EAAE,OAAO,EAAE;EAEnB,OAAOA,GAAG,CACPC,IAAI,CAAC,CAAC,CACNC,WAAW,CAAC,CAAC,CACbC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;EAAA,CAC5BA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAK;EAAA,CAC5BC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAe;AACjC","ignoreList":[]}
1
+ {"version":3,"names":["toFirebaseEventName","raw","trim","toLowerCase","replace","slice","toFirebaseParams","params","user_name","user","name","user_email","email","unit_project","unit","project","unit_no","lot_no","action_name","action","action_type","type","action_clicked","clicked","action_from","from","action_to","to","created_at"],"sourceRoot":"../../src","sources":["analyticsUtils.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAACC,GAA8B,EAAU;EAC1E,IAAI,CAACA,GAAG,EAAE,OAAO,EAAE;EAEnB,OAAOA,GAAG,CACPC,IAAI,CAAC,CAAC,CACNC,WAAW,CAAC,CAAC,CACbC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;EAAA,CAC5BA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAK;EAAA,CAC5BC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAe;AACjC;;AAEA;AACA;AACA;;AAkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,MAAsB,EACE;EACxB,OAAO;IACLC,SAAS,EAAOD,MAAM,CAACE,IAAI,EAAEC,IAAI,IAAQ,EAAE;IAC3CC,UAAU,EAAMJ,MAAM,CAACE,IAAI,EAAEG,KAAK,IAAO,EAAE;IAC3CC,YAAY,EAAIN,MAAM,CAACO,IAAI,EAAEC,OAAO,IAAK,EAAE;IAC3CC,OAAO,EAAST,MAAM,CAACO,IAAI,EAAEE,OAAO,IAAK,EAAE;IAC3CC,MAAM,EAAUV,MAAM,CAACO,IAAI,EAAEG,MAAM,IAAM,EAAE;IAC3CC,WAAW,EAAKX,MAAM,CAACY,MAAM,EAAET,IAAI,IAAM,EAAE;IAC3CU,WAAW,EAAKb,MAAM,CAACY,MAAM,EAAEE,IAAI,IAAM,EAAE;IAC3CC,cAAc,EAAEf,MAAM,CAACY,MAAM,EAAEI,OAAO,IAAI,EAAE;IAC5CC,WAAW,EAAKjB,MAAM,CAACY,MAAM,EAAEM,IAAI,IAAM,EAAE;IAC3CC,SAAS,EAAOnB,MAAM,CAACY,MAAM,EAAEQ,EAAE,IAAQ,EAAE;IAC3CC,UAAU,EAAMrB,MAAM,CAACqB,UAAU,IAAQ;EAC3C,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["QmsDashboardView","QmsPlugin"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,uBAAoB;AAErD,SAASC,SAAS,QAAQ,gBAAa","ignoreList":[]}
1
+ {"version":3,"names":["QmsDashboardView","QmsPlugin"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,uBAAoB;AAKrD,SAASC,SAAS,QAAQ,gBAAa","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"QmsDashboardView.android.d.ts","sourceRoot":"","sources":["../../../src/QmsDashboardView.android.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAyBtE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA+J5D,CAAC"}
1
+ {"version":3,"file":"QmsDashboardView.android.d.ts","sourceRoot":"","sources":["../../../src/QmsDashboardView.android.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAyBlC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0K5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"QmsDashboardView.ios.d.ts","sourceRoot":"","sources":["../../../src/QmsDashboardView.ios.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAOzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAMtE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAyG5D,CAAC"}
1
+ {"version":3,"file":"QmsDashboardView.ios.d.ts","sourceRoot":"","sources":["../../../src/QmsDashboardView.ios.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAOzC,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAMlC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAkH5D,CAAC"}
@@ -1,8 +1,21 @@
1
1
  import type { StyleProp, ViewStyle } from 'react-native';
2
+ /** Payload from native when the xcframework active session identity changes (switch account, logout with fallback, etc.). */
3
+ export type QmsActiveAccountPayload = {
4
+ hasActiveAccount?: boolean;
5
+ storedAccountCount?: number;
6
+ clientID?: string;
7
+ clientCode?: string;
8
+ userToken?: string;
9
+ userName?: string;
10
+ company?: string;
11
+ name?: string;
12
+ };
2
13
  export type QmsDashboardViewProps = {
3
14
  style?: StyleProp<ViewStyle>;
4
15
  onClose?: (event?: unknown) => void;
5
16
  onLogout?: (event?: unknown) => void;
17
+ /** Called when native multi-account state changes; persist with {@link QmsActiveAccountPayload} for RN login storage. */
18
+ onActiveAccountChange?: (payload: QmsActiveAccountPayload) => void;
6
19
  onAnalyticsScreen?: (screenName?: string, screenClass?: string) => void;
7
20
  onAnalyticsEvent?: (eventName?: string, params?: Record<string, unknown> | null) => void;
8
21
  onLocate?: (lat?: string, lng?: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"QmsDashboardView.types.d.ts","sourceRoot":"","sources":["../../../src/QmsDashboardView.types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,iBAAiB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,gBAAgB,CAAC,EAAE,CACjB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KACpC,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1C,CAAC"}
1
+ {"version":3,"file":"QmsDashboardView.types.d.ts","sourceRoot":"","sources":["../../../src/QmsDashboardView.types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,6HAA6H;AAC7H,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,yHAAyH;IACzH,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACnE,iBAAiB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,gBAAgB,CAAC,EAAE,CACjB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KACpC,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1C,CAAC"}
@@ -11,4 +11,35 @@
11
11
  * "ScreenAt" → "screenat"
12
12
  */
13
13
  export declare function toFirebaseEventName(raw: string | undefined | null): string;
14
+ export type QmsActionType = 'navigation' | 'view' | 'select' | 'submit' | 'edit' | 'update' | 'delete' | 'back' | 'refresh' | 'create';
15
+ export type QmsEventParams = {
16
+ user: {
17
+ name: string;
18
+ email: string;
19
+ };
20
+ unit: {
21
+ project: string;
22
+ unit_no: string;
23
+ lot_no: string;
24
+ };
25
+ action: {
26
+ name: string;
27
+ type: QmsActionType;
28
+ clicked: string;
29
+ from: string;
30
+ to: string;
31
+ };
32
+ created_at: string;
33
+ };
34
+ /**
35
+ * Flattens a structured QmsEventParams into Firebase-compatible key-value params.
36
+ * Firebase logEvent only supports flat string/number values.
37
+ *
38
+ * Usage with @react-native-firebase/analytics:
39
+ * analytics().logEvent(
40
+ * toFirebaseEventName(eventName),
41
+ * toFirebaseParams(params as QmsEventParams)
42
+ * );
43
+ */
44
+ export declare function toFirebaseParams(params: QmsEventParams): Record<string, string>;
14
45
  //# sourceMappingURL=analyticsUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyticsUtils.d.ts","sourceRoot":"","sources":["../../../src/analyticsUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAS1E"}
1
+ {"version":3,"file":"analyticsUtils.d.ts","sourceRoot":"","sources":["../../../src/analyticsUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAS1E;AAMD,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,aAAa,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,GACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB"}
@@ -1,5 +1,5 @@
1
1
  export { QmsDashboardView } from './QmsDashboardView';
2
- export type { QmsDashboardViewProps } from './QmsDashboardView.types';
2
+ export type { QmsActiveAccountPayload, QmsDashboardViewProps, } from './QmsDashboardView.types';
3
3
  export { QmsPlugin } from './QmsPlugin';
4
4
  export type { InAppNotificationPayload } from './QmsPlugin';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@convep_mobilogy/react-native-qms-plugin",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "To handle defect managment",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -1,6 +1,9 @@
1
1
  import React, { useEffect } from 'react';
2
2
  import { DeviceEventEmitter, NativeModules, View } from 'react-native';
3
- import type { QmsDashboardViewProps } from './QmsDashboardView.types';
3
+ import type {
4
+ QmsActiveAccountPayload,
5
+ QmsDashboardViewProps,
6
+ } from './QmsDashboardView.types';
4
7
 
5
8
  const { QmsModule } = NativeModules as {
6
9
  QmsModule?: {
@@ -29,6 +32,7 @@ export const QmsDashboardView: React.FC<QmsDashboardViewProps> = ({
29
32
  style,
30
33
  onClose,
31
34
  onLogout,
35
+ onActiveAccountChange,
32
36
  onAnalyticsScreen,
33
37
  onAnalyticsEvent,
34
38
  onLocate,
@@ -153,6 +157,16 @@ export const QmsDashboardView: React.FC<QmsDashboardViewProps> = ({
153
157
  return () => subscription.remove();
154
158
  }, [onLogout]);
155
159
 
160
+ useEffect(() => {
161
+ if (!onActiveAccountChange) return;
162
+ const subscription = DeviceEventEmitter.addListener(
163
+ 'QmsSdkOnActiveAccountChange',
164
+ (payload?: QmsActiveAccountPayload) =>
165
+ onActiveAccountChange(payload ?? {})
166
+ );
167
+ return () => subscription.remove();
168
+ }, [onActiveAccountChange]);
169
+
156
170
  useEffect(() => {
157
171
  if (!onAnalyticsScreen) return;
158
172
  const subscription = DeviceEventEmitter.addListener(
@@ -7,7 +7,10 @@ import {
7
7
  NativeModules,
8
8
  requireNativeComponent,
9
9
  } from 'react-native';
10
- import type { QmsDashboardViewProps } from './QmsDashboardView.types';
10
+ import type {
11
+ QmsActiveAccountPayload,
12
+ QmsDashboardViewProps,
13
+ } from './QmsDashboardView.types';
11
14
 
12
15
  // Make sure your iOS native view manager is exported as "QmsDashboardView"
13
16
  const NativeQmsDashboardView =
@@ -17,6 +20,7 @@ export const QmsDashboardView: React.FC<QmsDashboardViewProps> = (props) => {
17
20
  const {
18
21
  onClose,
19
22
  onLogout,
23
+ onActiveAccountChange,
20
24
  onAnalyticsScreen,
21
25
  onAnalyticsEvent,
22
26
  clientID,
@@ -69,7 +73,7 @@ export const QmsDashboardView: React.FC<QmsDashboardViewProps> = (props) => {
69
73
  ]);
70
74
 
71
75
  useEffect(() => {
72
- if (!onClose && !onLogout) return;
76
+ if (!onClose && !onLogout && !onActiveAccountChange) return;
73
77
  const nativeEmitterModule = NativeModules.QmsDashboardEmitter;
74
78
  if (!nativeEmitterModule) return;
75
79
  const emitter = new NativeEventEmitter(nativeEmitterModule);
@@ -80,8 +84,16 @@ export const QmsDashboardView: React.FC<QmsDashboardViewProps> = (props) => {
80
84
  if (onLogout) {
81
85
  subscriptions.push(emitter.addListener('onLogout', onLogout));
82
86
  }
87
+ if (onActiveAccountChange) {
88
+ subscriptions.push(
89
+ emitter.addListener(
90
+ 'onActiveAccountChange',
91
+ (raw?: QmsActiveAccountPayload) => onActiveAccountChange(raw ?? {})
92
+ )
93
+ );
94
+ }
83
95
  return () => subscriptions.forEach((sub) => sub.remove());
84
- }, [onClose, onLogout]);
96
+ }, [onClose, onLogout, onActiveAccountChange]);
85
97
 
86
98
  useEffect(() => {
87
99
  if (!onAnalyticsScreen) return;
@@ -2,10 +2,24 @@
2
2
 
3
3
  import type { StyleProp, ViewStyle } from 'react-native';
4
4
 
5
+ /** Payload from native when the xcframework active session identity changes (switch account, logout with fallback, etc.). */
6
+ export type QmsActiveAccountPayload = {
7
+ hasActiveAccount?: boolean;
8
+ storedAccountCount?: number;
9
+ clientID?: string;
10
+ clientCode?: string;
11
+ userToken?: string;
12
+ userName?: string;
13
+ company?: string;
14
+ name?: string;
15
+ };
16
+
5
17
  export type QmsDashboardViewProps = {
6
18
  style?: StyleProp<ViewStyle>;
7
19
  onClose?: (event?: unknown) => void;
8
20
  onLogout?: (event?: unknown) => void;
21
+ /** Called when native multi-account state changes; persist with {@link QmsActiveAccountPayload} for RN login storage. */
22
+ onActiveAccountChange?: (payload: QmsActiveAccountPayload) => void;
9
23
  onAnalyticsScreen?: (screenName?: string, screenClass?: string) => void;
10
24
  onAnalyticsEvent?: (
11
25
  eventName?: string,
@@ -20,3 +20,67 @@ export function toFirebaseEventName(raw: string | undefined | null): string {
20
20
  .replace(/^_+|_+$/g, '') // strip leading/trailing underscores
21
21
  .slice(0, 40); // Firebase max 40 chars
22
22
  }
23
+
24
+ // ---------------------------------------------------------------------------
25
+ // Structured analytics event types
26
+ // ---------------------------------------------------------------------------
27
+
28
+ export type QmsActionType =
29
+ | 'navigation'
30
+ | 'view'
31
+ | 'select'
32
+ | 'submit'
33
+ | 'edit'
34
+ | 'update'
35
+ | 'delete'
36
+ | 'back'
37
+ | 'refresh'
38
+ | 'create';
39
+
40
+ export type QmsEventParams = {
41
+ user: {
42
+ name: string;
43
+ email: string;
44
+ };
45
+ unit: {
46
+ project: string;
47
+ unit_no: string;
48
+ lot_no: string;
49
+ };
50
+ action: {
51
+ name: string;
52
+ type: QmsActionType;
53
+ clicked: string;
54
+ from: string;
55
+ to: string;
56
+ };
57
+ created_at: string;
58
+ };
59
+
60
+ /**
61
+ * Flattens a structured QmsEventParams into Firebase-compatible key-value params.
62
+ * Firebase logEvent only supports flat string/number values.
63
+ *
64
+ * Usage with @react-native-firebase/analytics:
65
+ * analytics().logEvent(
66
+ * toFirebaseEventName(eventName),
67
+ * toFirebaseParams(params as QmsEventParams)
68
+ * );
69
+ */
70
+ export function toFirebaseParams(
71
+ params: QmsEventParams
72
+ ): Record<string, string> {
73
+ return {
74
+ user_name: params.user?.name ?? '',
75
+ user_email: params.user?.email ?? '',
76
+ unit_project: params.unit?.project ?? '',
77
+ unit_no: params.unit?.unit_no ?? '',
78
+ lot_no: params.unit?.lot_no ?? '',
79
+ action_name: params.action?.name ?? '',
80
+ action_type: params.action?.type ?? '',
81
+ action_clicked: params.action?.clicked ?? '',
82
+ action_from: params.action?.from ?? '',
83
+ action_to: params.action?.to ?? '',
84
+ created_at: params.created_at ?? '',
85
+ };
86
+ }
package/src/index.tsx CHANGED
@@ -1,4 +1,7 @@
1
1
  export { QmsDashboardView } from './QmsDashboardView';
2
- export type { QmsDashboardViewProps } from './QmsDashboardView.types';
2
+ export type {
3
+ QmsActiveAccountPayload,
4
+ QmsDashboardViewProps,
5
+ } from './QmsDashboardView.types';
3
6
  export { QmsPlugin } from './QmsPlugin';
4
7
  export type { InAppNotificationPayload } from './QmsPlugin';