export function mergeTo()

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);
}