codecrumbs/example-project/src-client/tasks/selectors.js

41 lines
760 B
JavaScript

import { createSelector } from 'reselect';
export function getTasks(state) {
return state.tasks;
}
export function getTaskList(state) {
return getTasks(state).list;
}
export function getTaskFilter(state) {
return getTasks(state).filter;
}
export function getDeletedTask(state) {
return getTasks(state).deleted;
}
//=====================================
// MEMOIZED SELECTORS
//-------------------------------------
export const getVisibleTasks = createSelector(
getTaskList,
getTaskFilter,
(tasks, filter) => {
switch (filter) {
case 'active':
return tasks.filter(task => !task.completed);
case 'completed':
return tasks.filter(task => task.completed);
default:
return tasks;
}
}
);