@wlloyalty/wll-react-sdk 1.0.111 → 1.0.113

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.
@@ -0,0 +1,8 @@
1
+ import { TGroup } from '../types/group';
2
+ type UseGroupRefreshProps = {
3
+ id: string;
4
+ enabled?: boolean;
5
+ setGroupData: (g: TGroup) => void;
6
+ };
7
+ export declare const useGroupRefresh: ({ id, enabled, setGroupData, }: UseGroupRefreshProps) => void;
8
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { TGroup } from '../types/group';
2
+ type UseInitialGroupFetchProps = {
3
+ id: string;
4
+ setGroupData: (group: TGroup) => void;
5
+ };
6
+ export declare const useInitialGroupFetch: ({ id, setGroupData, }: UseInitialGroupFetchProps) => {
7
+ isLoading: boolean;
8
+ error: string | null;
9
+ };
10
+ export {};
package/dist/web.js CHANGED
@@ -20595,6 +20595,114 @@ var ContentTile = Object.assign(ContentTileRoot, {
20595
20595
  });
20596
20596
  var ContentTile$1 = withTileFetching(ContentTile);
20597
20597
 
20598
+ var useGroupRefresh = function (_a) {
20599
+ var id = _a.id,
20600
+ _b = _a.enabled,
20601
+ enabled = _b === void 0 ? false : _b,
20602
+ setGroupData = _a.setGroupData;
20603
+ var sdk = useWllSdk();
20604
+ React.useEffect(function () {
20605
+ if (!enabled || !(sdk === null || sdk === void 0 ? void 0 : sdk.subscribeToDataChange)) {
20606
+ return;
20607
+ }
20608
+ var unsubscribe = sdk.subscribeToDataChange('GROUP_DATA_CHANGED', function () {
20609
+ return __awaiter(void 0, void 0, void 0, function () {
20610
+ var res, err_1;
20611
+ return __generator(this, function (_a) {
20612
+ switch (_a.label) {
20613
+ case 0:
20614
+ if (!id || !sdk || !sdk.refreshGroup) {
20615
+ return [2 /*return*/];
20616
+ }
20617
+ _a.label = 1;
20618
+ case 1:
20619
+ _a.trys.push([1, 3,, 4]);
20620
+ return [4 /*yield*/, sdk.refreshGroup(id)];
20621
+ case 2:
20622
+ res = _a.sent();
20623
+ if ((res === null || res === void 0 ? void 0 : res.status) === 'success' && res.data) {
20624
+ setGroupData(res.data);
20625
+ }
20626
+ return [3 /*break*/, 4];
20627
+ case 3:
20628
+ err_1 = _a.sent();
20629
+ console.error('Error during silent refresh:', err_1);
20630
+ return [3 /*break*/, 4];
20631
+ case 4:
20632
+ return [2 /*return*/];
20633
+ }
20634
+ });
20635
+ });
20636
+ });
20637
+ return function () {
20638
+ unsubscribe();
20639
+ };
20640
+ }, [id, sdk, enabled, setGroupData]);
20641
+ };
20642
+
20643
+ var useInitialGroupFetch = function (_a) {
20644
+ var id = _a.id,
20645
+ setGroupData = _a.setGroupData;
20646
+ var sdk = useWllSdk();
20647
+ var _b = React.useState(true),
20648
+ isLoading = _b[0],
20649
+ setIsLoading = _b[1];
20650
+ var _c = React.useState(null),
20651
+ error = _c[0],
20652
+ setError = _c[1];
20653
+ React.useEffect(function () {
20654
+ var cancelled = false;
20655
+ var fetchGroup = function () {
20656
+ return __awaiter(void 0, void 0, void 0, function () {
20657
+ var response;
20658
+ var _b;
20659
+ return __generator(this, function (_c) {
20660
+ switch (_c.label) {
20661
+ 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
+ setIsLoading(true);
20668
+ setError(null);
20669
+ _c.label = 1;
20670
+ case 1:
20671
+ _c.trys.push([1, 3, 4, 5]);
20672
+ return [4 /*yield*/, sdk.refreshGroup(id)];
20673
+ case 2:
20674
+ response = _c.sent();
20675
+ if (cancelled) return [2 /*return*/];
20676
+ if ((response === null || response === void 0 ? void 0 : response.status) === 'success' && response.data) {
20677
+ setGroupData(response.data);
20678
+ } else {
20679
+ setError((_b = response === null || response === void 0 ? void 0 : response.error) !== null && _b !== void 0 ? _b : 'Failed to fetch group data');
20680
+ }
20681
+ return [3 /*break*/, 5];
20682
+ case 3:
20683
+ _c.sent();
20684
+ if (!cancelled) setError('An unexpected error occurred.');
20685
+ return [3 /*break*/, 5];
20686
+ case 4:
20687
+ if (!cancelled) setIsLoading(false);
20688
+ return [7 /*endfinally*/];
20689
+ case 5:
20690
+ return [2 /*return*/];
20691
+ }
20692
+ });
20693
+ });
20694
+ };
20695
+ fetchGroup();
20696
+ return function () {
20697
+ cancelled = true;
20698
+ };
20699
+ }, [id, sdk, setGroupData]);
20700
+ return {
20701
+ isLoading: isLoading,
20702
+ error: error
20703
+ };
20704
+ };
20705
+
20598
20706
  exports.SectionType = void 0;
