cache search result workflow 96/71796/3
authorYarin Dekel <yarind@amdocs.com>
Sun, 4 Nov 2018 13:10:26 +0000 (15:10 +0200)
committerYarin Dekel <yarind@amdocs.com>
Sun, 4 Nov 2018 13:10:32 +0000 (15:10 +0200)
Issue-ID: SDC-1889
Change-Id: I4a29b9954d3ce50ea9745e8aa8996f46f12501f1
Signed-off-by: Yarin Dekel <yarind@amdocs.com>
workflow-designer-ui/src/main/frontend/src/features/catalog/Catalog.js
workflow-designer-ui/src/main/frontend/src/features/catalog/CatalogView.jsx
workflow-designer-ui/src/main/frontend/src/features/catalog/__tests__/catalogActions-test.js
workflow-designer-ui/src/main/frontend/src/features/catalog/__tests__/catalogReducer-test.js
workflow-designer-ui/src/main/frontend/src/features/catalog/catalogActions.js
workflow-designer-ui/src/main/frontend/src/features/catalog/catalogReducer.js

index a7ddd14..867aeeb 100644 (file)
@@ -19,7 +19,6 @@ import { connect } from 'react-redux';
 import CatalogView from 'features/catalog/CatalogView';
 import {
     fetchWorkflow,
-    resetWorkflow,
     searchChangedAction
 } from 'features/catalog/catalogActions';
 
