* feat: display record identifier field as first column in table & forbid hiding and moving record identifier column Closes #3303 * refactor: add availableTableColumnKeysSelectorScopeMap * feat: show plus icon button for label identifier column and dropdown menu for other columns * fix: use label identifier field value in RecordShowPage title * refactor: remove availableColumnKeys selector * refactor: review - compute label identifier logic in mapViewFieldsToColumnDefinitions + remove selectors * fix: several fixes * fix: fix board fields isVisible * fix: fix board fields reordering * fix: more board fields fixes * fix: fix hiddenTableColumnsSelectorScopeMap
14 lines
374 B
TypeScript
14 lines
374 B
TypeScript
export const groupArrayItemsBy = <Item, Key extends string>(
|
|
array: Item[],
|
|
computeGroupKey: (item: Item) => Key,
|
|
) =>
|
|
array.reduce<Partial<Record<Key, Item[]>>>((result, item) => {
|
|
const groupKey = computeGroupKey(item);
|
|
const previousGroup = result[groupKey] || [];
|
|
|
|
return {
|
|
...result,
|
|
[groupKey]: [...previousGroup, item],
|
|
};
|
|
}, {});
|