@zeniai/client-epic-state 5.0.71-betaVR2 → 5.0.71-betaVR3

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.
@@ -361,16 +361,19 @@ const expenseAutomationMissingReceiptsView = createSlice({
361
361
  fetchBulkUploadBatches: {
362
362
  reducer(draft, action) {
363
363
  /**
364
- * Stale-while-revalidate: when caller asks for a full details refresh (manual refresh
365
- * button), we keep `batchDetailsById` and `failedBatchDetailIds` intact so the existing
366
- * UI stays rendered, and flip `batchDetailsRevalidating: true`. The post-success epic
367
- * (`fetchMultipleBatchDetailsEpic`) sees this flag and re-fetches every completed list
368
- * row, replacing entries via `storeBatchDetails` as each response arrives. This avoids
369
- * the previous "wipe to empty → render skeleton" flash. To genuinely drop details (e.g.
370
- * tenant/period scope change), use `clearBulkUploadBatchDetailsForScopeChange` instead.
364
+ * Manual refresh button (and any other caller passing `invalidateBatchDetailsCache: true`):
365
+ * wipe the details cache, failed-id list, and pagination state so the Unmatched tab drops
366
+ * its existing rows and re-renders the initial-load skeleton while the next list +
367
+ * details fetches resolve. The post-success epic (`fetchMultipleBatchDetailsEpic`) then
368
+ * re-runs the details chain from a clean slate.
371
369
  */
372
370
  if (action.payload.invalidateBatchDetailsCache === true) {
373
- draft.bulkUpload.batchDetailsRevalidating = true;
371
+ draft.bulkUpload.batchDetailsById = {};
372
+ draft.bulkUpload.failedBatchDetailIds = [];
373
+ draft.bulkUpload.batchDetailsPaginationState = {
374
+ fetchState: 'Not-Started',
375
+ error: undefined,
376
+ };
374
377
  }
375
378
  draft.bulkUpload.batchListFetchState = {
376
379
  fetchState: 'In-Progress',
@@ -367,16 +367,19 @@ const expenseAutomationMissingReceiptsView = (0, toolkit_1.createSlice)({
367
367
  fetchBulkUploadBatches: {
368
368
  reducer(draft, action) {
369
369
  /**
370
- * Stale-while-revalidate: when caller asks for a full details refresh (manual refresh
371
- * button), we keep `batchDetailsById` and `failedBatchDetailIds` intact so the existing
372
- * UI stays rendered, and flip `batchDetailsRevalidating: true`. The post-success epic
373
- * (`fetchMultipleBatchDetailsEpic`) sees this flag and re-fetches every completed list
374
- * row, replacing entries via `storeBatchDetails` as each response arrives. This avoids
375
- * the previous "wipe to empty → render skeleton" flash. To genuinely drop details (e.g.
376
- * tenant/period scope change), use `clearBulkUploadBatchDetailsForScopeChange` instead.
370
+ * Manual refresh button (and any other caller passing `invalidateBatchDetailsCache: true`):
371
+ * wipe the details cache, failed-id list, and pagination state so the Unmatched tab drops
372
+ * its existing rows and re-renders the initial-load skeleton while the next list +
373
+ * details fetches resolve. The post-success epic (`fetchMultipleBatchDetailsEpic`) then
374
+ * re-runs the details chain from a clean slate.
377
375
  */
378
376
  if (action.payload.invalidateBatchDetailsCache === true) {
379
- draft.bulkUpload.batchDetailsRevalidating = true;
377
+ draft.bulkUpload.batchDetailsById = {};
378
+ draft.bulkUpload.failedBatchDetailIds = [];
379
+ draft.bulkUpload.batchDetailsPaginationState = {
380
+ fetchState: 'Not-Started',
381
+ error: undefined,
382
+ };
380
383
  }
381
384
  draft.bulkUpload.batchListFetchState = {
382
385
  fetchState: 'In-Progress',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.0.71-betaVR2",
3
+ "version": "5.0.71-betaVR3",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",