@zeniai/client-epic-state 4.12.17 → 4.12.19

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 (40) hide show
  1. package/lib/entity/task/taskState.d.ts +0 -3
  2. package/lib/entity/task/taskState.js +0 -13
  3. package/lib/epic.d.ts +3 -1
  4. package/lib/epic.js +3 -1
  5. package/lib/index.d.ts +12 -12
  6. package/lib/index.js +9 -3
  7. package/lib/view/globalMerchantView/epics/fetchGlobalMerchantRecommendationEpic.d.ts +3 -3
  8. package/lib/view/globalMerchantView/epics/fetchGlobalMerchantRecommendationEpic.js +20 -4
  9. package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +5 -2
  10. package/lib/view/globalMerchantView/globalMerchantViewReducer.js +8 -3
  11. package/lib/view/globalMerchantView/globalMerchantViewSelector.d.ts +1 -1
  12. package/lib/view/globalMerchantView/globalMerchantViewSelector.js +6 -5
  13. package/lib/view/globalMerchantView/globalMerchantViewState.d.ts +1 -0
  14. package/lib/view/taskManager/taskListView/bulkUpdateTaskListEpic.d.ts +23 -0
  15. package/lib/view/taskManager/taskListView/bulkUpdateTaskListEpic.js +3 -2
  16. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +6 -0
  17. package/lib/view/taskManager/taskListView/taskListReducer.js +53 -2
  18. package/lib/view/taskManager/taskListView/updateTaskFromListViewEpic.d.ts +8 -0
  19. package/lib/view/taskManager/taskListView/updateTaskFromListViewEpic.js +37 -0
  20. package/lib/view/vendorReviewView/common/state/commonTypes.d.ts +2 -1
  21. package/lib/view/vendorReviewView/common/state/commonTypes.js +4 -4
  22. package/lib/view/vendorReviewView/vendorFirstReviewView/epics/saveVendorDetailsViewEpic.d.ts +8 -0
  23. package/lib/view/vendorReviewView/vendorFirstReviewView/epics/saveVendorDetailsViewEpic.js +62 -0
  24. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewPayload.d.ts +7 -1
  25. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewPayload.js +11 -1
  26. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewReducer.d.ts +14 -4
  27. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewReducer.js +57 -49
  28. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewSelector.d.ts +10 -0
  29. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewSelector.js +21 -1
  30. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewState.d.ts +20 -2
  31. package/lib/view/vendorReviewView/vendorGlobalReviewView/epics/fetchVendorGlobalReviewViewEpic.js +4 -4
  32. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewPayload.d.ts +1 -1
  33. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewPayload.js +2 -2
  34. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewReducer.d.ts +6 -1
  35. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewReducer.js +18 -6
  36. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewSelector.d.ts +3 -1
  37. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewSelector.js +7 -5
  38. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewState.d.ts +9 -1
  39. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewState.js +2 -2
  40. package/package.json +1 -1
@@ -3,6 +3,29 @@ import { Observable } from 'rxjs';
3
3
  import { RootState } from '../../../reducer';
4
4
  import { ZeniAPI } from '../../../zeniAPI';
5
5
  import { bulkUpdateTaskList, updateTasksListOnBulkUpdateTasksSuccess, updateTasksListOnBulkUpdateTasksFailure } from './taskListReducer';
6
+ import { ID } from '../../../commonStateTypes/common';
7
+ import { Task } from '../../../entity/task/taskState';
6
8
  import { updateTasks } from '../../../entity/task/taskReducer';
7
9
  export declare type ActionType = ReturnType<typeof bulkUpdateTaskList> | ReturnType<typeof updateTasks> | ReturnType<typeof updateTasksListOnBulkUpdateTasksFailure> | ReturnType<typeof updateTasksListOnBulkUpdateTasksSuccess>;
8
10
  export declare const bulkUpdateTaskListEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
11
+ /**
12
+ * Helpers
13
+ */
14
+ interface UpdateTaskPayload {
15
+ task_id: string;
16
+ name: string;
17
+ assignees: string[];
18
+ description: string;
19
+ due_date: string | null;
20
+ priority: string;
21
+ status: string;
22
+ tags: string[];
23
+ type: string;
24
+ file_ids: ID[];
25
+ recurring_end_date: string | null;
26
+ recurring_frequency: string | null;
27
+ recurring_start_date: string | null;
28
+ task_group_ids: string[];
29
+ }
30
+ export declare const getTasksListPayload: (state: RootState, taskIds: ID[], updates: Partial<Task>) => UpdateTaskPayload[];
31
+ export {};
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.bulkUpdateTaskListEpic = void 0;
6
+ exports.getTasksListPayload = exports.bulkUpdateTaskListEpic = void 0;
7
7
  const rxjs_1 = require("rxjs");
8
8
  const operators_1 = require("rxjs/operators");
9
9
  const get_1 = __importDefault(require("lodash/get"));
