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