in src/pages/Home/Home.state.ts [117:146]
export function mergeTo(
runs: Run[],
initialData: Record<string, Run[]>,
params: Record<string, string>,
): Record<string, Run[]> {
return runs.reduce((data, item) => {
const groupKey = item[params._group as keyof Run] || 'undefined';
if (typeof groupKey === 'string') {
if (data[groupKey]) {
const index = data[groupKey].findIndex((r) => r.run_number === item.run_number);
return {
...data,
[groupKey]:
index > -1
? sortRuns(
data[groupKey].map((r) => (r.run_number === item.run_number ? item : r)),
params._order,
)
: sortRuns([...data[groupKey], item], params._order),
};
} else {
return {
...data,
[groupKey]: [item],
};
}
}
return data;
}, initialData);
}