remirror/remirror

View on GitHub
packages/remirror__extension-entity-reference/src/utils/shortest-entity-reference.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { EntityReferenceMetaData } from '../types';

type EntityReferenceMarkText = Pick<EntityReferenceMetaData, 'text'>;

/**
 * This helper can be used when reacting to clicks on overlapping highlights.
 * In that case, the app should show the shortest entity because longer entities
 * typical have other click areas.
 *
 * @param entityReferences
 * @returns entity references with the shortest text
 */
export const getShortestEntityReference = <T extends EntityReferenceMarkText>(
  entityReferences: T[],
): T | undefined => entityReferences.sort(({ text: a }, { text: b }) => a.length - b.length)[0];