Tofu/app/tools/planning/setPlanningDay.js

12 lines
557 B
JavaScript

// Returns a new planning whose day matching dateKey carries the patched fields.
// Immutable: neither the received planning, its days array nor its day objects
// are mutated. An unknown date key gives the planning back untouched.
export function setPlanningDay(planning, dateKey, patch) {
const days = planning && planning.days
if (!Array.isArray(days)) return planning
if (!days.some((day) => day.date === dateKey)) return planning
return {
...planning,
days: days.map((day) => (day.date === dateKey ? { ...day, ...patch } : day)),
}
}