refactor(editor): edgeless note toolbar config extension (#10719)

This commit is contained in:
fundon
2025-03-19 12:34:18 +00:00
parent b5406fa57a
commit e320552594
30 changed files with 1486 additions and 59 deletions
@@ -0,0 +1,23 @@
import groupBy from 'lodash-es/groupBy';
import maxBy from 'lodash-es/maxBy';
export function getMostCommonValue<T, F extends keyof T>(
records: T[],
field: F
) {
const grouped = groupBy(records, record => record[field]);
const values = Object.values(grouped);
const record = maxBy(values, records => records.length)?.[0];
return record?.[field];
}
export function getMostCommonResolvedValue<
T,
F extends Exclude<keyof T, symbol>,
U,
>(records: T[], field: F, resolve: (value: T[F]) => U) {
return getMostCommonValue(
records.map(record => ({ [field]: resolve(record[field]) })),
field
);
}