12 lines
557 B
JavaScript
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)),
|
|
}
|
|
}
|