Filter visible boards by user projects
This commit is contained in:
parent
d374999d88
commit
1f3f4bdeed
@ -3,6 +3,8 @@ import { Page } from '../Page';
|
||||
import { BoardCard } from './BoardCard';
|
||||
import { connect } from 'react-redux';
|
||||
import { fetchBoards } from '../../store/actions/boards';
|
||||
import { fetchProjects } from '../../store/actions/projects';
|
||||
import { selectBoardByUserProjects } from '../../store/selectors/boards';
|
||||
|
||||
export class HomePage extends React.Component {
|
||||
render() {
|
||||
@ -65,12 +67,13 @@ export class HomePage extends React.Component {
|
||||
|
||||
componentDidMount() {
|
||||
this.props.dispatch(fetchBoards());
|
||||
this.props.dispatch(fetchProjects());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const ConnectedHomePage = connect(function(state) {
|
||||
return {
|
||||
boards: state.boards.byID,
|
||||
boards: selectBoardByUserProjects(state.boards.byID, state.projects.byName)
|
||||
};
|
||||
})(HomePage);
|
11
client/src/store/selectors/boards.js
Normal file
11
client/src/store/selectors/boards.js
Normal file
@ -0,0 +1,11 @@
|
||||
export function selectBoardByUserProjects(boardsByID, projectsByName) {
|
||||
const userProjects = Object.keys(projectsByName);
|
||||
return Object.keys(boardsByID).reduce((filteredBoardsByID, boardID) => {
|
||||
const board = boardsByID[boardID];
|
||||
const hasProject = board.projects.some(p => userProjects.indexOf(p) !== -1);
|
||||
if (hasProject) {
|
||||
filteredBoardsByID[boardID] = board;
|
||||
}
|
||||
return filteredBoardsByID;
|
||||
}, {});
|
||||
}
|
Loading…
Reference in New Issue
Block a user