import { createSelector } from "reselect"; import { CookingSession } from "@spendcook/api"; import selectEntities from "./selectEntities"; import { denormalize } from "normalizr"; import { cookingSessionsSchema } from "../entities"; import { State } from "../types"; import moment from "moment"; const selectAllCookingSessions = createSelector( [selectEntities], (entities) => denormalize( Object.keys(entities.cookingSessions), cookingSessionsSchema, entities ) as CookingSession[] ); const getDate = (_: State, date: Date) => date; export default createSelector( [selectAllCookingSessions, getDate], (cookingSessions, day: Date) => { const timestamp = moment(day).startOf("day").valueOf(); return cookingSessions.filter(({ date }) => { return moment(date).startOf("day").valueOf() === timestamp; }); } );