1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-29 01:59:42 +02:00
planka/client/src/containers/BoardActionsContainer.js

60 lines
1.8 KiB
JavaScript
Raw Normal View History

import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import {
filterLabelsForCurrentBoardSelector,
filterUsersForCurrentBoardSelector,
isCurrentUserManagerForCurrentProjectSelector,
labelsForCurrentBoardSelector,
membershipsForCurrentBoardSelector,
usersSelector,
} from '../selectors';
import {
addLabelToFilterInCurrentBoard,
addUserToFilterInCurrentBoard,
createLabelInCurrentBoard,
createMembershipInCurrentBoard,
deleteBoardMembership,
deleteLabel,
removeLabelFromFilterInCurrentBoard,
removeUserFromFilterInCurrentBoard,
updateLabel,
} from '../actions/entry';
import BoardActions from '../components/BoardActions';
const mapStateToProps = (state) => {
const allUsers = usersSelector(state);
const isCurrentUserManager = isCurrentUserManagerForCurrentProjectSelector(state);
const memberships = membershipsForCurrentBoardSelector(state);
const labels = labelsForCurrentBoardSelector(state);
const filterUsers = filterUsersForCurrentBoardSelector(state);
const filterLabels = filterLabelsForCurrentBoardSelector(state);
return {
memberships,
labels,
filterUsers,
filterLabels,
allUsers,
canEditMemberships: isCurrentUserManager,
};
};
const mapDispatchToProps = (dispatch) =>
bindActionCreators(
{
onMembershipCreate: createMembershipInCurrentBoard,
onMembershipDelete: deleteBoardMembership,
onUserToFilterAdd: addUserToFilterInCurrentBoard,
onUserFromFilterRemove: removeUserFromFilterInCurrentBoard,
onLabelToFilterAdd: addLabelToFilterInCurrentBoard,
onLabelFromFilterRemove: removeLabelFromFilterInCurrentBoard,
onLabelCreate: createLabelInCurrentBoard,
onLabelUpdate: updateLabel,
onLabelDelete: deleteLabel,
},
dispatch,
);
export default connect(mapStateToProps, mapDispatchToProps)(BoardActions);