27 lines
729 B
TypeScript
27 lines
729 B
TypeScript
/**
|
|
* Internal dependencies
|
|
*/
|
|
import type { RichTextValue } from './types';
|
|
|
|
/**
|
|
* Check if the selection of a Rich Text value is collapsed or not. Collapsed
|
|
* means that no characters are selected, but there is a caret present. If there
|
|
* is no selection, `undefined` will be returned. This is similar to
|
|
* `window.getSelection().isCollapsed()`.
|
|
*
|
|
* @param props The rich text value to check.
|
|
* @param props.start
|
|
* @param props.end
|
|
* @return True if the selection is collapsed, false if not, undefined if there is no selection.
|
|
*/
|
|
export function isCollapsed( {
|
|
start,
|
|
end,
|
|
}: RichTextValue ): boolean | undefined {
|
|
if ( start === undefined || end === undefined ) {
|
|
return;
|
|
}
|
|
|
|
return start === end;
|
|
}
|