mirror of
https://github.com/astuto/astuto.git
synced 2025-12-15 19:27:52 +01:00
Add Redux and use it for state management
This commit is contained in:
40
app/javascript/containers/Board.tsx
Normal file
40
app/javascript/containers/Board.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { requestPosts } from '../actions/requestPosts';
|
||||
import { requestPostStatuses } from '../actions/requestPostStatuses';
|
||||
import {
|
||||
setSearchFilter,
|
||||
setPostStatusFilter,
|
||||
} from '../actions/changeFilters';
|
||||
|
||||
import { State } from '../reducers/rootReducer';
|
||||
|
||||
import BoardP from '../components/Board/BoardP';
|
||||
|
||||
const mapStateToProps = (state: State) => ({
|
||||
posts: state.posts,
|
||||
postStatuses: state.postStatuses,
|
||||
});
|
||||
|
||||
const mapDispatchToProps = (dispatch) => ({
|
||||
requestPosts(boardId: number, page: number = 1, searchQuery: string = '', postStatusId: number) {
|
||||
dispatch(requestPosts(boardId, page, searchQuery, postStatusId));
|
||||
},
|
||||
|
||||
requestPostStatuses() {
|
||||
dispatch(requestPostStatuses());
|
||||
},
|
||||
|
||||
handleSearchFilterChange(searchQuery: string) {
|
||||
dispatch(setSearchFilter(searchQuery));
|
||||
},
|
||||
|
||||
handlePostStatusFilterChange(postStatusId: number) {
|
||||
dispatch(setPostStatusFilter(postStatusId));
|
||||
},
|
||||
});
|
||||
|
||||
export default connect(
|
||||
mapStateToProps,
|
||||
mapDispatchToProps,
|
||||
)(BoardP);
|
||||
Reference in New Issue
Block a user