41 lines
760 B
JavaScript
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;
|
|
}
|
|
}
|
|
);
|