@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.
- package/lib/entity/task/taskState.d.ts +0 -3
- package/lib/entity/task/taskState.js +0 -13
- package/lib/epic.d.ts +3 -1
- package/lib/epic.js +3 -1
- package/lib/index.d.ts +12 -12
- package/lib/index.js +9 -3
- package/lib/view/globalMerchantView/epics/fetchGlobalMerchantRecommendationEpic.d.ts +3 -3
- package/lib/view/globalMerchantView/epics/fetchGlobalMerchantRecommendationEpic.js +20 -4
- package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +5 -2
- package/lib/view/globalMerchantView/globalMerchantViewReducer.js +8 -3
- package/lib/view/globalMerchantView/globalMerchantViewSelector.d.ts +1 -1
- package/lib/view/globalMerchantView/globalMerchantViewSelector.js +6 -5
- package/lib/view/globalMerchantView/globalMerchantViewState.d.ts +1 -0
- package/lib/view/taskManager/taskListView/bulkUpdateTaskListEpic.d.ts +23 -0
- package/lib/view/taskManager/taskListView/bulkUpdateTaskListEpic.js +3 -2
- package/lib/view/taskManager/taskListView/taskListReducer.d.ts +6 -0
- package/lib/view/taskManager/taskListView/taskListReducer.js +53 -2
- package/lib/view/taskManager/taskListView/updateTaskFromListViewEpic.d.ts +8 -0
- package/lib/view/taskManager/taskListView/updateTaskFromListViewEpic.js +37 -0
- package/lib/view/vendorReviewView/common/state/commonTypes.d.ts +2 -1
- package/lib/view/vendorReviewView/common/state/commonTypes.js +4 -4
- package/lib/view/vendorReviewView/vendorFirstReviewView/epics/saveVendorDetailsViewEpic.d.ts +8 -0
- package/lib/view/vendorReviewView/vendorFirstReviewView/epics/saveVendorDetailsViewEpic.js +62 -0
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewPayload.d.ts +7 -1
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewPayload.js +11 -1
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewReducer.d.ts +14 -4
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewReducer.js +57 -49
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewSelector.d.ts +10 -0
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewSelector.js +21 -1
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewState.d.ts +20 -2
- package/lib/view/vendorReviewView/vendorGlobalReviewView/epics/fetchVendorGlobalReviewViewEpic.js +4 -4
- package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewPayload.d.ts +1 -1
- package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewPayload.js +2 -2
- package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewReducer.d.ts +6 -1
- package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewReducer.js +18 -6
- package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewSelector.d.ts +3 -1
- package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewSelector.js +7 -5
- package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewState.d.ts +9 -1
- package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewState.js +2 -2
- 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' | '
|
|
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((
|
|
53
|
-
if (
|
|
54
|
-
recommendations.push((0, globalMerchantPayload_1.toGlobalMerchantBase)(
|
|
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)(
|
|
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,
|
|
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
|
-
|
|
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:
|
|
38
|
-
selectedGlobalMerchantId
|
|
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.
|
|
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 (
|
|
103
|
-
|
|
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
|
-
|
|
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
|
-
|
|
303
|
-
|
|
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;
|