@zeniai/client-epic-state 4.19.84-betaVR6 → 4.19.84-betaVR7

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.
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.fetchCompletedTransactionsFailure = exports.fetchCompletedTransactionsSuccess = exports.fetchCompletedTransactions = exports.acknowledgeBulkUploadConfirmMatchComplete = exports.clearManualSearchResults = exports.searchTransactionsForManualMatchFailure = exports.searchTransactionsForManualMatchSuccess = exports.searchTransactionsForManualMatch = exports.clearBulkUpload = exports.setBulkUploadSortConfig = exports.setBulkUploadCompletedSubTab = exports.setBulkUploadResultsTab = exports.confirmBulkUploadMatchFailure = exports.confirmBulkUploadMatchSuccess = exports.confirmBulkUploadMatch = exports.fetchBulkUploadBatchesFailure = exports.fetchBulkUploadBatchesSuccess = exports.fetchBulkUploadBatches = exports.fetchMoreBatchDetailsFailure = exports.fetchMoreBatchDetailsComplete = exports.fetchMoreBatchDetails = exports.setInitialBatchDetailsLoading = exports.batchDetailFetchFailed = exports.storeBatchDetails = exports.fetchBulkUploadBatchDetailsFailure = exports.fetchBulkUploadBatchDetailsSuccess = exports.fetchBulkUploadBatchDetails = exports.clearMissingReceiptsTabNavigation = exports.requestMissingReceiptsTabNavigation = exports.pusherBatchStatusUpdate = exports.bulkUploadReceiptsFailure = exports.bulkUploadReceiptsSuccess = exports.updateBulkUploadProgress = exports.bulkUploadReceipts = exports.clearExpenseAutomationMissingReceiptsView = exports.markMissingReceiptAsDone = exports.updateMissingReceiptsUIState = exports.updateMissingReceiptUploadState = exports.uploadMissingReceiptSuccess = exports.fetchMissingReceiptsFailure = exports.fetchMissingReceiptsSuccess = exports.fetchMissingReceipts = exports.initialState = exports.initialBulkUploadState = exports.getCompletedTransactionsCacheKey = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
7
+ const missingReceiptsViewState_1 = require("../types/missingReceiptsViewState");
7
8
  const getCompletedTransactionsCacheKey = (periodId, sortKey, sortOrder, subTab) => `completed-${subTab}-${sortKey}-${sortOrder === 'ascending' ? 'asc' : 'desc'}-${periodId}`;
8
9
  exports.getCompletedTransactionsCacheKey = getCompletedTransactionsCacheKey;
9
10
  exports.initialBulkUploadState = {
@@ -391,13 +392,20 @@ const expenseAutomationMissingReceiptsView = (0, toolkit_1.createSlice)({
391
392
  const isLoadMore = pageToken != null;
392
393
  const trimmed = query.trim();
393
394
  /**
394
- * Cleared or too-short query: no API (see epic). Reset fully (no In-Progress) so loading
395
- * UI never shows; bump key so inputs remount.
395
+ * Cleared or too-short query: no API (see epic). Reset fully (no In-Progress).
396
+ * Only bump `manualSearchUiResetKey` when clearing a real search — not when the UI
397
+ * dispatches `""` on every keystroke while length is below MIN (web-components always sends
398
+ * `onSearch("")` in that case), or ReceiptCard remounts and the input loses focus.
396
399
  */
397
400
  if (!isLoadMore &&
398
- trimmed.length < 2) {
401
+ trimmed.length < missingReceiptsViewState_1.MIN_MANUAL_TRANSACTION_SEARCH_LENGTH) {
402
+ const hadActiveSearch = draft.bulkUpload.manualSearch.searchQuery.trim().length >=
403
+ missingReceiptsViewState_1.MIN_MANUAL_TRANSACTION_SEARCH_LENGTH ||
404
+ draft.bulkUpload.manualSearch.results.length > 0;
399
405
  draft.bulkUpload.manualSearch = exports.initialBulkUploadState.manualSearch;
400
- draft.bulkUpload.manualSearchUiResetKey += 1;
406
+ if (hadActiveSearch) {
407
+ draft.bulkUpload.manualSearchUiResetKey += 1;
408
+ }
401
409
  return;
402
410
  }
403
411
  draft.bulkUpload.manualSearch.searchQuery = query;
@@ -17,6 +17,7 @@ export interface MissingReceiptsViewUIState {
17
17
  * Minimum trimmed query length before manual-match search calls the expense-automation API.
18
18
  * Kept in sync with `ManualSearchInput` in web-components (fires search only when length ≥ this).
19
19
  */
20
+ export declare const MIN_MANUAL_TRANSACTION_SEARCH_LENGTH = 2;
20
21
  export type BatchStatusValue = 'pending' | 'processing' | 'completed';
21
22
  export type BatchFileStatus = 'matched' | 'un_matched' | 'no_match' | 'failed';
22
23
  export type BulkUploadPhase = 'idle' | 'uploading' | 'matching' | 'completed';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toMissingReceiptsSortKey = void 0;
3
+ exports.MIN_MANUAL_TRANSACTION_SEARCH_LENGTH = exports.toMissingReceiptsSortKey = void 0;
4
4
  const stringToUnion_1 = require("../../../commonStateTypes/stringToUnion");
5
5
  const MISSING_RECEIPTS_SORT_KEYS = [
6
6
  'vendor',
@@ -11,3 +11,9 @@ const MISSING_RECEIPTS_SORT_KEYS = [
11
11
  ];
12
12
  const toMissingReceiptsSortKey = (v) => (0, stringToUnion_1.stringToUnion)(v, MISSING_RECEIPTS_SORT_KEYS);
13
13
  exports.toMissingReceiptsSortKey = toMissingReceiptsSortKey;
14
+ // -- Bulk Receipt Upload Types --
15
+ /**
16
+ * Minimum trimmed query length before manual-match search calls the expense-automation API.
17
+ * Kept in sync with `ManualSearchInput` in web-components (fires search only when length ≥ this).
18
+ */
19
+ exports.MIN_MANUAL_TRANSACTION_SEARCH_LENGTH = 2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.19.84-betaVR6",
3
+ "version": "4.19.84-betaVR7",
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",