@expensify/react-native-live-markdown 0.1.115 → 0.1.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -139,17 +139,28 @@ function scrollCursorIntoView(target) {
139
139
  if (!selection || selection && selection.rangeCount === 0) {
140
140
  return;
141
141
  }
142
- const caretRect = selection.getRangeAt(0).getClientRects()[0];
142
+ const caretRects = selection.getRangeAt(0).getClientRects();
143
+
144
+ // we'll find the caretRect from the DOMRectList above with the largest bottom value
145
+ let currentCaretRect = caretRects[0];
146
+ if (currentCaretRect) {
147
+ for (let i = 1; i < caretRects.length; i++) {
148
+ const caretRect = caretRects[i];
149
+ if (caretRect && caretRect.bottom > currentCaretRect.bottom) {
150
+ currentCaretRect = caretRect;
151
+ }
152
+ }
153
+ }
143
154
  const editableRect = target.getBoundingClientRect();
144
155
 
145
156
  // Adjust for padding and border
146
157
  const paddingTop = parseFloat(window.getComputedStyle(target).paddingTop);
147
158
  const borderTop = parseFloat(window.getComputedStyle(target).borderTopWidth);
148
- if (caretRect && !(caretRect.top >= editableRect.top + paddingTop + borderTop && caretRect.bottom <= editableRect.bottom - 2 * (paddingTop - borderTop))) {
149
- const topToCaret = caretRect.top - editableRect.top;
159
+ if (currentCaretRect && !(currentCaretRect.top >= editableRect.top + paddingTop + borderTop && currentCaretRect.bottom <= editableRect.bottom - 2 * (paddingTop - borderTop))) {
160
+ const topToCaret = currentCaretRect.top - editableRect.top;
150
161
  const inputHeight = editableRect.height;
151
162
  // Chrome Rects don't include padding & border, so we're adding them manually
152
- const inputOffset = caretRect.height - inputHeight + paddingTop + borderTop + (BrowserUtils.isChromium ? 0 : 4 * (paddingTop + borderTop));
163
+ const inputOffset = currentCaretRect.height - inputHeight + paddingTop + borderTop + (BrowserUtils.isChromium ? 0 : 4 * (paddingTop + borderTop));
153
164
  target.scrollTo(0, topToCaret + target.scrollTop + inputOffset);
154
165
  }
155
166
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BrowserUtils","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","prevTextLength","getPrevTextLength","findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","length","childNodes","childNode","setPrevText","target","_textNodes$map","text","map","nodeValue","join","split","setCursorPosition","start","end","_textNodes$map2","document","activeElement","range","createRange","selectNodeContents","textCharacters","prevChar","nextChar","charCount","startNode","endNode","textNode","nextCharCount","undefined","setStart","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollCursorIntoView","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","toString","removeSelection","removeAllRanges","selectionStart","value","isFirefox","caretRect","getClientRects","editableRect","getBoundingClientRect","paddingTop","parseFloat","getComputedStyle","borderTop","borderTopWidth","top","bottom","topToCaret","inputHeight","height","inputOffset","isChromium","scrollTo","scrollTop"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["BrowserUtils","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","prevTextLength","getPrevTextLength","findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","length","childNodes","childNode","setPrevText","target","_textNodes$map","text","map","nodeValue","join","split","setCursorPosition","start","end","_textNodes$map2","document","activeElement","range","createRange","selectNodeContents","textCharacters","prevChar","nextChar","charCount","startNode","endNode","textNode","nextCharCount","undefined","setStart","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollCursorIntoView","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","toString","removeSelection","removeAllRanges","selectionStart","value","isFirefox","caretRects","getClientRects","currentCaretRect","caretRect","bottom","editableRect","getBoundingClientRect","paddingTop","parseFloat","getComputedStyle","borderTop","borderTopWidth","top","topToCaret","inputHeight","height","inputOffset","isChromium","scrollTo","scrollTop"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
@@ -125,17 +125,28 @@ function scrollCursorIntoView(target) {
125
125
  if (!selection || selection && selection.rangeCount === 0) {
126
126
  return;
127
127
  }
128
- const caretRect = selection.getRangeAt(0).getClientRects()[0];
128
+ const caretRects = selection.getRangeAt(0).getClientRects();
129
+
130
+ // we'll find the caretRect from the DOMRectList above with the largest bottom value
131
+ let currentCaretRect = caretRects[0];
132
+ if (currentCaretRect) {
133
+ for (let i = 1; i < caretRects.length; i++) {
134
+ const caretRect = caretRects[i];
135
+ if (caretRect && caretRect.bottom > currentCaretRect.bottom) {
136
+ currentCaretRect = caretRect;
137
+ }
138
+ }
139
+ }
129
140
  const editableRect = target.getBoundingClientRect();
130
141
 
131
142
  // Adjust for padding and border
132
143
  const paddingTop = parseFloat(window.getComputedStyle(target).paddingTop);
133
144
  const borderTop = parseFloat(window.getComputedStyle(target).borderTopWidth);
134
- if (caretRect && !(caretRect.top >= editableRect.top + paddingTop + borderTop && caretRect.bottom <= editableRect.bottom - 2 * (paddingTop - borderTop))) {
135
- const topToCaret = caretRect.top - editableRect.top;
145
+ if (currentCaretRect && !(currentCaretRect.top >= editableRect.top + paddingTop + borderTop && currentCaretRect.bottom <= editableRect.bottom - 2 * (paddingTop - borderTop))) {
146
+ const topToCaret = currentCaretRect.top - editableRect.top;
136
147
  const inputHeight = editableRect.height;
137
148
  // Chrome Rects don't include padding & border, so we're adding them manually
138
- const inputOffset = caretRect.height - inputHeight + paddingTop + borderTop + (BrowserUtils.isChromium ? 0 : 4 * (paddingTop + borderTop));
149
+ const inputOffset = currentCaretRect.height - inputHeight + paddingTop + borderTop + (BrowserUtils.isChromium ? 0 : 4 * (paddingTop + borderTop));
139
150
  target.scrollTo(0, topToCaret + target.scrollTop + inputOffset);
140
151
  }
141
152
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BrowserUtils","prevTextLength","getPrevTextLength","findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","i","length","childNodes","childNode","setPrevText","target","_textNodes$map","text","map","e","nodeValue","join","split","setCursorPosition","start","end","_textNodes$map2","document","activeElement","range","createRange","selectNodeContents","textCharacters","prevChar","nextChar","charCount","startNode","endNode","n","textNode","nextCharCount","undefined","setStart","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollCursorIntoView","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","toString","removeSelection","removeAllRanges","selectionStart","value","isFirefox","caretRect","getClientRects","editableRect","getBoundingClientRect","paddingTop","parseFloat","getComputedStyle","borderTop","borderTopWidth","top","bottom","topToCaret","inputHeight","height","inputOffset","isChromium","scrollTo","scrollTop"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["BrowserUtils","prevTextLength","getPrevTextLength","findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","i","length","childNodes","childNode","setPrevText","target","_textNodes$map","text","map","e","nodeValue","join","split","setCursorPosition","start","end","_textNodes$map2","document","activeElement","range","createRange","selectNodeContents","textCharacters","prevChar","nextChar","charCount","startNode","endNode","n","textNode","nextCharCount","undefined","setStart","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollCursorIntoView","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","toString","removeSelection","removeAllRanges","selectionStart","value","isFirefox","caretRects","getClientRects","currentCaretRect","caretRect","bottom","editableRect","getBoundingClientRect","paddingTop","parseFloat","getComputedStyle","borderTop","borderTopWidth","top","topToCaret","inputHeight","height","inputOffset","isChromium","scrollTo","scrollTop"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursorUtils.d.ts","sourceRoot":"","sources":["../../../../src/web/cursorUtils.ts"],"names":[],"mappings":"AAIA,iBAAS,iBAAiB,uBAEzB;AAeD,iBAAS,WAAW,CAAC,MAAM,EAAE,WAAW,QAUvC;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,QAuEvF;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,QAQ3C;AAED,iBAAS,wBAAwB,CAAC,MAAM,EAAE,WAAW;;;SAYpD;AAED,iBAAS,eAAe,SAKvB;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,QAyBrD;AAED,OAAO,EAAC,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,CAAC"}
1
+ {"version":3,"file":"cursorUtils.d.ts","sourceRoot":"","sources":["../../../../src/web/cursorUtils.ts"],"names":[],"mappings":"AAIA,iBAAS,iBAAiB,uBAEzB;AAeD,iBAAS,WAAW,CAAC,MAAM,EAAE,WAAW,QAUvC;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,QAuEvF;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,QAQ3C;AAED,iBAAS,wBAAwB,CAAC,MAAM,EAAE,WAAW;;;SAYpD;AAED,iBAAS,eAAe,SAKvB;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,QAqCrD;AAED,OAAO,EAAC,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expensify/react-native-live-markdown",
3
- "version": "0.1.115",
3
+ "version": "0.1.116",
4
4
  "description": "Drop-in replacement for React Native's TextInput component with Markdown formatting.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -145,18 +145,30 @@ function scrollCursorIntoView(target: HTMLInputElement) {
145
145
  return;
146
146
  }
147
147
 
148
- const caretRect = selection.getRangeAt(0).getClientRects()[0];
148
+ const caretRects = selection.getRangeAt(0).getClientRects();
149
+
150
+ // we'll find the caretRect from the DOMRectList above with the largest bottom value
151
+ let currentCaretRect = caretRects[0];
152
+ if (currentCaretRect) {
153
+ for (let i = 1; i < caretRects.length; i++) {
154
+ const caretRect = caretRects[i];
155
+ if (caretRect && caretRect.bottom > currentCaretRect.bottom) {
156
+ currentCaretRect = caretRect;
157
+ }
158
+ }
159
+ }
160
+
149
161
  const editableRect = target.getBoundingClientRect();
150
162
 
151
163
  // Adjust for padding and border
152
164
  const paddingTop = parseFloat(window.getComputedStyle(target).paddingTop);
153
165
  const borderTop = parseFloat(window.getComputedStyle(target).borderTopWidth);
154
166
 
155
- if (caretRect && !(caretRect.top >= editableRect.top + paddingTop + borderTop && caretRect.bottom <= editableRect.bottom - 2 * (paddingTop - borderTop))) {
156
- const topToCaret = caretRect.top - editableRect.top;
167
+ if (currentCaretRect && !(currentCaretRect.top >= editableRect.top + paddingTop + borderTop && currentCaretRect.bottom <= editableRect.bottom - 2 * (paddingTop - borderTop))) {
168
+ const topToCaret = currentCaretRect.top - editableRect.top;
157
169
  const inputHeight = editableRect.height;
158
170
  // Chrome Rects don't include padding & border, so we're adding them manually
159
- const inputOffset = caretRect.height - inputHeight + paddingTop + borderTop + (BrowserUtils.isChromium ? 0 : 4 * (paddingTop + borderTop));
171
+ const inputOffset = currentCaretRect.height - inputHeight + paddingTop + borderTop + (BrowserUtils.isChromium ? 0 : 4 * (paddingTop + borderTop));
160
172
 
161
173
  target.scrollTo(0, topToCaret + target.scrollTop + inputOffset);
162
174
  }