import CatalogView from 'features/catalog/CatalogView';
import {
fetchWorkflow,
- resetWorkflow,
searchChangedAction
} from 'features/catalog/catalogActions';
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(
class CatalogView extends Component {
constructor(props) {
super(props);
- this.state = {
- searchValue: ''
- };
}
componentDidMount() {
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 => {
const {
sort,
paging: { hasMore, total },
- items
+ items,
+ searchNameFilter
} = catalog;
const alphabeticalOrder = sort[NAME];
<div className="wf-catalog">
<Header
searchChange={this.searchChange}
- searchValue={this.state.searchValue}
+ searchValue={searchNameFilter}
/>
<InfiniteScroll
useWindow={false}
handleFetchWorkflow: PropTypes.func,
showNewWorkflowModal: PropTypes.func,
clearWorkflow: PropTypes.func,
- searchInputChanged: PropTypes.func
+ searchInputChanged: PropTypes.func,
+ searchNameFilter: PropTypes.string
};
CatalogView.defaultProps = {
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', () => {
payload
});
});
-
- it('should have `resetWorkflow` action', () => {
- expect(resetWorkflow()).toEqual({
- type: RESET_WORKFLOW
- });
- });
});
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 = {
);
});
- it('should reset state', () => {
- expect(catalogReducer({ ...state, sort }, resetWorkflow())).toEqual({
- ...initialState,
- sort
- });
- });
});
} from 'features/catalog/catalogConstants';
export const {
- [NAMESPACE]: { updateWorkflow, resetWorkflow }
+ [NAMESPACE]: { updateWorkflow }
} = createActions({
[NAMESPACE]: {
- UPDATE_WORKFLOW: undefined,
- RESET_WORKFLOW: undefined
+ UPDATE_WORKFLOW: undefined
}
});
* 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: {
const { type, payload } = action;
switch (type) {
- case RESET_WORKFLOW:
- return { ...initialState, sort: state.sort };
-
case UPDATE_WORKFLOW:
return {
...state,
? [...payload.items]
: [...state.items, ...payload.items]
};
-
+ case SEARCH_CHANGED:
+ return {
+ ...state,
+ searchNameFilter: action.payload.searchNameFilter
+ };
default:
return state;
}