@wlloyalty/wll-react-sdk 1.1.0 → 1.2.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.
package/dist/web.js CHANGED
@@ -20640,6 +20640,7 @@ var useGroupRefresh = function (_a) {
20640
20640
  }, [id, sdk, enabled, setGroupData]);
20641
20641
  };
20642
20642
 
20643
+ var inFlightRequests = new Map();
20643
20644
  var useInitialGroupFetch = function (_a) {
20644
20645
  var id = _a.id,
20645
20646
  setGroupData = _a.setGroupData;
@@ -20651,32 +20652,42 @@ var useInitialGroupFetch = function (_a) {
20651
20652
  error = _c[0],
20652
20653
  setError = _c[1];
20653
20654
  React.useEffect(function () {
20655
+ if (!id || !(sdk === null || sdk === void 0 ? void 0 : sdk.refreshGroup)) {
20656
+ setError('Unable to fetch group data: invalid configuration');
20657
+ setIsLoading(false);
20658
+ return;
20659
+ }
20654
20660
  var cancelled = false;
20655
- var fetchGroup = function () {
20661
+ var fetch = function () {
20656
20662
  return __awaiter(void 0, void 0, void 0, function () {
20657
- var response;
20663
+ var existing, request, res;
20658
20664
  var _b;
20659
20665
  return __generator(this, function (_c) {
20660
20666
  switch (_c.label) {
20661
20667
  case 0:
20662
- if (!id || !(sdk === null || sdk === void 0 ? void 0 : sdk.refreshGroup)) {
20663
- setError('Unable to fetch group data: invalid configuration');
20664
- setIsLoading(false);
20665
- return [2 /*return*/];
20666
- }
20667
20668
  setIsLoading(true);
20668
20669
  setError(null);
20670
+ existing = inFlightRequests.get(id);
20671
+ request = existing !== null && existing !== void 0 ? existing : sdk.refreshGroup(id);
20672
+ if (!existing) {
20673
+ inFlightRequests.set(id, request);
20674
+ request.finally(function () {
20675
+ if (inFlightRequests.get(id) === request) {
20676
+ inFlightRequests.delete(id);
20677
+ }
20678
+ });
20679
+ }
20669
20680
  _c.label = 1;
20670
20681
  case 1:
20671
20682
  _c.trys.push([1, 3, 4, 5]);
20672
- return [4 /*yield*/, sdk.refreshGroup(id)];
20683
+ return [4 /*yield*/, request];
20673
20684
  case 2:
20674
- response = _c.sent();
20685
+ res = _c.sent();
20675
20686
  if (cancelled) return [2 /*return*/];
20676
- if ((response === null || response === void 0 ? void 0 : response.status) === 'success' && response.data) {
20677
- setGroupData(response.data);
20687
+ if ((res === null || res === void 0 ? void 0 : res.status) === 'success' && res.data) {
20688
+ setGroupData(res.data);
20678
20689
  } else {
20679
- setError((_b = response === null || response === void 0 ? void 0 : response.error) !== null && _b !== void 0 ? _b : 'Failed to fetch group data');
20690
+ setError((_b = res === null || res === void 0 ? void 0 : res.error) !== null && _b !== void 0 ? _b : 'Failed to fetch group data');
20680
20691
  }
20681
20692
  return [3 /*break*/, 5];
20682
20693
  case 3:
@@ -20692,7 +20703,7 @@ var useInitialGroupFetch = function (_a) {
20692
20703
  });
20693
20704
  });
20694
20705
  };
20695
- fetchGroup();
20706
+ fetch();
20696
20707
  return function () {
20697
20708
  cancelled = true;
20698
20709
  };