@@ -15,7 +15,7 @@ const bulkUpdateTaskListEpic = (actions$, state$, zeniAPI) => actions$.pipe((0,
15
15
  const state = state$.value;
16
16
  const { taskIds, updates, groupId } = action.payload;
17
17
  const payload = {
18
- tasks: getTasksListPayload(state, taskIds, updates),
18
+ tasks: (0, exports.getTasksListPayload)(state, taskIds, updates),
19
19
  };
20
20
  return zeniAPI
21
21
  .putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks`, payload)
@@ -50,6 +50,7 @@ const getTasksListPayload = (state, taskIds, updates) => {
50
50
  const tasksPayload = tasksList.map((task) => toTaskPayload(state, task));
51
51
  return tasksPayload;
52
52
  };
53
+ exports.getTasksListPayload = getTasksListPayload;
53
54
  const toTaskPayload = (state, task) => {
54
55
  var _a;
55
56
  const { tagState } = state;
@@ -47,6 +47,12 @@ export declare const fetchTaskListPage: import("@reduxjs/toolkit").ActionCreator
47
47
  }, string>, updateTaskListOnTaskGroupNameUpdate: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
48
48
  taskGroupName: ID;
49
49
  taskGroupId: ID;
50
+ }, string>, updateTaskFromListView: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
51
+ taskId: ID;
52
+ prevGroupId: ID;
53
+ updates: Partial<Task>;
54
+ }, string>, updateTasksListOnUpdateTaskSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, updateTasksListOnUpdateTaskFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
55
+ error: ZeniAPIStatus;
50
56
  }, string>, clearTaskList: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
51
57
  declare const _default: import("@reduxjs/toolkit").Reducer<TaskListState, import("@reduxjs/toolkit").AnyAction>;
52
58
  export default _default;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearTaskList = exports.updateTaskListOnTaskGroupNameUpdate = exports.updateTaskListOnNewTaskCreationSuccess = exports.dragNDropTasks = exports.updateTaskListOnTaskGroupDeletion = exports.updateTaskListLocalData = exports.initiateTaskListLocalData = exports.updateTasksListOnBulkUpdateTasksFailure = exports.updateTasksListOnBulkUpdateTasksSuccess = exports.bulkUpdateTaskList = exports.updateTaskListOnNewGroupCreationSuccess = exports.updateTaskFilters = exports.updateTaskListUIState = exports.updateTaskListSearchText = exports.updateTaskListFetchStatus = exports.updateTaskList = exports.fetchTaskList = exports.fetchTaskListPage = exports.initialState = void 0;
4
+ exports.clearTaskList = exports.updateTasksListOnUpdateTaskFailure = exports.updateTasksListOnUpdateTaskSuccess = exports.updateTaskFromListView = exports.updateTaskListOnTaskGroupNameUpdate = exports.updateTaskListOnNewTaskCreationSuccess = exports.dragNDropTasks = exports.updateTaskListOnTaskGroupDeletion = exports.updateTaskListLocalData = exports.initiateTaskListLocalData = exports.updateTasksListOnBulkUpdateTasksFailure = exports.updateTasksListOnBulkUpdateTasksSuccess = exports.bulkUpdateTaskList = exports.updateTaskListOnNewGroupCreationSuccess = exports.updateTaskFilters = exports.updateTaskListUIState = exports.updateTaskListSearchText = exports.updateTaskListFetchStatus = exports.updateTaskList = exports.fetchTaskList = exports.fetchTaskListPage = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const taskList_1 = require("./taskList");
7
7
  const taskState_1 = require("../../../entity/task/taskState");
@@ -349,12 +349,63 @@ const taskList = (0, toolkit_1.createSlice)({
349
349
  const { taskGroupName, taskGroupId } = action.payload;
350
350
  draft.localData.existingTaskGroupNamesByGroupId = Object.assign(Object.assign({}, draft.localData.existingTaskGroupNamesByGroupId), { [taskGroupId]: taskGroupName });
351
351
  },
352
+ updateTaskFromListView(draft, action) {
353
+ const { updates, prevGroupId, taskId } = action.payload;
354
+ draft.updateTasksFetchState.fetchState = 'In-Progress';
355
+ draft.updateTasksFetchState.error = undefined;
356
+ if (updates.priority != null) {
357
+ const prevPriorityCode = (0, taskState_1.toPriorityCodeType)(prevGroupId);
358
+ draft.taskIdsByPriority[prevPriorityCode] = draft.taskIdsByPriority[prevPriorityCode].filter((id) => id != taskId);
359
+ const newPriorityCode = (0, taskState_1.toPriorityCodeType)(updates.priority.code);
360
+ draft.taskIdsByPriority[newPriorityCode].push(taskId);
361
+ }
362
+ if (updates.status != null) {
363
+ const prevStatusCode = (0, taskState_1.toTaskStatusCodeType)(prevGroupId);
364
+ draft.taskIdsByStatus[prevStatusCode] = draft.taskIdsByStatus[prevStatusCode].filter((id) => id != taskId);
365
+ const newStatusCode = (0, taskState_1.toTaskStatusCodeType)(updates.status.code);
366
+ draft.taskIdsByStatus[newStatusCode].push(taskId);
367
+ }
368
+ if (updates.assignees != null) {
369
+ draft.taskIdsByAssignees[prevGroupId] = draft.taskIdsByAssignees[prevGroupId].filter((id) => id != taskId);
370
+ const newGroupId = updates.assignees.join(',');
371
+ if (draft.taskIdsByAssignees[newGroupId] != null) {
372
+ draft.taskIdsByAssignees[newGroupId].push(taskId);
373
+ }
374
+ else {
375
+ draft.taskIdsByAssignees = Object.assign(Object.assign({}, draft.taskIdsByAssignees), { [newGroupId]: [taskId] });
376
+ }
377
+ }
378
+ if (updates.dueDate != null) {
379
+ const prevDueDateKey = (0, taskList_1.toDueDateGroupKeyType)(prevGroupId);
380
+ draft.taskIdsByDueDate[prevDueDateKey] = draft.taskIdsByDueDate[prevDueDateKey].filter((id) => id != taskId);
381
+ const newDueDateKey = getDueDateGroupKey(updates.dueDate.toString());
382
+ draft.taskIdsByDueDate[newDueDateKey].push(taskId);
383
+ }
384
+ if (updates.tagIds != null) {
385
+ draft.taskIdsByTags[prevGroupId] = draft.taskIdsByTags[prevGroupId].filter((id) => id != taskId);
386
+ const newGroupId = updates.tagIds.join(',');
387
+ if (draft.taskIdsByTags[newGroupId] != null) {
388
+ draft.taskIdsByTags[newGroupId].push(taskId);
389
+ }
390
+ else {
391
+ draft.taskIdsByTags = Object.assign(Object.assign({}, draft.taskIdsByTags), { [newGroupId]: [taskId] });
392
+ }
393
+ }
394
+ },
395
+ updateTasksListOnUpdateTaskSuccess(draft) {
396
+ draft.updateTasksFetchState.fetchState = 'Completed';
397
+ draft.updateTasksFetchState.error = undefined;
398
+ },
399
+ updateTasksListOnUpdateTaskFailure(draft, action) {
400
+ draft.updateTasksFetchState.fetchState = 'Error';
401
+ draft.updateTasksFetchState.error = action.payload.error;
402
+ },
352
403
  clearTaskList(draft) {
353
404
  Object.assign(draft, exports.initialState);
354
405
  },
355
406
  },
356
407
  });
357
- _a = taskList.actions, exports.fetchTaskListPage = _a.fetchTaskListPage, exports.fetchTaskList = _a.fetchTaskList, exports.updateTaskList = _a.updateTaskList, exports.updateTaskListFetchStatus = _a.updateTaskListFetchStatus, exports.updateTaskListSearchText = _a.updateTaskListSearchText, exports.updateTaskListUIState = _a.updateTaskListUIState, exports.updateTaskFilters = _a.updateTaskFilters, exports.updateTaskListOnNewGroupCreationSuccess = _a.updateTaskListOnNewGroupCreationSuccess, exports.bulkUpdateTaskList = _a.bulkUpdateTaskList, exports.updateTasksListOnBulkUpdateTasksSuccess = _a.updateTasksListOnBulkUpdateTasksSuccess, exports.updateTasksListOnBulkUpdateTasksFailure = _a.updateTasksListOnBulkUpdateTasksFailure, exports.initiateTaskListLocalData = _a.initiateTaskListLocalData, exports.updateTaskListLocalData = _a.updateTaskListLocalData, exports.updateTaskListOnTaskGroupDeletion = _a.updateTaskListOnTaskGroupDeletion, exports.dragNDropTasks = _a.dragNDropTasks, exports.updateTaskListOnNewTaskCreationSuccess = _a.updateTaskListOnNewTaskCreationSuccess, exports.updateTaskListOnTaskGroupNameUpdate = _a.updateTaskListOnTaskGroupNameUpdate, exports.clearTaskList = _a.clearTaskList;
408
+ _a = taskList.actions, exports.fetchTaskListPage = _a.fetchTaskListPage, exports.fetchTaskList = _a.fetchTaskList, exports.updateTaskList = _a.updateTaskList, exports.updateTaskListFetchStatus = _a.updateTaskListFetchStatus, exports.updateTaskListSearchText = _a.updateTaskListSearchText, exports.updateTaskListUIState = _a.updateTaskListUIState, exports.updateTaskFilters = _a.updateTaskFilters, exports.updateTaskListOnNewGroupCreationSuccess = _a.updateTaskListOnNewGroupCreationSuccess, exports.bulkUpdateTaskList = _a.bulkUpdateTaskList, exports.updateTasksListOnBulkUpdateTasksSuccess = _a.updateTasksListOnBulkUpdateTasksSuccess, exports.updateTasksListOnBulkUpdateTasksFailure = _a.updateTasksListOnBulkUpdateTasksFailure, exports.initiateTaskListLocalData = _a.initiateTaskListLocalData, exports.updateTaskListLocalData = _a.updateTaskListLocalData, exports.updateTaskListOnTaskGroupDeletion = _a.updateTaskListOnTaskGroupDeletion, exports.dragNDropTasks = _a.dragNDropTasks, exports.updateTaskListOnNewTaskCreationSuccess = _a.updateTaskListOnNewTaskCreationSuccess, exports.updateTaskListOnTaskGroupNameUpdate = _a.updateTaskListOnTaskGroupNameUpdate, exports.updateTaskFromListView = _a.updateTaskFromListView, exports.updateTasksListOnUpdateTaskSuccess = _a.updateTasksListOnUpdateTaskSuccess, exports.updateTasksListOnUpdateTaskFailure = _a.updateTasksListOnUpdateTaskFailure, exports.clearTaskList = _a.clearTaskList;
358
409
  exports.default = taskList.reducer;
359
410
  /**
360
411
  * helpers
@@ -0,0 +1,8 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { RootState } from '../../../reducer';
4
+ import { ZeniAPI } from '../../../zeniAPI';
5
+ import { updateTaskFromListView, updateTasksListOnUpdateTaskSuccess, updateTasksListOnUpdateTaskFailure } from './taskListReducer';
6
+ import { updateTasks } from '../../../entity/task/taskReducer';
7
+ export declare type ActionType = ReturnType<typeof updateTaskFromListView> | ReturnType<typeof updateTasks> | ReturnType<typeof updateTasksListOnUpdateTaskFailure> | ReturnType<typeof updateTasksListOnUpdateTaskSuccess>;
8
+ export declare const updateTaskFromListViewEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateTaskFromListViewEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const responsePayload_1 = require("../../../responsePayload");
7
+ const taskListReducer_1 = require("./taskListReducer");
8
+ const taskReducer_1 = require("../../../entity/task/taskReducer");
9
+ const bulkUpdateTaskListEpic_1 = require("./bulkUpdateTaskListEpic");
10
+ const updateTaskFromListViewEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(taskListReducer_1.updateTaskFromListView.match), (0, operators_1.switchMap)((action) => {
11
+ const state = state$.value;
12
+ const { taskId, updates } = action.payload;
13
+ const payload = {
14
+ tasks: (0, bulkUpdateTaskListEpic_1.getTasksListPayload)(state, [taskId], updates),
15
+ };
16
+ return zeniAPI
17
+ .putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks`, payload)
18
+ .pipe((0, operators_1.mergeMap)((response) => {
19
+ if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
20
+ return (0, rxjs_1.from)([
21
+ (0, taskReducer_1.updateTasks)(response.data.tasks),
22
+ (0, taskListReducer_1.updateTasksListOnUpdateTaskSuccess)(),
23
+ ]);
24
+ }
25
+ else {
26
+ return (0, rxjs_1.of)((0, taskListReducer_1.updateTasksListOnUpdateTaskFailure)({
27
+ error: response.status,
28
+ }));
29
+ }
30
+ }), (0, operators_1.catchError)((error) => {
31
+ return (0, rxjs_1.of)((0, taskListReducer_1.updateTasksListOnUpdateTaskFailure)({
32
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'update task from list view REST API call errored out' +
33
+ JSON.stringify(error)),
34
+ }));
35
+ }));
36
+ }));
37
+ exports.updateTaskFromListViewEpic = updateTaskFromListViewEpic;
@@ -14,7 +14,8 @@ export interface VendorReviewRecommendationViewState {
14
14
  export interface VendorReviewNonExistingRecommendationViewState {
15
15
  globalMerchants: RecommendedNonExistingGlobalMerchant[];
16
16
  }
17
- export declare type VendorReviewRowCurrentSelection = 'retain' | 'update' | 'custom_merchant' | 'rename' | null;
17
+ export declare type VendorReviewRowCurrentSelection = 'retain' | 'recommendedFirst' | 'recommendedSecond' | 'customMerchant' | 'rename' | null;
18
+ export declare type GlobalVendorReviewRowCurrentSelection = 'requested' | 'recommendedFirst' | 'recommendedSecond' | 'originalVendor' | null;
18
19
  /**
19
20
  * Helpers
20
21
  */
@@ -49,12 +49,12 @@ const toAllRecommendationsFromPayload = (recommendationsPayload) => {
49
49
  var _a;
50
50
  const recommendations = [];
51
51
  const nonExistingRecommendations = [];
52
- (_a = recommendationsPayload[0]) === null || _a === void 0 ? void 0 : _a.global_merchants.forEach((globalmerchant) => {
53
- if (globalmerchant.global_merchant_id != null) {
54
- recommendations.push((0, globalMerchantPayload_1.toGlobalMerchantBase)(globalmerchant));
52
+ (_a = recommendationsPayload[0]) === null || _a === void 0 ? void 0 : _a.global_merchants.forEach((globalMerchant) => {
53
+ if (globalMerchant.global_merchant_id != null) {
54
+ recommendations.push((0, globalMerchantPayload_1.toGlobalMerchantBase)(globalMerchant));
55
55
  }
56
56
  else {
57
- nonExistingRecommendations.push((0, exports.toNonExistingGlobalMerchantBase)(globalmerchant));
57
+ nonExistingRecommendations.push((0, exports.toNonExistingGlobalMerchantBase)(globalMerchant));
58
58
  }
59
59
  });
60
60
  const recommendationIds = recommendations.map((recommendation) => recommendation.globalMerchantId);
@@ -0,0 +1,8 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { ZeniAPI } from '../../../../zeniAPI';
3
+ import { RootState } from '../../../../reducer';
4
+ import { saveVendorDetailsView, updateVendorDetailsViewFailureOrSuccess } from '../vendorFirstReviewViewReducer';
5
+ import { updateVendors } from '../../../../entity/vendor/vendorReducer';
6
+ import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
7
+ export declare type ActionType = ReturnType<typeof saveVendorDetailsView> | ReturnType<typeof updateVendors> | ReturnType<typeof openSnackbar> | ReturnType<typeof updateVendorDetailsViewFailureOrSuccess>;
8
+ export declare const saveVendorDetailsViewEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<ActionType>;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.saveVendorDetailsViewEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const responsePayload_1 = require("../../../../responsePayload");
7
+ const vendorFirstReviewViewReducer_1 = require("../vendorFirstReviewViewReducer");
8
+ const vendorReducer_1 = require("../../../../entity/vendor/vendorReducer");
9
+ const snackbarReducer_1 = require("../../../../entity/snackbar/snackbarReducer");
10
+ const vendorFirstReviewViewPayload_1 = require("../vendorFirstReviewViewPayload");
11
+ const saveVendorDetailsViewEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(vendorFirstReviewViewReducer_1.saveVendorDetailsView.match), (0, operators_1.mergeMap)(() => {
12
+ var _a, _b;
13
+ const { vendorFirstReviewViewState } = state$.value;
14
+ const vendorDetails = (_a = vendorFirstReviewViewState.vendorLocalData) === null || _a === void 0 ? void 0 : _a.vendorDetails;
15
+ const payload = (0, vendorFirstReviewViewPayload_1.prepareVendorPayload)(vendorDetails);
16
+ const vendorId = (_b = vendorFirstReviewViewState.vendorLocalData) === null || _b === void 0 ? void 0 : _b.vendorDetails.id;
17
+ if (vendorId != null) {
18
+ const saveVendorApi = zeniAPI.putAndGetJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/vendors/${vendorId}`, payload);
19
+ return saveVendorApi.pipe((0, operators_1.mergeMap)((response) => {
20
+ if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
21
+ const actions = [
22
+ (0, vendorReducer_1.updateVendors)(response.data.vendors),
23
+ ];
24
+ actions.push((0, vendorFirstReviewViewReducer_1.updateVendorDetailsViewFailureOrSuccess)({
25
+ vendorId,
26
+ fetchState: 'Completed',
27
+ }));
28
+ return (0, rxjs_1.from)(actions);
29
+ }
30
+ else {
31
+ const actions = [];
32
+ // Note: We need to skip snackbar when error code is 409, which is Vendor already exists error code.
33
+ // We show inline error message in this case instead of snackbar
34
+ if (response.status.code !== 409) {
35
+ actions.push((0, vendorFirstReviewViewReducer_1.updateVendorDetailsViewFailureOrSuccess)({
36
+ vendorId,
37
+ fetchState: 'Error',
38
+ }));
39
+ actions.push((0, snackbarReducer_1.openSnackbar)({
40
+ messageSection: 'update_vendor',
41
+ messageText: 'failed',
42
+ type: 'error',
43
+ variables: [
44
+ {
45
+ variableName: '_api-error_',
46
+ variableValue: response.status.message,
47
+ },
48
+ ],
49
+ }));
50
+ }
51
+ return (0, rxjs_1.from)(actions);
52
+ }
53
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, vendorFirstReviewViewReducer_1.updateVendorDetailsViewFailureOrSuccess)({
54
+ vendorId,
55
+ fetchState: 'Error',
56
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Vendor Save on First Review View REST API call errored out ' +
57
+ JSON.stringify(error)),
58
+ }))));
59
+ }
60
+ return (0, rxjs_1.from)([]);
61
+ }));
62
+ exports.saveVendorDetailsViewEpic = saveVendorDetailsViewEpic;
@@ -4,7 +4,7 @@ import { UserBasePayload } from '../../../entity/user/userPayload';
4
4
  import { VendorPayload } from '../../../entity/vendor/vendorPayload';
5
5
  import { ZeniAPIResponse } from '../../../responsePayload';
6
6
  import { AllGlobalMerchantBasePayload, VendorReviewViewAllRecommendationsPayload, VendorReviewViewRecommendationsPayload } from '../common/payload/commonTypes';
7
- import { VendorFirstReviewViewColumnKey } from './vendorFirstReviewViewState';
7
+ import { VendorFirstReviewViewColumnKey, VendorViewLocalData } from './vendorFirstReviewViewState';
8
8
  export interface VendorTransactionAttachment {
9
9
  attachmentEndpoint: string;
10
10
  vendorId: ID;
@@ -71,4 +71,10 @@ export declare type SaveVendorFirstReviewResponse = ZeniAPIResponse<SaveVendorFi
71
71
  * helpers
72
72
  */
73
73
  export declare const toVendorFirstReviewViewColumnKeyPayload: (key: VendorFirstReviewViewColumnKey) => string;
74
+ export interface VendorWebsiteUrlUpdatePayload {
75
+ qbo_id: string;
76
+ vendor_name: string;
77
+ website_url: string;
78
+ }
79
+ export declare const prepareVendorPayload: (vendorDetailLocalData?: VendorViewLocalData | undefined) => Partial<VendorWebsiteUrlUpdatePayload>;
74
80
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toVendorFirstReviewViewColumnKeyPayload = void 0;
3
+ exports.prepareVendorPayload = exports.toVendorFirstReviewViewColumnKeyPayload = void 0;
4
4
  /**
5
5
  * helpers
6
6
  */
@@ -18,3 +18,13 @@ const toVendorFirstReviewViewColumnKeyPayload = (key) => {
18
18
  }
19
19
  };
20
20
  exports.toVendorFirstReviewViewColumnKeyPayload = toVendorFirstReviewViewColumnKeyPayload;
21
+ const prepareVendorPayload = (vendorDetailLocalData) => {
22
+ const payload = {};
23
+ payload.vendor_name = vendorDetailLocalData === null || vendorDetailLocalData === void 0 ? void 0 : vendorDetailLocalData.name;
24
+ payload.qbo_id = vendorDetailLocalData === null || vendorDetailLocalData === void 0 ? void 0 : vendorDetailLocalData.qboId;
25
+ if ((vendorDetailLocalData === null || vendorDetailLocalData === void 0 ? void 0 : vendorDetailLocalData.websiteUrl) != null) {
26
+ payload.website_url = vendorDetailLocalData.websiteUrl.toString();
27
+ }
28
+ return payload;
29
+ };
30
+ exports.prepareVendorPayload = prepareVendorPayload;
@@ -2,8 +2,9 @@ import { FetchState, ID } from '../../../commonStateTypes/common';
2
2
  import { SortOrder } from '../../../commonStateTypes/selectorTypes/sortOrderTypes';
3
3
  import { ZeniAPIStatus } from '../../../responsePayload';
4
4
  import { SaveVendorFirstReviewViewPayload, ReviewStatusPayload, VendorFirstReviewPayload } from './vendorFirstReviewViewPayload';
5
- import { VendorFirstReviewViewColumnKey, VendorFirstReviewViewState, RecommendedNonExistingGlobalMerchant, CurrentSelectionByColumn } from './vendorFirstReviewViewState';
5
+ import { VendorFirstReviewViewColumnKey, VendorFirstReviewViewState, RecommendedNonExistingGlobalMerchant, VendorViewLocalData } from './vendorFirstReviewViewState';
6
6
  import { PageToken } from '../../../commonStateTypes/viewAndReport/viewAndReport';
7
+ import { VendorReviewRowCurrentSelection } from '../common/state/commonTypes';
7
8
  import { AttachmentPayload } from '../../../entity/transaction/payloadTypes/attachmentPayload';
8
9
  export declare const initialState: VendorFirstReviewViewState;
9
10
  export declare const fetchVendorFirstReviewAttachments: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[vendorId: string, attachmentIds: string[]], {
@@ -28,14 +29,14 @@ export declare const fetchVendorFirstReviewAttachments: import("@reduxjs/toolkit
28
29
  markAsLocalContractor: any;
29
30
  }, string, never, never>, updateVendorFirstReviewSortUiState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
30
31
  sortOrder: SortOrder;
31
- sortkey: VendorFirstReviewViewColumnKey;
32
+ sortKey: VendorFirstReviewViewColumnKey;
32
33
  }, string>, initializeVendorFirstReviewViewLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
33
34
  response: VendorFirstReviewPayload;
34
35
  keepExistingListItems?: boolean | undefined;
35
36
  }, string>, updateVendorFirstReviewViewLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
36
37
  vendorId: ID;
37
- currentSelection: CurrentSelectionByColumn;
38
- selectedGlobalMerchantId?: string | undefined;
38
+ currentSelection: VendorReviewRowCurrentSelection;
39
+ selectedGlobalMerchantId: ID;
39
40
  vendorRenamedText?: string | undefined;
40
41
  }, string>, resetVendorFirstReviewLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
41
42
  vendorId: ID;
@@ -57,6 +58,15 @@ export declare const fetchVendorFirstReviewAttachments: import("@reduxjs/toolkit
57
58
  transactionAttachments: AttachmentPayload[];
58
59
  }, string>, updateVendorFirstReviewViewTransactionAttachmentsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
59
60
  status: ZeniAPIStatus;
61
+ }, string>, updateVendorDetailRecommendations: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
62
+ recommendationIds: ID[];
63
+ recommendedNonExistingGlobalMerchants: RecommendedNonExistingGlobalMerchant[];
64
+ }, string>, updateReviewVendorDetailLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
65
+ vendorDetails: VendorViewLocalData;
66
+ }, string>, saveVendorDetailsView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, updateVendorDetailsViewFailureOrSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
67
+ vendorId: ID;
68
+ fetchState: FetchState;
69
+ error?: ZeniAPIStatus<Record<string, unknown>> | undefined;
60
70
  }, string>;
61
71
  declare const _default: import("@reduxjs/toolkit").Reducer<VendorFirstReviewViewState, import("@reduxjs/toolkit").AnyAction>;
62
72
  export default _default;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.updateVendorFirstReviewViewTransactionAttachmentsFailure = exports.updateVendorFirstReviewViewTransactionAttachments = exports.saveVendorFirstReviewViewSuccessOrFailure = exports.clearRecentlySavedErroredVendorData = exports.updateRecentlySavedErroredVendorData = exports.resetVendorFirstReviewLocalData = exports.updateVendorFirstReviewViewLocalData = exports.initializeVendorFirstReviewViewLocalData = exports.updateVendorFirstReviewSortUiState = exports.saveVendorFirstReviewView = exports.updateVendorFirstReviewViewPageToken = exports.updateVendorFirstReviewViewScrollYOffset = exports.clearVendorReviewView = exports.updateVendorFirstReviewViewFailure = exports.updateSavedVendorFirstReviewViewLocalData = exports.fetchVendorFirstReviewView = exports.fetchVendorFirstReviewAttachments = exports.initialState = void 0;
4
+ exports.updateVendorDetailsViewFailureOrSuccess = exports.saveVendorDetailsView = exports.updateReviewVendorDetailLocalData = exports.updateVendorDetailRecommendations = exports.updateVendorFirstReviewViewTransactionAttachmentsFailure = exports.updateVendorFirstReviewViewTransactionAttachments = exports.saveVendorFirstReviewViewSuccessOrFailure = exports.clearRecentlySavedErroredVendorData = exports.updateRecentlySavedErroredVendorData = exports.resetVendorFirstReviewLocalData = exports.updateVendorFirstReviewViewLocalData = exports.initializeVendorFirstReviewViewLocalData = exports.updateVendorFirstReviewSortUiState = exports.saveVendorFirstReviewView = exports.updateVendorFirstReviewViewPageToken = exports.updateVendorFirstReviewViewScrollYOffset = exports.clearVendorReviewView = exports.updateVendorFirstReviewViewFailure = exports.updateSavedVendorFirstReviewViewLocalData = exports.fetchVendorFirstReviewView = exports.fetchVendorFirstReviewAttachments = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const commonTypes_1 = require("../common/state/commonTypes");
7
7
  const attachmentPayload_1 = require("../../../entity/transaction/payloadTypes/attachmentPayload");
@@ -22,6 +22,7 @@ exports.initialState = {
22
22
  fetchState: 'Not-Started',
23
23
  error: undefined,
24
24
  },
25
+ vendorLocalData: null,
25
26
  hasValidState() {
26
27
  return this.fetchState == 'Completed';
27
28
  },
@@ -73,7 +74,7 @@ const vendorFirstReviewView = (0, toolkit_1.createSlice)({
73
74
  },
74
75
  },
75
76
  updateVendorFirstReviewSortUiState(draft, action) {
76
- draft.uiState = Object.assign(Object.assign({}, draft.uiState), { sortKey: action.payload.sortkey, sortOrder: action.payload.sortOrder });
77
+ draft.uiState = Object.assign(Object.assign({}, draft.uiState), { sortKey: action.payload.sortKey, sortOrder: action.payload.sortOrder });
77
78
  },
78
79
  updateVendorFirstReviewViewPageToken(draft, action) {
79
80
  draft.uiState = Object.assign(Object.assign({}, draft.uiState), { pageToken: action.payload.pageToken });
@@ -93,48 +94,17 @@ const vendorFirstReviewView = (0, toolkit_1.createSlice)({
93
94
  draft.uiState = Object.assign(Object.assign({}, draft.uiState), { pageToken: (_a = query === null || query === void 0 ? void 0 : query.page_token) !== null && _a !== void 0 ? _a : null, totalCount: total_count });
94
95
  },
95
96
  updateVendorFirstReviewViewLocalData(draft, action) {
96
- var _a, _b, _c;
97
97
  const { vendorId, vendorRenamedText, selectedGlobalMerchantId, currentSelection, } = action.payload;
98
98
  if (draft.vendorFirstReviewViewLocalDataById[vendorId]
99
99
  .vendorFirstReviewViewLocalData != null) {
100
100
  const vendorLocalData = draft.vendorFirstReviewViewLocalDataById[vendorId]
101
101
  .vendorFirstReviewViewLocalData;
102
- if (selectedGlobalMerchantId != null || vendorRenamedText != null) {
103
- let currentSelection = vendorRenamedText != null ? 'rename' : null;
104
- if (selectedGlobalMerchantId != null) {
105
- const isRecommendationSelected = selectedGlobalMerchantId != null &&
106
- (selectedGlobalMerchantId ===
107
- vendorLocalData.recommendationIds[0] ||
108
- (vendorLocalData.recommendationIds.length === 0 &&
109
- selectedGlobalMerchantId ===
110
- ((_a = vendorLocalData.recommendedNonExistingGlobalMerchants[0]) === null || _a === void 0 ? void 0 : _a.globalMerchantName)));
111
- const isRetainSelected = selectedGlobalMerchantId != null &&
112
- selectedGlobalMerchantId === vendorLocalData.vendorId;
113
- currentSelection =
114
- isRecommendationSelected === true
115
- ? 'update'
116
- : isRetainSelected === true
117
- ? 'retain'
118
- : 'custom_merchant';
119
- }
120
- draft.vendorFirstReviewViewLocalDataById[vendorId].vendorFirstReviewViewLocalData = Object.assign(Object.assign({}, vendorLocalData), { selectedVendorId: selectedGlobalMerchantId !== null && selectedGlobalMerchantId !== void 0 ? selectedGlobalMerchantId : vendorLocalData.vendorId, currentSelection,
102
+ if (vendorRenamedText != null) {
103
+ draft.vendorFirstReviewViewLocalDataById[vendorId].vendorFirstReviewViewLocalData = Object.assign(Object.assign({}, vendorLocalData), { selectedVendorId: selectedGlobalMerchantId, currentSelection,
121
104
  vendorRenamedText });
122
105
  }
123
106
  else {
124
- let updateSelectedGlobalMerchantId;
125
- const { isRetainSelected, isUpdateSelected, bothRetainAndUpdateUnSelected, } = getCurrentSelectionStatus(vendorLocalData.currentSelection, currentSelection);
126
- if (bothRetainAndUpdateUnSelected || isRetainSelected) {
127
- updateSelectedGlobalMerchantId = vendorLocalData.vendorId;
128
- }
129
- else {
130
- updateSelectedGlobalMerchantId =
131
- (_b = vendorLocalData.recommendationIds[0]) !== null && _b !== void 0 ? _b : (_c = vendorLocalData.recommendedNonExistingGlobalMerchants[0]) === null || _c === void 0 ? void 0 : _c.globalMerchantName;
132
- }
133
- draft.vendorFirstReviewViewLocalDataById[vendorId].vendorFirstReviewViewLocalData = Object.assign(Object.assign({}, vendorLocalData), { vendorRenamedText: undefined, selectedVendorId: updateSelectedGlobalMerchantId, currentSelection: isRetainSelected
134
- ? 'retain'
135
- : isUpdateSelected
136
- ? 'update'
137
- : null });
107
+ draft.vendorFirstReviewViewLocalDataById[vendorId].vendorFirstReviewViewLocalData = Object.assign(Object.assign({}, vendorLocalData), { vendorRenamedText: undefined, selectedVendorId: selectedGlobalMerchantId, currentSelection });
138
108
  }
139
109
  }
140
110
  },
@@ -212,6 +182,52 @@ const vendorFirstReviewView = (0, toolkit_1.createSlice)({
212
182
  };
213
183
  }
214
184
  },
185
+ updateReviewVendorDetailLocalData(draft, action) {
186
+ const { vendorDetails } = action.payload;
187
+ const { id, qboId, websiteUrl, name, recommendationIds, recommendedNonExistingGlobalMerchants, } = vendorDetails;
188
+ draft.vendorLocalData = {
189
+ vendorDetails: {
190
+ id,
191
+ qboId,
192
+ name,
193
+ websiteUrl,
194
+ recommendationIds,
195
+ recommendedNonExistingGlobalMerchants,
196
+ },
197
+ saveStatus: { fetchState: 'Not-Started', error: undefined },
198
+ };
199
+ },
200
+ updateVendorDetailRecommendations(draft, action) {
201
+ const { recommendationIds, recommendedNonExistingGlobalMerchants } = action.payload;
202
+ if (draft.vendorLocalData != null) {
203
+ draft.vendorLocalData.vendorDetails.recommendationIds =
204
+ recommendationIds;
205
+ draft.vendorLocalData.vendorDetails.recommendedNonExistingGlobalMerchants =
206
+ recommendedNonExistingGlobalMerchants;
207
+ }
208
+ },
209
+ saveVendorDetailsView(draft) {
210
+ if (draft.vendorLocalData != null) {
211
+ draft.vendorLocalData = Object.assign(Object.assign({}, draft.vendorLocalData), { saveStatus: {
212
+ fetchState: 'In-Progress',
213
+ error: undefined,
214
+ } });
215
+ }
216
+ },
217
+ updateVendorDetailsViewFailureOrSuccess(draft, action) {
218
+ const { vendorId, fetchState, error } = action.payload;
219
+ if (draft.vendorLocalData != null) {
220
+ draft.vendorLocalData.saveStatus = {
221
+ fetchState: fetchState,
222
+ error: error,
223
+ };
224
+ }
225
+ if (fetchState === 'Completed') {
226
+ const vendorReviewViewLocalData = draft.vendorFirstReviewViewLocalDataById[vendorId]
227
+ .vendorFirstReviewViewLocalData;
228
+ draft.vendorFirstReviewViewLocalDataById[vendorId].vendorFirstReviewViewLocalData = Object.assign(Object.assign({}, vendorReviewViewLocalData), { isWebsiteUrlSaved: true });
229
+ }
230
+ },
215
231
  clearRecentlySavedErroredVendorData(draft) {
216
232
  draft.recentlySavedErroredVendorData = undefined;
217
233
  },
@@ -251,16 +267,6 @@ const vendorFirstReviewView = (0, toolkit_1.createSlice)({
251
267
  },
252
268
  },
253
269
  });
254
- const getCurrentSelectionStatus = (stateCurrentSelection, currentSelection) => {
255
- const isRetainSelected = stateCurrentSelection !== 'retain' && currentSelection.retain;
256
- const isUpdateSelected = stateCurrentSelection !== 'update' && currentSelection.update;
257
- const bothRetainAndUpdateUnSelected = !currentSelection.retain && !currentSelection.update;
258
- return {
259
- isRetainSelected,
260
- isUpdateSelected,
261
- bothRetainAndUpdateUnSelected,
262
- };
263
- };
264
270
  const toVendorReviewViewUpdatedVendorLocalData = (vendorId, vendorPayload) => {
265
271
  const vendorView = mapPayloadToVendorFirstReviewView(Object.assign(Object.assign({}, vendorPayload), { vendor_id: vendorId }));
266
272
  return vendorView;
@@ -293,15 +299,17 @@ const mapPayloadToVendorFirstReviewView = (payload) => {
293
299
  recommendationIds,
294
300
  recommendedNonExistingGlobalMerchants: nonExistingRecommendations,
295
301
  lastUpdatedVendorNameByUserId: (_a = payload.last_updated_vendor_name_by_user) === null || _a === void 0 ? void 0 : _a.user_id,
302
+ /* merge_vendor_name can be an empty string from platform in cases other than `merge_in_qbo` status.
303
+ So, to avoid further string length checks, making this undefined.*/
296
304
  mergeVendorName: payload.merge_vendor_name != null && payload.merge_vendor_name.length > 0
297
305
  ? payload.merge_vendor_name
298
306
  : undefined,
299
307
  transactionAttachments: payload.transaction_attachments != null
300
308
  ? payload.transaction_attachments.map((attachmentPayload) => (0, attachmentPayload_1.toAttachment)(attachmentPayload))
301
309
  : [],
302
- /* merge_vendor_name can be an empty string from platform in cases other than `merge_in_qbo` status.
303
- So, to avoid further string length checks, making this undefined.*/
310
+ // initially set to false since we haven't saved the url from vendor detail slider, will be true once saved.
311
+ isWebsiteUrlSaved: false,
304
312
  };
305
313
  };
306
- _a = vendorFirstReviewView.actions, exports.fetchVendorFirstReviewAttachments = _a.fetchVendorFirstReviewAttachments, exports.fetchVendorFirstReviewView = _a.fetchVendorFirstReviewView, exports.updateSavedVendorFirstReviewViewLocalData = _a.updateSavedVendorFirstReviewViewLocalData, exports.updateVendorFirstReviewViewFailure = _a.updateVendorFirstReviewViewFailure, exports.clearVendorReviewView = _a.clearVendorReviewView, exports.updateVendorFirstReviewViewScrollYOffset = _a.updateVendorFirstReviewViewScrollYOffset, exports.updateVendorFirstReviewViewPageToken = _a.updateVendorFirstReviewViewPageToken, exports.saveVendorFirstReviewView = _a.saveVendorFirstReviewView, exports.updateVendorFirstReviewSortUiState = _a.updateVendorFirstReviewSortUiState, exports.initializeVendorFirstReviewViewLocalData = _a.initializeVendorFirstReviewViewLocalData, exports.updateVendorFirstReviewViewLocalData = _a.updateVendorFirstReviewViewLocalData, exports.resetVendorFirstReviewLocalData = _a.resetVendorFirstReviewLocalData, exports.updateRecentlySavedErroredVendorData = _a.updateRecentlySavedErroredVendorData, exports.clearRecentlySavedErroredVendorData = _a.clearRecentlySavedErroredVendorData, exports.saveVendorFirstReviewViewSuccessOrFailure = _a.saveVendorFirstReviewViewSuccessOrFailure, exports.updateVendorFirstReviewViewTransactionAttachments = _a.updateVendorFirstReviewViewTransactionAttachments, exports.updateVendorFirstReviewViewTransactionAttachmentsFailure = _a.updateVendorFirstReviewViewTransactionAttachmentsFailure;
314
+ _a = vendorFirstReviewView.actions, exports.fetchVendorFirstReviewAttachments = _a.fetchVendorFirstReviewAttachments, exports.fetchVendorFirstReviewView = _a.fetchVendorFirstReviewView, exports.updateSavedVendorFirstReviewViewLocalData = _a.updateSavedVendorFirstReviewViewLocalData, exports.updateVendorFirstReviewViewFailure = _a.updateVendorFirstReviewViewFailure, exports.clearVendorReviewView = _a.clearVendorReviewView, exports.updateVendorFirstReviewViewScrollYOffset = _a.updateVendorFirstReviewViewScrollYOffset, exports.updateVendorFirstReviewViewPageToken = _a.updateVendorFirstReviewViewPageToken, exports.saveVendorFirstReviewView = _a.saveVendorFirstReviewView, exports.updateVendorFirstReviewSortUiState = _a.updateVendorFirstReviewSortUiState, exports.initializeVendorFirstReviewViewLocalData = _a.initializeVendorFirstReviewViewLocalData, exports.updateVendorFirstReviewViewLocalData = _a.updateVendorFirstReviewViewLocalData, exports.resetVendorFirstReviewLocalData = _a.resetVendorFirstReviewLocalData, exports.updateRecentlySavedErroredVendorData = _a.updateRecentlySavedErroredVendorData, exports.clearRecentlySavedErroredVendorData = _a.clearRecentlySavedErroredVendorData, exports.saveVendorFirstReviewViewSuccessOrFailure = _a.saveVendorFirstReviewViewSuccessOrFailure, exports.updateVendorFirstReviewViewTransactionAttachments = _a.updateVendorFirstReviewViewTransactionAttachments, exports.updateVendorFirstReviewViewTransactionAttachmentsFailure = _a.updateVendorFirstReviewViewTransactionAttachmentsFailure, exports.updateVendorDetailRecommendations = _a.updateVendorDetailRecommendations, exports.updateReviewVendorDetailLocalData = _a.updateReviewVendorDetailLocalData, exports.saveVendorDetailsView = _a.saveVendorDetailsView, exports.updateVendorDetailsViewFailureOrSuccess = _a.updateVendorDetailsViewFailureOrSuccess;
307
315
  exports.default = vendorFirstReviewView.reducer;
@@ -27,6 +27,7 @@ export interface VendorFirstReviewSelectorView {
27
27
  status: ReviewStatus;
28
28
  lastUpdatedVendorNameByUser?: User;
29
29
  mergeVendorName: string | undefined;
30
+ isWebsiteUrlSaved: boolean;
30
31
  saveStatus: FetchStateAndError;
31
32
  attachmentFetchStatus: FetchStateAndError;
32
33
  recommendations: RecommendedNonExistingGlobalMerchant[];
@@ -39,10 +40,19 @@ interface RecentlySavedErroredVendorView {
39
40
  oldRecommendedVendor?: RecommendedNonExistingGlobalMerchant;
40
41
  newRecommendedVendor?: RecommendedNonExistingGlobalMerchant;
41
42
  }
43
+ export interface FirstReviewVendorDetailSelectorView {
44
+ id?: ID;
45
+ qboId?: ID;
46
+ name?: string;
47
+ websiteUrl?: ZeniUrl;
48
+ recommendations: RecommendedNonExistingGlobalMerchant[];
49
+ saveStatus: FetchStateAndError;
50
+ }
42
51
  export declare const getVendorFirstReviewView: (state: RootState) => VendorFirstReviewViewSelectorView;
43
52
  export interface VendorFirstReviewSelectorAttachmentView {
44
53
  attachmentFetchStatus: FetchStateAndError;
45
54
  transactionAttachments: Attachment[];
46
55
  }
47
56
  export declare const getVendorFirstReviewAttachmentView: (state: RootState, vendorId: ID) => VendorFirstReviewSelectorAttachmentView | undefined;
57
+ export declare const getVendorDetailSelectorView: (state: RootState) => FirstReviewVendorDetailSelectorView;
48
58
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getVendorFirstReviewAttachmentView = exports.getVendorFirstReviewView = void 0;
3
+ exports.getVendorDetailSelectorView = exports.getVendorFirstReviewAttachmentView = exports.getVendorFirstReviewView = void 0;
4
4
  const globalMerchantSelector_1 = require("../../../entity/globalMerchant/globalMerchantSelector");
5
5
  const userSelector_1 = require("../../../entity/user/userSelector");
6
6
  const vendorSelector_1 = require("../../../entity/vendor/vendorSelector");
@@ -63,6 +63,7 @@ const getVendorFirstReviewView = (state) => {
63
63
  recommendations,
64
64
  currentSelection: vendorLocalData.currentSelection,
65
65
  mergeVendorName: vendorLocalData.mergeVendorName,
66
+ isWebsiteUrlSaved: vendorLocalData.isWebsiteUrlSaved,
66
67
  transactionAttachments,
67
68
  };
68
69
  });
@@ -110,3 +111,22 @@ const getVendorFirstReviewAttachmentView = (state, vendorId) => {
110
111
  };
111
112
  };
112
113
  exports.getVendorFirstReviewAttachmentView = getVendorFirstReviewAttachmentView;
114
+ const getVendorDetailSelectorView = (state) => {
115
+ var _a, _b, _c;
116
+ const { vendorFirstReviewViewState, globalMerchantState } = state;
117
+ const { vendorLocalData } = vendorFirstReviewViewState;
118
+ let recommendations = (0, globalMerchantSelector_1.getGlobalMerchantsByMerchantIds)(globalMerchantState, (_a = vendorLocalData === null || vendorLocalData === void 0 ? void 0 : vendorLocalData.vendorDetails.recommendationIds) !== null && _a !== void 0 ? _a : []);
119
+ recommendations = [
120
+ ...recommendations,
121
+ ...((_b = vendorLocalData === null || vendorLocalData === void 0 ? void 0 : vendorLocalData.vendorDetails.recommendedNonExistingGlobalMerchants) !== null && _b !== void 0 ? _b : []),
122
+ ];
123
+ return {
124
+ id: vendorLocalData === null || vendorLocalData === void 0 ? void 0 : vendorLocalData.vendorDetails.id,
125
+ qboId: vendorLocalData === null || vendorLocalData === void 0 ? void 0 : vendorLocalData.vendorDetails.qboId,
126
+ name: vendorLocalData === null || vendorLocalData === void 0 ? void 0 : vendorLocalData.vendorDetails.name,
127
+ websiteUrl: vendorLocalData === null || vendorLocalData === void 0 ? void 0 : vendorLocalData.vendorDetails.websiteUrl,
128
+ recommendations,
129
+ saveStatus: (_c = vendorLocalData === null || vendorLocalData === void 0 ? void 0 : vendorLocalData.saveStatus) !== null && _c !== void 0 ? _c : { fetchState: 'Not-Started' },
130
+ };
131
+ };
132
+ exports.getVendorDetailSelectorView = getVendorDetailSelectorView;