20599
20707
  (function (SectionType) {
20600
20708
  SectionType["Grid"] = "GRID";
@@ -21313,108 +21421,24 @@ var useGroupContext = function () {
21313
21421
  * @returns {Object} Object containing group data, loading state, and any error
21314
21422
  */
21315
21423
  var useGroupData = function (id) {
21316
- var sdk = useWllSdk();
21317
21424
  var _a = React.useState(null),
21318
21425
  groupData = _a[0],
21319
21426
  setGroupData = _a[1];
21320
- var _b = React.useState(null),
21321
- error = _b[0],
21322
- setError = _b[1];
21323
- var _c = React.useState(true),
21324
- isLoading = _c[0],
21325
- setIsLoading = _c[1];
21326
- var _d = React.useState(false),
21327
- isInitialFetchDone = _d[0],
21328
- setIsInitialFetchDone = _d[1];
21329
- var initialFetch = React.useCallback(function () {
21330
- return __awaiter(void 0, void 0, void 0, function () {
21331
- var response, err_1;
21332
- return __generator(this, function (_a) {
21333
- switch (_a.label) {
21334
- case 0:
21335
- if (!id || !sdk || !sdk.getGroupByID) {
21336
- setError('Unable to fetch group data: invalid configuration');
21337
- setIsLoading(false);
21338
- setIsInitialFetchDone(true);
21339
- return [2 /*return*/];
21340
- }
21341
- setIsLoading(true);
21342
- setError(null);
21343
- _a.label = 1;
21344
- case 1:
21345
- _a.trys.push([1, 3, 4, 5]);
21346
- return [4 /*yield*/, sdk.refreshGroup(id)];
21347
- case 2:
21348
- response = _a.sent();
21349
- if (response && response.status === 'success' && response.data) {
21350
- setGroupData(response.data);
21351
- } else {
21352
- setError(response && response.error || 'Failed to fetch group data.');
21353
- }
21354
- return [3 /*break*/, 5];
21355
- case 3:
21356
- err_1 = _a.sent();
21357
- setError('Failed to fetch group data. Please try again later.');
21358
- console.error('Error fetching group:', err_1);
21359
- return [3 /*break*/, 5];
21360
- case 4:
21361
- setIsLoading(false);
21362
- setIsInitialFetchDone(true);
21363
- return [7 /*endfinally*/];
21364
- case 5:
21365
- return [2 /*return*/];
21366
- }
21367
- });
21368
- });
21369
- }, [id, sdk]);
21370
- var silentRefresh = React.useCallback(function () {
21371
- return __awaiter(void 0, void 0, void 0, function () {
21372
- var response, err_2;
21373
- return __generator(this, function (_a) {
21374
- switch (_a.label) {
21375
- case 0:
21376
- if (!id || !sdk || !sdk.getGroupByID || !isInitialFetchDone) {
21377
- return [2 /*return*/];
21378
- }
21379
- _a.label = 1;
21380
- case 1:
21381
- _a.trys.push([1, 3,, 4]);
21382
- return [4 /*yield*/, sdk.refreshGroup(id)];
21383
- case 2:
21384
- response = _a.sent();
21385
- if (response && response.status === 'success' && response.data) {
21386
- setGroupData(response.data);
21387
- }
21388
- return [3 /*break*/, 4];
21389
- case 3:
21390
- err_2 = _a.sent();
21391
- console.error('Error during silent refresh:', err_2);
21392
- return [3 /*break*/, 4];
21393
- case 4:
21394
- return [2 /*return*/];
21395
- }
21396
- });
21397
- });
21398
- }, [id, sdk, isInitialFetchDone]);
21399
- var refreshGroup = React.useCallback(function () {
21400
- return silentRefresh();
21401
- }, [silentRefresh]);
21402
- React.useEffect(function () {
21403
- if (sdk) {
21404
- initialFetch();
21405
- var unsubscribeGroup_1 = sdk.subscribeToDataChange('GROUP_DATA_CHANGED', function () {
21406
- silentRefresh();
21407
- });
21408
- return function () {
21409
- unsubscribeGroup_1();
21410
- };
21411
- }
21412
- }, [initialFetch, id, sdk, silentRefresh]);
21427
+ var _b = useInitialGroupFetch({
21428
+ id: id,
21429
+ setGroupData: setGroupData
21430
+ }),
21431
+ isLoading = _b.isLoading,
21432
+ error = _b.error;
21433
+ useGroupRefresh({
21434
+ id: id,
21435
+ enabled: Boolean(groupData),
21436
+ setGroupData: setGroupData
21437
+ });
21413
21438
  return {
21414
21439
  groupData: groupData,
21415
21440
  isLoading: isLoading,
21416
- error: error,
21417
- refreshGroup: refreshGroup
21441
+ error: error
21418
21442
  };
21419
21443
  };
21420
21444
  /**
@@ -21495,7 +21519,7 @@ var Group = function (_a) {
21495
21519
  return /*#__PURE__*/React.createElement(View$2, {
21496
21520
  style: {
21497
21521
  flex: 1,
21498
- padding: theme.sizes.lg
21522
+ padding: IS_MOBILE ? theme.sizes.lg : undefined
21499
21523
  },
21500
21524
  accessible: true,
21501
21525
  accessibilityLabel: "Loading group data"
@@ -22501,8 +22525,7 @@ var useRoundupTileStyles = function (isFullSize) {
22501
22525
  justifyContent: 'space-between'
22502
22526
  },
22503
22527
  contentContainer: {
22504
- width: '100%',
22505
- marginTop: isFullSize ? useResponsiveValue(theme.sizes.xxl, theme.sizes.md, isDesktop, isTablet) : 0
22528
+ width: '100%'
22506
22529
  },
22507
22530
  contentColumn: {
22508
22531
  flexGrow: 1