react-native-marked 5.0.6 → 5.0.8

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.
@@ -34,10 +34,17 @@ const MDImage = _ref => {
34
34
 
35
35
  const fetchOriginalSizeFromRemoteImage = () => {
36
36
  _reactNative.Image.getSize(uri, (width, height) => {
37
- setImageState({
38
- isLoading: false,
39
- aspectRatio: width / height
40
- });
37
+ if (width > 0 && height > 0) {
38
+ setImageState({
39
+ isLoading: false,
40
+ aspectRatio: width / height
41
+ });
42
+ } else {
43
+ setImageState({
44
+ isLoading: false,
45
+ aspectRatio: undefined
46
+ });
47
+ }
41
48
  }, () => {
42
49
  setImageState(current => {
43
50
  return { ...current,
@@ -1 +1 @@
1
- {"version":3,"names":["MDImage","uri","label","alt","style","imageState","setImageState","useState","isLoading","aspectRatio","undefined","useEffect","fetchOriginalSizeFromRemoteImage","Image","getSize","width","height","current","memo"],"sourceRoot":"../../../src","sources":["components/MDImage.tsx"],"mappings":";;;;;;;AAAA;;AAMA;;;;;;AAmBA,MAAMA,OAAwC,GAAG,QAK3C;EAAA,IAL4C;IACjDC,GADiD;IAEjDC,KAFiD;IAGjDC,GAAG,GAAG,OAH2C;IAIjDC;EAJiD,CAK5C;EACL,MAAM,CAACC,UAAD,EAAaC,aAAb,IAA8B,IAAAC,eAAA,EAAuB;IAC1DC,SAAS,EAAE,IAD+C;IAE1DC,WAAW,EAAEC;EAF6C,CAAvB,CAApC;EAKA,IAAAC,gBAAA,EAAU,MAAM;IACfC,gCAAgC;EAChC,CAFD,EAEG,EAFH;EAIA;AACD;AACA;AACA;;EACC,MAAMA,gCAAgC,GAAG,MAAM;IAC9CC,kBAAA,CAAMC,OAAN,CACCb,GADD,EAEC,CAACc,KAAD,EAAgBC,MAAhB,KAAmC;MAClCV,aAAa,CAAC;QAAEE,SAAS,EAAE,KAAb;QAAoBC,WAAW,EAAEM,KAAK,GAAGC;MAAzC,CAAD,CAAb;IACA,CAJF,EAKC,MAAM;MACLV,aAAa,CAAEW,OAAD,IAAa;QAC1B,OAAO,EACN,GAAGA,OADG;UAENT,SAAS,EAAE;QAFL,CAAP;MAIA,CALY,CAAb;IAMA,CAZF;EAcA,CAfD;;EAiBA,oBACC,6BAAC,4BAAD;IACC,MAAM,EAAE;MAAEP,GAAG,EAAEA;IAAP,CADT;IAEC,KAAK,EAAE;MAAEc,KAAK,EAAE,MAAT;MAAiBN,WAAW,EAAEJ,UAAU,CAACI;IAAzC,CAFR;IAGC,cAAYP,KAHb;IAIC,iBAAiB,EAAC,OAJnB;IAKC,kBAAkB,EAAEC,GALrB;IAMC,iBAAiB,EAAEO,SANpB;IAOC,UAAU,EAAEN,KAPb;IAQC,MAAM,EAAC;EARR,GAUEC,UAAU,CAACG,SAAX,gBACA,6BAAC,8BAAD;IACC,MAAM,EAAC,iDADR;IAEC,IAAI,EAAE;EAFP,EADA,GAKG,IAfL,CADD;AAmBA,CAvDD;;4BAyDe,IAAAU,WAAA,EAAKlB,OAAL,C"}
1
+ {"version":3,"names":["MDImage","uri","label","alt","style","imageState","setImageState","useState","isLoading","aspectRatio","undefined","useEffect","fetchOriginalSizeFromRemoteImage","Image","getSize","width","height","current","memo"],"sourceRoot":"../../../src","sources":["components/MDImage.tsx"],"mappings":";;;;;;;AAAA;;AAMA;;;;;;AAmBA,MAAMA,OAAwC,GAAG,QAK3C;EAAA,IAL4C;IACjDC,GADiD;IAEjDC,KAFiD;IAGjDC,GAAG,GAAG,OAH2C;IAIjDC;EAJiD,CAK5C;EACL,MAAM,CAACC,UAAD,EAAaC,aAAb,IAA8B,IAAAC,eAAA,EAAuB;IAC1DC,SAAS,EAAE,IAD+C;IAE1DC,WAAW,EAAEC;EAF6C,CAAvB,CAApC;EAKA,IAAAC,gBAAA,EAAU,MAAM;IACfC,gCAAgC;EAChC,CAFD,EAEG,EAFH;EAIA;AACD;AACA;AACA;;EACC,MAAMA,gCAAgC,GAAG,MAAM;IAC9CC,kBAAA,CAAMC,OAAN,CACCb,GADD,EAEC,CAACc,KAAD,EAAgBC,MAAhB,KAAmC;MAClC,IAAID,KAAK,GAAG,CAAR,IAAaC,MAAM,GAAG,CAA1B,EAA6B;QAC5BV,aAAa,CAAC;UAAEE,SAAS,EAAE,KAAb;UAAoBC,WAAW,EAAEM,KAAK,GAAGC;QAAzC,CAAD,CAAb;MACA,CAFD,MAEO;QACNV,aAAa,CAAC;UAAEE,SAAS,EAAE,KAAb;UAAoBC,WAAW,EAAEC;QAAjC,CAAD,CAAb;MACA;IACD,CARF,EASC,MAAM;MACLJ,aAAa,CAAEW,OAAD,IAAa;QAC1B,OAAO,EACN,GAAGA,OADG;UAENT,SAAS,EAAE;QAFL,CAAP;MAIA,CALY,CAAb;IAMA,CAhBF;EAkBA,CAnBD;;EAqBA,oBACC,6BAAC,4BAAD;IACC,MAAM,EAAE;MAAEP,GAAG,EAAEA;IAAP,CADT;IAEC,KAAK,EAAE;MACNc,KAAK,EAAE,MADD;MAENN,WAAW,EAAEJ,UAAU,CAACI;IAFlB,CAFR;IAMC,cAAYP,KANb;IAOC,iBAAiB,EAAC,OAPnB;IAQC,kBAAkB,EAAEC,GARrB;IASC,iBAAiB,EAAEO,SATpB;IAUC,UAAU,EAAEN,KAVb;IAWC,MAAM,EAAC;EAXR,GAaEC,UAAU,CAACG,SAAX,gBACA,6BAAC,8BAAD;IACC,MAAM,EAAC,iDADR;IAEC,IAAI,EAAE;EAFP,EADA,GAKG,IAlBL,CADD;AAsBA,CA9DD;;4BAgEe,IAAAU,WAAA,EAAKlB,OAAL,C"}
@@ -10,10 +10,13 @@ const getValidURL = (prefix, path) => {
10
10
 
11
11
  if (_prefix.endsWith("/")) {
12
12
  _prefix = _prefix.slice(0, -1);
13
- } // path is valid url
13
+ } // consider path a valid url if it starts with a scheme name followed by a semicolon
14
+ // i.e. https://example.com, mailto:person@example.com, tel:1234567, slack://open
14
15
 
15
16
 
16
- if (path.startsWith("https") || path.startsWith("http")) {
17
+ const urlPattern = /^[a-z]+:/i;
18
+
19
+ if (urlPattern.test(path)) {
17
20
  return path;
18
21
  } // absolute path
19
22
 
@@ -1 +1 @@
1
- {"version":3,"names":["getValidURL","prefix","path","_prefix","endsWith","slice","startsWith"],"sourceRoot":"../../../src","sources":["utils/url.ts"],"mappings":";;;;;;;AAAO,MAAMA,WAAW,GAAG,CAACC,MAAD,EAAiBC,IAAjB,KAAkC;EAC5D,IAAIC,OAAO,GAAGF,MAAd,CAD4D,CAE5D;;EACA,IAAIE,OAAO,CAACC,QAAR,CAAiB,GAAjB,CAAJ,EAA2B;IAC1BD,OAAO,GAAGA,OAAO,CAACE,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;EACA,CAL2D,CAO5D;;;EACA,IAAIH,IAAI,CAACI,UAAL,CAAgB,OAAhB,KAA4BJ,IAAI,CAACI,UAAL,CAAgB,MAAhB,CAAhC,EAAyD;IACxD,OAAOJ,IAAP;EACA,CAV2D,CAY5D;;;EACA,IAAIA,IAAI,CAACI,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;IACzB,OAAQ,GAAEH,OAAQ,GAAED,IAAK,EAAzB;EACA,CAf2D,CAiB5D;;;EACA,OAAQ,GAAEC,OAAQ,IAAGD,IAAK,EAA1B;AACA,CAnBM"}
1
+ {"version":3,"names":["getValidURL","prefix","path","_prefix","endsWith","slice","urlPattern","test","startsWith"],"sourceRoot":"../../../src","sources":["utils/url.ts"],"mappings":";;;;;;;AAAO,MAAMA,WAAW,GAAG,CAACC,MAAD,EAAiBC,IAAjB,KAAkC;EAC5D,IAAIC,OAAO,GAAGF,MAAd,CAD4D,CAE5D;;EACA,IAAIE,OAAO,CAACC,QAAR,CAAiB,GAAjB,CAAJ,EAA2B;IAC1BD,OAAO,GAAGA,OAAO,CAACE,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;EACA,CAL2D,CAO5D;EACA;;;EACA,MAAMC,UAAU,GAAG,WAAnB;;EACA,IAAIA,UAAU,CAACC,IAAX,CAAgBL,IAAhB,CAAJ,EAA2B;IAC1B,OAAOA,IAAP;EACA,CAZ2D,CAc5D;;;EACA,IAAIA,IAAI,CAACM,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;IACzB,OAAQ,GAAEL,OAAQ,GAAED,IAAK,EAAzB;EACA,CAjB2D,CAmB5D;;;EACA,OAAQ,GAAEC,OAAQ,IAAGD,IAAK,EAA1B;AACA,CArBM"}
@@ -22,10 +22,17 @@ const MDImage = _ref => {
22
22
 
23
23
  const fetchOriginalSizeFromRemoteImage = () => {
24
24
  Image.getSize(uri, (width, height) => {
25
- setImageState({
26
- isLoading: false,
27
- aspectRatio: width / height
28
- });
25
+ if (width > 0 && height > 0) {
26
+ setImageState({
27
+ isLoading: false,
28
+ aspectRatio: width / height
29
+ });
30
+ } else {
31
+ setImageState({
32
+ isLoading: false,
33
+ aspectRatio: undefined
34
+ });
35
+ }
29
36
  }, () => {
30
37
  setImageState(current => {
31
38
  return { ...current,
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useEffect","useState","ActivityIndicator","ImageBackground","Image","MDImage","uri","label","alt","style","imageState","setImageState","isLoading","aspectRatio","undefined","fetchOriginalSizeFromRemoteImage","getSize","width","height","current"],"sourceRoot":"../../../src","sources":["components/MDImage.tsx"],"mappings":"AAAA,OAAOA,KAAP,IAECC,IAFD,EAGCC,SAHD,EAICC,QAJD,QAKO,OALP;AAMA,SACCC,iBADD,EAECC,eAFD,EAGCC,KAHD,QAKO,cALP;;AAmBA,MAAMC,OAAwC,GAAG,QAK3C;EAAA,IAL4C;IACjDC,GADiD;IAEjDC,KAFiD;IAGjDC,GAAG,GAAG,OAH2C;IAIjDC;EAJiD,CAK5C;EACL,MAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BV,QAAQ,CAAe;IAC1DW,SAAS,EAAE,IAD+C;IAE1DC,WAAW,EAAEC;EAF6C,CAAf,CAA5C;EAKAd,SAAS,CAAC,MAAM;IACfe,gCAAgC;EAChC,CAFQ,EAEN,EAFM,CAAT;EAIA;AACD;AACA;AACA;;EACC,MAAMA,gCAAgC,GAAG,MAAM;IAC9CX,KAAK,CAACY,OAAN,CACCV,GADD,EAEC,CAACW,KAAD,EAAgBC,MAAhB,KAAmC;MAClCP,aAAa,CAAC;QAAEC,SAAS,EAAE,KAAb;QAAoBC,WAAW,EAAEI,KAAK,GAAGC;MAAzC,CAAD,CAAb;IACA,CAJF,EAKC,MAAM;MACLP,aAAa,CAAEQ,OAAD,IAAa;QAC1B,OAAO,EACN,GAAGA,OADG;UAENP,SAAS,EAAE;QAFL,CAAP;MAIA,CALY,CAAb;IAMA,CAZF;EAcA,CAfD;;EAiBA,oBACC,oBAAC,eAAD;IACC,MAAM,EAAE;MAAEN,GAAG,EAAEA;IAAP,CADT;IAEC,KAAK,EAAE;MAAEW,KAAK,EAAE,MAAT;MAAiBJ,WAAW,EAAEH,UAAU,CAACG;IAAzC,CAFR;IAGC,cAAYN,KAHb;IAIC,iBAAiB,EAAC,OAJnB;IAKC,kBAAkB,EAAEC,GALrB;IAMC,iBAAiB,EAAEM,SANpB;IAOC,UAAU,EAAEL,KAPb;IAQC,MAAM,EAAC;EARR,GAUEC,UAAU,CAACE,SAAX,gBACA,oBAAC,iBAAD;IACC,MAAM,EAAC,iDADR;IAEC,IAAI,EAAE;EAFP,EADA,GAKG,IAfL,CADD;AAmBA,CAvDD;;AAyDA,4BAAeb,IAAI,CAACM,OAAD,CAAnB"}
1
+ {"version":3,"names":["React","memo","useEffect","useState","ActivityIndicator","ImageBackground","Image","MDImage","uri","label","alt","style","imageState","setImageState","isLoading","aspectRatio","undefined","fetchOriginalSizeFromRemoteImage","getSize","width","height","current"],"sourceRoot":"../../../src","sources":["components/MDImage.tsx"],"mappings":"AAAA,OAAOA,KAAP,IAECC,IAFD,EAGCC,SAHD,EAICC,QAJD,QAKO,OALP;AAMA,SACCC,iBADD,EAECC,eAFD,EAGCC,KAHD,QAKO,cALP;;AAmBA,MAAMC,OAAwC,GAAG,QAK3C;EAAA,IAL4C;IACjDC,GADiD;IAEjDC,KAFiD;IAGjDC,GAAG,GAAG,OAH2C;IAIjDC;EAJiD,CAK5C;EACL,MAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BV,QAAQ,CAAe;IAC1DW,SAAS,EAAE,IAD+C;IAE1DC,WAAW,EAAEC;EAF6C,CAAf,CAA5C;EAKAd,SAAS,CAAC,MAAM;IACfe,gCAAgC;EAChC,CAFQ,EAEN,EAFM,CAAT;EAIA;AACD;AACA;AACA;;EACC,MAAMA,gCAAgC,GAAG,MAAM;IAC9CX,KAAK,CAACY,OAAN,CACCV,GADD,EAEC,CAACW,KAAD,EAAgBC,MAAhB,KAAmC;MAClC,IAAID,KAAK,GAAG,CAAR,IAAaC,MAAM,GAAG,CAA1B,EAA6B;QAC5BP,aAAa,CAAC;UAAEC,SAAS,EAAE,KAAb;UAAoBC,WAAW,EAAEI,KAAK,GAAGC;QAAzC,CAAD,CAAb;MACA,CAFD,MAEO;QACNP,aAAa,CAAC;UAAEC,SAAS,EAAE,KAAb;UAAoBC,WAAW,EAAEC;QAAjC,CAAD,CAAb;MACA;IACD,CARF,EASC,MAAM;MACLH,aAAa,CAAEQ,OAAD,IAAa;QAC1B,OAAO,EACN,GAAGA,OADG;UAENP,SAAS,EAAE;QAFL,CAAP;MAIA,CALY,CAAb;IAMA,CAhBF;EAkBA,CAnBD;;EAqBA,oBACC,oBAAC,eAAD;IACC,MAAM,EAAE;MAAEN,GAAG,EAAEA;IAAP,CADT;IAEC,KAAK,EAAE;MACNW,KAAK,EAAE,MADD;MAENJ,WAAW,EAAEH,UAAU,CAACG;IAFlB,CAFR;IAMC,cAAYN,KANb;IAOC,iBAAiB,EAAC,OAPnB;IAQC,kBAAkB,EAAEC,GARrB;IASC,iBAAiB,EAAEM,SATpB;IAUC,UAAU,EAAEL,KAVb;IAWC,MAAM,EAAC;EAXR,GAaEC,UAAU,CAACE,SAAX,gBACA,oBAAC,iBAAD;IACC,MAAM,EAAC,iDADR;IAEC,IAAI,EAAE;EAFP,EADA,GAKG,IAlBL,CADD;AAsBA,CA9DD;;AAgEA,4BAAeb,IAAI,CAACM,OAAD,CAAnB"}
@@ -3,10 +3,13 @@ export const getValidURL = (prefix, path) => {
3
3
 
4
4
  if (_prefix.endsWith("/")) {
5
5
  _prefix = _prefix.slice(0, -1);
6
- } // path is valid url
6
+ } // consider path a valid url if it starts with a scheme name followed by a semicolon
7
+ // i.e. https://example.com, mailto:person@example.com, tel:1234567, slack://open
7
8
 
8
9
 
9
- if (path.startsWith("https") || path.startsWith("http")) {
10
+ const urlPattern = /^[a-z]+:/i;
11
+
12
+ if (urlPattern.test(path)) {
10
13
  return path;
11
14
  } // absolute path
12
15
 
@@ -1 +1 @@
1
- {"version":3,"names":["getValidURL","prefix","path","_prefix","endsWith","slice","startsWith"],"sourceRoot":"../../../src","sources":["utils/url.ts"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,CAACC,MAAD,EAAiBC,IAAjB,KAAkC;EAC5D,IAAIC,OAAO,GAAGF,MAAd,CAD4D,CAE5D;;EACA,IAAIE,OAAO,CAACC,QAAR,CAAiB,GAAjB,CAAJ,EAA2B;IAC1BD,OAAO,GAAGA,OAAO,CAACE,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;EACA,CAL2D,CAO5D;;;EACA,IAAIH,IAAI,CAACI,UAAL,CAAgB,OAAhB,KAA4BJ,IAAI,CAACI,UAAL,CAAgB,MAAhB,CAAhC,EAAyD;IACxD,OAAOJ,IAAP;EACA,CAV2D,CAY5D;;;EACA,IAAIA,IAAI,CAACI,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;IACzB,OAAQ,GAAEH,OAAQ,GAAED,IAAK,EAAzB;EACA,CAf2D,CAiB5D;;;EACA,OAAQ,GAAEC,OAAQ,IAAGD,IAAK,EAA1B;AACA,CAnBM"}
1
+ {"version":3,"names":["getValidURL","prefix","path","_prefix","endsWith","slice","urlPattern","test","startsWith"],"sourceRoot":"../../../src","sources":["utils/url.ts"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,CAACC,MAAD,EAAiBC,IAAjB,KAAkC;EAC5D,IAAIC,OAAO,GAAGF,MAAd,CAD4D,CAE5D;;EACA,IAAIE,OAAO,CAACC,QAAR,CAAiB,GAAjB,CAAJ,EAA2B;IAC1BD,OAAO,GAAGA,OAAO,CAACE,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;EACA,CAL2D,CAO5D;EACA;;;EACA,MAAMC,UAAU,GAAG,WAAnB;;EACA,IAAIA,UAAU,CAACC,IAAX,CAAgBL,IAAhB,CAAJ,EAA2B;IAC1B,OAAOA,IAAP;EACA,CAZ2D,CAc5D;;;EACA,IAAIA,IAAI,CAACM,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;IACzB,OAAQ,GAAEL,OAAQ,GAAED,IAAK,EAAzB;EACA,CAjB2D,CAmB5D;;;EACA,OAAQ,GAAEC,OAAQ,IAAGD,IAAK,EAA1B;AACA,CArBM"}
@@ -1 +1 @@
1
- {"version":3,"file":"MDImage.d.ts","sourceRoot":"","sources":["../../../src/components/MDImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AACf,OAAO,EAIN,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AAEtB,KAAK,YAAY,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;;AAgEF,wBAA6B"}
1
+ {"version":3,"file":"MDImage.d.ts","sourceRoot":"","sources":["../../../src/components/MDImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AACf,OAAO,EAIN,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AAEtB,KAAK,YAAY,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;;AAuEF,wBAA6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,WAAY,MAAM,QAAQ,MAAM,WAmBvD,CAAC"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,WAAY,MAAM,QAAQ,MAAM,WAqBvD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-marked",
3
- "version": "5.0.6",
3
+ "version": "5.0.8",
4
4
  "description": "Markdown renderer for React Native powered by marked.js",
5
5
  "main": "dist/commonjs/index",
6
6
  "module": "dist/module/index",
@@ -49,33 +49,33 @@
49
49
  "registry": "https://registry.npmjs.org/"
50
50
  },
51
51
  "devDependencies": {
52
- "@babel/core": "7.22.6",
53
- "@babel/preset-env": "7.22.6",
54
- "@commitlint/config-conventional": "17.6.6",
55
- "@evilmartians/lefthook": "1.4.3",
56
- "@release-it/conventional-changelog": "6.0.0",
52
+ "@babel/core": "7.22.9",
53
+ "@babel/preset-env": "7.22.9",
54
+ "@commitlint/config-conventional": "17.6.7",
55
+ "@evilmartians/lefthook": "1.4.7",
56
+ "@release-it/conventional-changelog": "7.0.0",
57
57
  "@testing-library/jest-native": "5.4.2",
58
- "@testing-library/react-native": "12.1.2",
59
- "@types/jest": "29.5.2",
58
+ "@testing-library/react-native": "12.1.3",
59
+ "@types/jest": "29.5.3",
60
60
  "@types/marked": "5.0.0",
61
- "@types/node": "18.16.19",
62
- "@types/react": "18.2.14",
61
+ "@types/node": "18.17.1",
62
+ "@types/react": "18.2.16",
63
63
  "@types/react-native": "0.72.2",
64
64
  "@types/react-native-table-component": "1.2.4",
65
65
  "@types/svg-parser": "^2.0.3",
66
- "commitlint": "17.6.6",
67
- "danger": "11.2.6",
68
- "jest": "29.6.0",
69
- "jest-environment-jsdom": "29.6.0",
70
- "metro-react-native-babel-preset": "0.76.7",
66
+ "commitlint": "17.6.7",
67
+ "danger": "11.2.7",
68
+ "jest": "29.6.1",
69
+ "jest-environment-jsdom": "29.6.1",
70
+ "metro-react-native-babel-preset": "0.77.0",
71
71
  "pod-install": "0.1.38",
72
72
  "postinstall-postinstall": "2.1.0",
73
73
  "react": "18.2.0",
74
- "react-native": "0.72.1",
75
- "react-native-builder-bob": "0.21.2",
74
+ "react-native": "0.72.3",
75
+ "react-native-builder-bob": "0.21.3",
76
76
  "react-test-renderer": "18.2.0",
77
77
  "reassure": "0.9.1",
78
- "release-it": "16.0.0",
78
+ "release-it": "16.1.3",
79
79
  "rome": "12.1.3",
80
80
  "typescript": "5.1.6"
81
81
  },
@@ -161,7 +161,7 @@
161
161
  "@jsamr/counter-style": "2.0.2",
162
162
  "@jsamr/react-native-li": "2.3.1",
163
163
  "marked": "5.0.5",
164
- "react-native-svg": "13.9.0",
164
+ "react-native-svg": "13.10.0",
165
165
  "react-native-table-component": "1.2.2",
166
166
  "svg-parser": "2.0.4"
167
167
  },
@@ -169,7 +169,7 @@
169
169
  "node": ">=18"
170
170
  },
171
171
  "resolutions": {
172
- "@types/react": "18.2.14",
172
+ "@types/react": "18.2.16",
173
173
  "@types/react-native": "0.72.2"
174
174
  }
175
175
  }
@@ -46,7 +46,11 @@ const MDImage: FunctionComponent<MDImageProps> = ({
46
46
  Image.getSize(
47
47
  uri,
48
48
  (width: number, height: number) => {
49
- setImageState({ isLoading: false, aspectRatio: width / height });
49
+ if (width > 0 && height > 0) {
50
+ setImageState({ isLoading: false, aspectRatio: width / height });
51
+ } else {
52
+ setImageState({ isLoading: false, aspectRatio: undefined });
53
+ }
50
54
  },
51
55
  () => {
52
56
  setImageState((current) => {
@@ -62,7 +66,10 @@ const MDImage: FunctionComponent<MDImageProps> = ({
62
66
  return (
63
67
  <ImageBackground
64
68
  source={{ uri: uri }}
65
- style={{ width: "100%", aspectRatio: imageState.aspectRatio }}
69
+ style={{
70
+ width: "100%",
71
+ aspectRatio: imageState.aspectRatio,
72
+ }}
66
73
  aria-label={label}
67
74
  accessibilityRole="image"
68
75
  accessibilityLabel={alt}
package/src/utils/url.ts CHANGED
@@ -5,8 +5,10 @@ export const getValidURL = (prefix: string, path: string) => {
5
5
  _prefix = _prefix.slice(0, -1);
6
6
  }
7
7
 
8
- // path is valid url
9
- if (path.startsWith("https") || path.startsWith("http")) {
8
+ // consider path a valid url if it starts with a scheme name followed by a semicolon
9
+ // i.e. https://example.com, mailto:person@example.com, tel:1234567, slack://open
10
+ const urlPattern = /^[a-z]+:/i;
11
+ if (urlPattern.test(path)) {
10
12
  return path;
11
13
  }
12
14