in src/pages/Home/Home.state.ts [102:127]
rungroups: mergeTo(state.newRuns, state.rungroups, state.params),
newRuns: [],
};
}
return { ...state, isScrolledFromTop: action.isScrolledFromTop };
}
}
};
/**
* Add or merge incoming runs to existing run groups
* @param runs Incoming runs
* @param initialData Existing run groups
* @param params
*/
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 {