MCPcopy Create free account
hub / github.com/FormidableLabs/use-editable / getPosition

Function getPosition

src/useEditable.ts:69–84  ·  view source on GitHub ↗
(element: HTMLElement)

Source from the content-addressed store, hash-verified

67};
68
69const getPosition = (element: HTMLElement): Position => {
70 // Firefox Quirk: Since plaintext-only is unsupported the position
71 // of the text here is retrieved via a range, rather than traversal
72 // as seen in makeRange()
73 const range = getCurrentRange();
74 const extent = !range.collapsed ? range.toString().length : 0;
75 const untilRange = document.createRange();
76 untilRange.setStart(element, 0);
77 untilRange.setEnd(range.startContainer, range.startOffset);
78 let content = untilRange.toString();
79 const position = content.length;
80 const lines = content.split('\n');
81 const line = lines.length - 1;
82 content = lines[line];
83 return { position, extent, content, line };
84};
85
86const makeRange = (
87 element: HTMLElement,

Callers 7

updateFunction · 0.85
insertFunction · 0.85
getStateFunction · 0.85
trackStateFunction · 0.85
flushChangesFunction · 0.85
onKeyDownFunction · 0.85
onSelectFunction · 0.85

Calls 1

getCurrentRangeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…