@@ -28,13 +27,13 @@ import { NEW_WORKFLOW_MODAL } from 'shared/modal/modalWrapperComponents';
 import { clearWorkflowAction } from 'features/workflow/workflowConstants';
 
 const mapStateToProps = state => ({
-    catalog: state.catalog
+    catalog: state.catalog,
+    searchNameFilter: state.searchNameFilter
 });
 
 const mapDispatchToProps = dispatch => ({
     handleFetchWorkflow: (sort, offset, searchNameFilter) =>
         dispatch(fetchWorkflow(sort, offset, searchNameFilter)),
-    handleResetWorkflow: () => dispatch(resetWorkflow()),
     clearWorkflow: () => dispatch(clearWorkflowAction),
     showNewWorkflowModal: () =>
         dispatch(
index 4fdcc78..3f00252 100644 (file)
@@ -27,9 +27,6 @@ import { NAME, ASC, DESC } from 'features/catalog/catalogConstants';
 class CatalogView extends Component {
     constructor(props) {
         super(props);
-        this.state = {
-            searchValue: ''
-        };
     }
 
     componentDidMount() {
@@ -38,34 +35,31 @@ class CatalogView extends Component {
         clearWorkflow();
     }
 
-    componentWillUnmount() {
-        this.props.handleResetWorkflow();
-    }
-
     handleAlphabeticalOrderByClick = e => {
         e.preventDefault();
 
         const {
             handleFetchWorkflow,
-            catalog: { sort }
+            catalog: { sort, searchNameFilter }
         } = this.props;
 
         const payload = {
             ...sort
         };
         payload[NAME] = payload[NAME] === ASC ? DESC : ASC;
-        handleFetchWorkflow(payload, undefined, this.state.searchValue);
+        handleFetchWorkflow(payload, undefined, searchNameFilter);
     };
 
     handleScroll = () => {
         const {
             catalog: {
                 paging: { offset },
-                sort
+                sort,
+                searchNameFilter
             },
             handleFetchWorkflow
         } = this.props;
-        handleFetchWorkflow(sort, offset, this.state.searchValue);
+        handleFetchWorkflow(sort, offset, searchNameFilter);
     };
 
     goToOverviewPage = id => {
@@ -91,7 +85,8 @@ class CatalogView extends Component {
         const {
             sort,
             paging: { hasMore, total },
-            items
+            items,
+            searchNameFilter
         } = catalog;
         const alphabeticalOrder = sort[NAME];
 
@@ -99,7 +94,7 @@ class CatalogView extends Component {
             <div className="wf-catalog">
                 <Header
                     searchChange={this.searchChange}
-                    searchValue={this.state.searchValue}
+                    searchValue={searchNameFilter}
                 />
                 <InfiniteScroll
                     useWindow={false}
@@ -132,7 +127,8 @@ CatalogView.propTypes = {
     handleFetchWorkflow: PropTypes.func,
     showNewWorkflowModal: PropTypes.func,
     clearWorkflow: PropTypes.func,
-    searchInputChanged: PropTypes.func
+    searchInputChanged: PropTypes.func,
+    searchNameFilter: PropTypes.string
 };
 
 CatalogView.defaultProps = {
index 43c38e0..e37307f 100644 (file)
 import {
     FETCH_WORKFLOW,
     UPDATE_WORKFLOW,
-    RESET_WORKFLOW,
     LIMIT,
     NAME,
     ASC
 } from 'features/catalog/catalogConstants';
-import {
-    fetchWorkflow,
-    updateWorkflow,
-    resetWorkflow
-} from 'features/catalog/catalogActions';
+import { fetchWorkflow, updateWorkflow } from 'features/catalog/catalogActions';
 
 describe('Catalog Actions', () => {
     it('should have `fetchWorkflow` action', () => {
@@ -65,10 +60,4 @@ describe('Catalog Actions', () => {
             payload
         });
     });
-
-    it('should have `resetWorkflow` action', () => {
-        expect(resetWorkflow()).toEqual({
-            type: RESET_WORKFLOW
-        });
-    });
 });
index 5444bf9..b31aa2e 100644 (file)
@@ -18,7 +18,7 @@
 
 import { NAME, ASC, DESC } from 'features/catalog/catalogConstants';
 import catalogReducer, { initialState } from 'features/catalog/catalogReducer';
-import { updateWorkflow, resetWorkflow } from 'features/catalog/catalogActions';
+import { updateWorkflow } from 'features/catalog/catalogActions';
 
 describe('Catalog Reducer', () => {
     const state = {
@@ -107,10 +107,4 @@ describe('Catalog Reducer', () => {
         );
     });
 
-    it('should reset state', () => {
-        expect(catalogReducer({ ...state, sort }, resetWorkflow())).toEqual({
-            ...initialState,
-            sort
-        });
-    });
 });
index 6262da0..f2cb043 100644 (file)
@@ -24,11 +24,10 @@ import {
 } from 'features/catalog/catalogConstants';
 
 export const {
-    [NAMESPACE]: { updateWorkflow, resetWorkflow }
+    [NAMESPACE]: { updateWorkflow }
 } = createActions({
     [NAMESPACE]: {
-        UPDATE_WORKFLOW: undefined,
-        RESET_WORKFLOW: undefined
+        UPDATE_WORKFLOW: undefined
     }
 });
 
index 78d8e52..e5f887b 100644 (file)
 * limitations under the License.
 */
 
-import {
-    NAME,
-    ASC,
-    UPDATE_WORKFLOW,
-    RESET_WORKFLOW
-} from 'features/catalog/catalogConstants';
+import { NAME, ASC, UPDATE_WORKFLOW } from 'features/catalog/catalogConstants';
+import { SEARCH_CHANGED } from './catalogConstants';
 
 export const initialState = {
     paging: {
@@ -35,9 +31,6 @@ const catalogReducer = (state = initialState, action) => {
     const { type, payload } = action;
 
     switch (type) {
-        case RESET_WORKFLOW:
-            return { ...initialState, sort: state.sort };
-
         case UPDATE_WORKFLOW:
             return {
                 ...state,
@@ -47,7 +40,11 @@ const catalogReducer = (state = initialState, action) => {
                         ? [...payload.items]
                         : [...state.items, ...payload.items]
             };
-
+        case SEARCH_CHANGED:
+            return {
+                ...state,
+                searchNameFilter: action.payload.searchNameFilter
+            };
         default:
             return state;
     }