@expensify/react-native-live-markdown 0.1.154 → 0.1.155
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.
- package/lib/commonjs/web/inputElements/inlineImage.js +9 -6
- package/lib/commonjs/web/inputElements/inlineImage.js.map +1 -1
- package/lib/module/web/inputElements/inlineImage.js +9 -6
- package/lib/module/web/inputElements/inlineImage.js.map +1 -1
- package/lib/typescript/src/web/inputElements/inlineImage.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/web/inputElements/inlineImage.ts +9 -6
|
@@ -12,12 +12,13 @@ const inlineImageDefaultStyles = {
|
|
|
12
12
|
bottom: 0,
|
|
13
13
|
left: 0
|
|
14
14
|
};
|
|
15
|
-
|
|
16
|
-
function createImageElement(url, callback) {
|
|
17
|
-
if (
|
|
18
|
-
clearTimeout(
|
|
15
|
+
const timeoutMap = new Map();
|
|
16
|
+
function createImageElement(targetNode, url, callback) {
|
|
17
|
+
if (timeoutMap.has(targetNode.orderIndex)) {
|
|
18
|
+
clearTimeout(timeoutMap.get(targetNode.orderIndex));
|
|
19
|
+
timeoutMap.delete(targetNode.orderIndex);
|
|
19
20
|
}
|
|
20
|
-
timeout = setTimeout(() => {
|
|
21
|
+
const timeout = setTimeout(() => {
|
|
21
22
|
const imageContainer = document.createElement('span');
|
|
22
23
|
imageContainer.contentEditable = 'false';
|
|
23
24
|
imageContainer.setAttribute('data-type', 'inline-container');
|
|
@@ -27,7 +28,9 @@ function createImageElement(url, callback) {
|
|
|
27
28
|
img.onload = () => callback(imageContainer);
|
|
28
29
|
img.onerror = err => callback(imageContainer, err);
|
|
29
30
|
img.src = url;
|
|
31
|
+
timeoutMap.delete(targetNode.orderIndex);
|
|
30
32
|
}, INLINE_IMAGE_PREVIEW_DEBOUNCE_TIME_MS);
|
|
33
|
+
timeoutMap.set(targetNode.orderIndex, timeout);
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
/** Adds already loaded image element from current input content to the tree node */
|
|
@@ -73,7 +76,7 @@ function addInlineImagePreview(currentInput, targetNode, text, ranges, markdownS
|
|
|
73
76
|
marginBottom: `${imageMarginBottom}px`,
|
|
74
77
|
paddingBottom: ((_markdownStyle$loadin = markdownStyle.loadingIndicatorContainer) === null || _markdownStyle$loadin === void 0 ? void 0 : _markdownStyle$loadin.height) || ((_markdownStyle$loadin2 = markdownStyle.loadingIndicator) === null || _markdownStyle$loadin2 === void 0 ? void 0 : _markdownStyle$loadin2.height) || !!markdownStyle.loadingIndicator && '30px' || undefined
|
|
75
78
|
});
|
|
76
|
-
createImageElement(imageHref, (imageContainer, err) => {
|
|
79
|
+
createImageElement(targetNode, imageHref, (imageContainer, err) => {
|
|
77
80
|
// Verify if the current spinner is for the loaded image. If not, it means that the response came after the user changed the image url
|
|
78
81
|
const currentSpinner = currentInput.querySelector('[data-type="spinner"]');
|
|
79
82
|
// Remove the spinner
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_styleUtils","require","_loadingIndicator","INLINE_IMAGE_PREVIEW_DEBOUNCE_TIME_MS","inlineImageDefaultStyles","position","bottom","left","
|
|
1
|
+
{"version":3,"names":["_styleUtils","require","_loadingIndicator","INLINE_IMAGE_PREVIEW_DEBOUNCE_TIME_MS","inlineImageDefaultStyles","position","bottom","left","timeoutMap","Map","createImageElement","targetNode","url","callback","has","orderIndex","clearTimeout","get","delete","timeout","setTimeout","imageContainer","document","createElement","contentEditable","setAttribute","img","Image","appendChild","onload","onerror","err","src","set","updateImageTreeNode","newElement","imageMarginTop","paddingBottom","parseStringWithUnitToNumber","style","height","element","cloneNode","currentParent","parentElement","includes","getAttribute","Object","assign","addInlineImagePreview","currentInput","text","ranges","markdownStyle","_markdownStyle$inline","_markdownStyle$inline2","_markdownStyle$loadin","_markdownStyle$loadin2","linkRange","find","r","type","imageHref","substring","start","length","inlineImage","marginTop","imageMarginBottom","marginBottom","alreadyLoadedPreview","querySelector","loadedImageContainer","spinner","createLoadingIndicator","display","loadingIndicatorContainer","loadingIndicator","undefined","currentSpinner","remove","firstChild","minHeight","minWidth","maxHeight","maxWidth","borderRadius","imgStyle","alignItems","justifyContent","clientHeight"],"sourceRoot":"../../../../src","sources":["web/inputElements/inlineImage.ts"],"mappings":"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"}
|
|
@@ -6,12 +6,13 @@ const inlineImageDefaultStyles = {
|
|
|
6
6
|
bottom: 0,
|
|
7
7
|
left: 0
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
function createImageElement(url, callback) {
|
|
11
|
-
if (
|
|
12
|
-
clearTimeout(
|
|
9
|
+
const timeoutMap = new Map();
|
|
10
|
+
function createImageElement(targetNode, url, callback) {
|
|
11
|
+
if (timeoutMap.has(targetNode.orderIndex)) {
|
|
12
|
+
clearTimeout(timeoutMap.get(targetNode.orderIndex));
|
|
13
|
+
timeoutMap.delete(targetNode.orderIndex);
|
|
13
14
|
}
|
|
14
|
-
timeout = setTimeout(() => {
|
|
15
|
+
const timeout = setTimeout(() => {
|
|
15
16
|
const imageContainer = document.createElement('span');
|
|
16
17
|
imageContainer.contentEditable = 'false';
|
|
17
18
|
imageContainer.setAttribute('data-type', 'inline-container');
|
|
@@ -21,7 +22,9 @@ function createImageElement(url, callback) {
|
|
|
21
22
|
img.onload = () => callback(imageContainer);
|
|
22
23
|
img.onerror = err => callback(imageContainer, err);
|
|
23
24
|
img.src = url;
|
|
25
|
+
timeoutMap.delete(targetNode.orderIndex);
|
|
24
26
|
}, INLINE_IMAGE_PREVIEW_DEBOUNCE_TIME_MS);
|
|
27
|
+
timeoutMap.set(targetNode.orderIndex, timeout);
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
/** Adds already loaded image element from current input content to the tree node */
|
|
@@ -67,7 +70,7 @@ function addInlineImagePreview(currentInput, targetNode, text, ranges, markdownS
|
|
|
67
70
|
marginBottom: `${imageMarginBottom}px`,
|
|
68
71
|
paddingBottom: ((_markdownStyle$loadin = markdownStyle.loadingIndicatorContainer) === null || _markdownStyle$loadin === void 0 ? void 0 : _markdownStyle$loadin.height) || ((_markdownStyle$loadin2 = markdownStyle.loadingIndicator) === null || _markdownStyle$loadin2 === void 0 ? void 0 : _markdownStyle$loadin2.height) || !!markdownStyle.loadingIndicator && '30px' || undefined
|
|
69
72
|
});
|
|
70
|
-
createImageElement(imageHref, (imageContainer, err) => {
|
|
73
|
+
createImageElement(targetNode, imageHref, (imageContainer, err) => {
|
|
71
74
|
// Verify if the current spinner is for the loaded image. If not, it means that the response came after the user changed the image url
|
|
72
75
|
const currentSpinner = currentInput.querySelector('[data-type="spinner"]');
|
|
73
76
|
// Remove the spinner
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["parseStringWithUnitToNumber","createLoadingIndicator","INLINE_IMAGE_PREVIEW_DEBOUNCE_TIME_MS","inlineImageDefaultStyles","position","bottom","left","
|
|
1
|
+
{"version":3,"names":["parseStringWithUnitToNumber","createLoadingIndicator","INLINE_IMAGE_PREVIEW_DEBOUNCE_TIME_MS","inlineImageDefaultStyles","position","bottom","left","timeoutMap","Map","createImageElement","targetNode","url","callback","has","orderIndex","clearTimeout","get","delete","timeout","setTimeout","imageContainer","document","createElement","contentEditable","setAttribute","img","Image","appendChild","onload","onerror","err","src","set","updateImageTreeNode","newElement","imageMarginTop","paddingBottom","style","height","element","cloneNode","currentParent","parentElement","includes","getAttribute","Object","assign","addInlineImagePreview","currentInput","text","ranges","markdownStyle","_markdownStyle$inline","_markdownStyle$inline2","_markdownStyle$loadin","_markdownStyle$loadin2","linkRange","find","r","type","imageHref","substring","start","length","inlineImage","marginTop","imageMarginBottom","marginBottom","alreadyLoadedPreview","querySelector","loadedImageContainer","spinner","display","loadingIndicatorContainer","loadingIndicator","undefined","currentSpinner","remove","firstChild","minHeight","minWidth","maxHeight","maxWidth","borderRadius","imgStyle","alignItems","justifyContent","clientHeight"],"sourceRoot":"../../../../src","sources":["web/inputElements/inlineImage.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inlineImage.d.ts","sourceRoot":"","sources":["../../../../../src/web/inputElements/inlineImage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"inlineImage.d.ts","sourceRoot":"","sources":["../../../../../src/web/inputElements/inlineImage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAoDjD,mEAAmE;AACnE,iBAAS,qBAAqB,CAAC,YAAY,EAAE,wBAAwB,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,oBAAoB,YA0EtK;AAGD,OAAO,EAAC,qBAAqB,EAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expensify/react-native-live-markdown",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.155",
|
|
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",
|
|
@@ -13,14 +13,15 @@ const inlineImageDefaultStyles = {
|
|
|
13
13
|
left: 0,
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
const timeoutMap = new Map<string, NodeJS.Timeout>();
|
|
17
17
|
|
|
18
|
-
function createImageElement(url: string, callback: (img: HTMLElement, err?: string | Event) => void) {
|
|
19
|
-
if (
|
|
20
|
-
clearTimeout(
|
|
18
|
+
function createImageElement(targetNode: TreeNode, url: string, callback: (img: HTMLElement, err?: string | Event) => void) {
|
|
19
|
+
if (timeoutMap.has(targetNode.orderIndex)) {
|
|
20
|
+
clearTimeout(timeoutMap.get(targetNode.orderIndex));
|
|
21
|
+
timeoutMap.delete(targetNode.orderIndex);
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
timeout = setTimeout(() => {
|
|
24
|
+
const timeout = setTimeout(() => {
|
|
24
25
|
const imageContainer = document.createElement('span');
|
|
25
26
|
imageContainer.contentEditable = 'false';
|
|
26
27
|
imageContainer.setAttribute('data-type', 'inline-container');
|
|
@@ -32,7 +33,9 @@ function createImageElement(url: string, callback: (img: HTMLElement, err?: stri
|
|
|
32
33
|
img.onload = () => callback(imageContainer);
|
|
33
34
|
img.onerror = (err) => callback(imageContainer, err);
|
|
34
35
|
img.src = url;
|
|
36
|
+
timeoutMap.delete(targetNode.orderIndex);
|
|
35
37
|
}, INLINE_IMAGE_PREVIEW_DEBOUNCE_TIME_MS);
|
|
38
|
+
timeoutMap.set(targetNode.orderIndex, timeout);
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
/** Adds already loaded image element from current input content to the tree node */
|
|
@@ -83,7 +86,7 @@ function addInlineImagePreview(currentInput: MarkdownTextInputElement, targetNod
|
|
|
83
86
|
paddingBottom: markdownStyle.loadingIndicatorContainer?.height || markdownStyle.loadingIndicator?.height || (!!markdownStyle.loadingIndicator && '30px') || undefined,
|
|
84
87
|
});
|
|
85
88
|
|
|
86
|
-
createImageElement(imageHref, (imageContainer, err) => {
|
|
89
|
+
createImageElement(targetNode, imageHref, (imageContainer, err) => {
|
|
87
90
|
// Verify if the current spinner is for the loaded image. If not, it means that the response came after the user changed the image url
|
|
88
91
|
const currentSpinner = currentInput.querySelector('[data-type="spinner"]');
|
|
89
92
|
// Remove the spinner
|