react-native-marked 4.0.4 → 4.1.1

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/README.md CHANGED
@@ -12,7 +12,7 @@ Markdown renderer for React Native powered by
12
12
  ## Installation
13
13
 
14
14
  ```sh
15
- yarn add react-native-marked
15
+ yarn add react-native-marked react-native-svg
16
16
  ```
17
17
 
18
18
  ## Usage
@@ -249,8 +249,10 @@ MIT
249
249
  Made with
250
250
  [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
251
251
 
252
- ## Built with
252
+ ## Built using
253
253
 
254
254
  - [Marked](https://marked.js.org/)
255
255
  - [@jsamr/react-native-li](https://github.com/jsamr/react-native-li)
256
256
  - [react-native-table-component](https://github.com/Gil2015/react-native-table-component)
257
+ - [react-native-svg](https://github.com/software-mansion/react-native-svg)
258
+
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _reactNativeSvg = require("react-native-svg");
13
+
14
+ var _svg = require("./../utils/svg");
15
+
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
20
+ const MDSvg = _ref => {
21
+ let {
22
+ uri,
23
+ alt = "image"
24
+ } = _ref;
25
+ const isFirstLoad = (0, _react.useRef)(false);
26
+ const [layoutWidth, setLayoutWidth] = (0, _react.useState)(0);
27
+ const [svgState, setSvgState] = (0, _react.useState)({
28
+ viewBox: "",
29
+ width: 0,
30
+ height: 0,
31
+ svg: "",
32
+ isLoading: true,
33
+ error: false,
34
+ aspectRatio: undefined
35
+ });
36
+ (0, _react.useEffect)(() => {
37
+ const fetchSvg = async () => {
38
+ try {
39
+ const res = await fetch(uri);
40
+ const text = await res.text();
41
+
42
+ if (res.status !== 200) {
43
+ throw new Error("Status is not 200");
44
+ }
45
+
46
+ const {
47
+ viewBox,
48
+ width,
49
+ height
50
+ } = (0, _svg.getSvgDimensions)(text);
51
+ setSvgState({
52
+ width,
53
+ height,
54
+ viewBox,
55
+ svg: text,
56
+ isLoading: false,
57
+ error: false,
58
+ aspectRatio: width / height
59
+ });
60
+ } catch (e) {
61
+ setSvgState(state => ({ ...state,
62
+ error: true,
63
+ isLoading: false
64
+ }));
65
+ }
66
+ };
67
+
68
+ fetchSvg();
69
+ }, []);
70
+
71
+ const onLayout = event => {
72
+ if (!isFirstLoad.current) {
73
+ setLayoutWidth(event.nativeEvent.layout.width ?? 0);
74
+ isFirstLoad.current = true;
75
+ }
76
+ };
77
+
78
+ const getWidth = () => {
79
+ if (layoutWidth && svgState.width) {
80
+ return Math.min(layoutWidth, svgState.width);
81
+ }
82
+
83
+ return "100%";
84
+ };
85
+
86
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
87
+ style: {
88
+ width: getWidth(),
89
+ aspectRatio: svgState.aspectRatio
90
+ },
91
+ onLayout: onLayout
92
+ }, svgState.isLoading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
93
+ size: "small"
94
+ }) : /*#__PURE__*/_react.default.createElement(_reactNativeSvg.SvgFromXml, {
95
+ xml: svgState.svg,
96
+ width: "100%",
97
+ height: "100%",
98
+ viewBox: svgState.viewBox,
99
+ "aria-label": alt,
100
+ accessibilityRole: "image",
101
+ accessibilityLabel: alt,
102
+ accessibilityHint: undefined,
103
+ testID: "react-native-marked-md-svg"
104
+ }));
105
+ };
106
+
107
+ var _default = /*#__PURE__*/(0, _react.memo)(MDSvg);
108
+
109
+ exports.default = _default;
110
+ //# sourceMappingURL=MDSvg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MDSvg","uri","alt","isFirstLoad","useRef","layoutWidth","setLayoutWidth","useState","svgState","setSvgState","viewBox","width","height","svg","isLoading","error","aspectRatio","undefined","useEffect","fetchSvg","res","fetch","text","status","Error","getSvgDimensions","e","state","onLayout","event","current","nativeEvent","layout","getWidth","Math","min","memo"],"sourceRoot":"../../../src","sources":["components/MDSvg.tsx"],"mappings":"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"}
@@ -25,6 +25,8 @@ var _handlers = require("../utils/handlers");
25
25
 
26
26
  var _table = require("../utils/table");
27
27
 
28
+ var _MDSvg = _interopRequireDefault(require("./../components/MDSvg"));
29
+
28
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
31
 
30
32
  class Renderer {
@@ -97,8 +99,17 @@ class Renderer {
97
99
  }
98
100
 
99
101
  image(uri, alt, style) {
102
+ const key = this.getKey();
103
+
104
+ if (uri.endsWith(".svg")) {
105
+ return /*#__PURE__*/_react.default.createElement(_MDSvg.default, {
106
+ uri: uri,
107
+ key: key
108
+ });
109
+ }
110
+
100
111
  return /*#__PURE__*/_react.default.createElement(_MDImage.default, {
101
- key: this.getKey(),
112
+ key: key,
102
113
  uri: uri,
103
114
  alt: alt,
104
115
  style: style
@@ -1 +1 @@
1
- {"version":3,"names":["Renderer","slugPrefix","constructor","slugger","Slugger","width","Dimensions","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","Decimal","Disc","map","node","escape","link","href","onLinkPress","image","uri","alt","style","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","getTableWidthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["Renderer","slugPrefix","constructor","slugger","Slugger","width","Dimensions","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","Decimal","Disc","map","node","escape","link","href","onLinkPress","image","uri","alt","style","key","endsWith","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","getTableWidthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getSvgDimensions = void 0;
7
+
8
+ var _svgParser = require("svg-parser");
9
+
10
+ const getSvgDimensions = svg => {
11
+ var _rootChild$properties, _rootChild$properties2, _rootChild$properties3;
12
+
13
+ const parsed = (0, _svgParser.parse)(svg);
14
+ const rootChild = parsed.children[0];
15
+ return {
16
+ width: parseInt(String(((_rootChild$properties = rootChild.properties) === null || _rootChild$properties === void 0 ? void 0 : _rootChild$properties.width) ?? "0")),
17
+ height: parseInt(String(((_rootChild$properties2 = rootChild.properties) === null || _rootChild$properties2 === void 0 ? void 0 : _rootChild$properties2.height) ?? "0")),
18
+ viewBox: String(((_rootChild$properties3 = rootChild.properties) === null || _rootChild$properties3 === void 0 ? void 0 : _rootChild$properties3.viewBox) ?? "")
19
+ };
20
+ };
21
+
22
+ exports.getSvgDimensions = getSvgDimensions;
23
+ //# sourceMappingURL=svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getSvgDimensions","svg","parsed","parse","rootChild","children","width","parseInt","String","properties","height","viewBox"],"sourceRoot":"../../../src","sources":["utils/svg.ts"],"mappings":";;;;;;;AACA;;AAEO,MAAMA,gBAAgB,GAAIC,GAAD,IAAiB;EAAA;;EAChD,MAAMC,MAAM,GAAG,IAAAC,gBAAA,EAAMF,GAAN,CAAf;EAEA,MAAMG,SAAS,GAAGF,MAAM,CAACG,QAAP,CAAgB,CAAhB,CAAlB;EAEA,OAAO;IACNC,KAAK,EAAEC,QAAQ,CAACC,MAAM,CAAC,0BAAAJ,SAAS,CAACK,UAAV,gFAAsBH,KAAtB,KAA+B,GAAhC,CAAP,CADT;IAENI,MAAM,EAAEH,QAAQ,CAACC,MAAM,CAAC,2BAAAJ,SAAS,CAACK,UAAV,kFAAsBC,MAAtB,KAAgC,GAAjC,CAAP,CAFV;IAGNC,OAAO,EAAEH,MAAM,CAAC,2BAAAJ,SAAS,CAACK,UAAV,kFAAsBE,OAAtB,KAAiC,EAAlC;EAHT,CAAP;AAKA,CAVM"}
@@ -0,0 +1,94 @@
1
+ import React, { memo, useEffect, useState, useRef } from "react";
2
+ import { ActivityIndicator, View } from "react-native";
3
+ import { SvgFromXml } from "react-native-svg";
4
+ import { getSvgDimensions } from "./../utils/svg";
5
+
6
+ const MDSvg = _ref => {
7
+ let {
8
+ uri,
9
+ alt = "image"
10
+ } = _ref;
11
+ const isFirstLoad = useRef(false);
12
+ const [layoutWidth, setLayoutWidth] = useState(0);
13
+ const [svgState, setSvgState] = useState({
14
+ viewBox: "",
15
+ width: 0,
16
+ height: 0,
17
+ svg: "",
18
+ isLoading: true,
19
+ error: false,
20
+ aspectRatio: undefined
21
+ });
22
+ useEffect(() => {
23
+ const fetchSvg = async () => {
24
+ try {
25
+ const res = await fetch(uri);
26
+ const text = await res.text();
27
+
28
+ if (res.status !== 200) {
29
+ throw new Error("Status is not 200");
30
+ }
31
+
32
+ const {
33
+ viewBox,
34
+ width,
35
+ height
36
+ } = getSvgDimensions(text);
37
+ setSvgState({
38
+ width,
39
+ height,
40
+ viewBox,
41
+ svg: text,
42
+ isLoading: false,
43
+ error: false,
44
+ aspectRatio: width / height
45
+ });
46
+ } catch (e) {
47
+ setSvgState(state => ({ ...state,
48
+ error: true,
49
+ isLoading: false
50
+ }));
51
+ }
52
+ };
53
+
54
+ fetchSvg();
55
+ }, []);
56
+
57
+ const onLayout = event => {
58
+ if (!isFirstLoad.current) {
59
+ setLayoutWidth(event.nativeEvent.layout.width ?? 0);
60
+ isFirstLoad.current = true;
61
+ }
62
+ };
63
+
64
+ const getWidth = () => {
65
+ if (layoutWidth && svgState.width) {
66
+ return Math.min(layoutWidth, svgState.width);
67
+ }
68
+
69
+ return "100%";
70
+ };
71
+
72
+ return /*#__PURE__*/React.createElement(View, {
73
+ style: {
74
+ width: getWidth(),
75
+ aspectRatio: svgState.aspectRatio
76
+ },
77
+ onLayout: onLayout
78
+ }, svgState.isLoading ? /*#__PURE__*/React.createElement(ActivityIndicator, {
79
+ size: "small"
80
+ }) : /*#__PURE__*/React.createElement(SvgFromXml, {
81
+ xml: svgState.svg,
82
+ width: "100%",
83
+ height: "100%",
84
+ viewBox: svgState.viewBox,
85
+ "aria-label": alt,
86
+ accessibilityRole: "image",
87
+ accessibilityLabel: alt,
88
+ accessibilityHint: undefined,
89
+ testID: "react-native-marked-md-svg"
90
+ }));
91
+ };
92
+
93
+ export default /*#__PURE__*/memo(MDSvg);
94
+ //# sourceMappingURL=MDSvg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useEffect","useState","useRef","ActivityIndicator","View","SvgFromXml","getSvgDimensions","MDSvg","uri","alt","isFirstLoad","layoutWidth","setLayoutWidth","svgState","setSvgState","viewBox","width","height","svg","isLoading","error","aspectRatio","undefined","fetchSvg","res","fetch","text","status","Error","e","state","onLayout","event","current","nativeEvent","layout","getWidth","Math","min"],"sourceRoot":"../../../src","sources":["components/MDSvg.tsx"],"mappings":"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"}
@@ -8,6 +8,7 @@ import { Table, Cell, TableWrapper } from "react-native-table-component";
8
8
  import MDImage from "./../components/MDImage";
9
9
  import { onLinkPress } from "../utils/handlers";
10
10
  import { getTableWidthArr } from "../utils/table";
11
+ import MDSvg from "./../components/MDSvg";
11
12
 
12
13
  class Renderer {
13
14
  slugPrefix = "react-native-marked-ele";
@@ -77,8 +78,17 @@ class Renderer {
77
78
  }
78
79
 
79
80
  image(uri, alt, style) {
81
+ const key = this.getKey();
82
+
83
+ if (uri.endsWith(".svg")) {
84
+ return /*#__PURE__*/React.createElement(MDSvg, {
85
+ uri: uri,
86
+ key: key
87
+ });
88
+ }
89
+
80
90
  return /*#__PURE__*/React.createElement(MDImage, {
81
- key: this.getKey(),
91
+ key: key,
82
92
  uri: uri,
83
93
  alt: alt,
84
94
  style: style
@@ -1 +1 @@
1
- {"version":3,"names":["React","ScrollView","View","Text","TouchableHighlight","Dimensions","MarkedList","Disc","Decimal","Slugger","Table","Cell","TableWrapper","MDImage","onLinkPress","getTableWidthArr","Renderer","slugPrefix","constructor","slugger","width","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","map","node","escape","link","href","image","uri","alt","style","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","ScrollView","View","Text","TouchableHighlight","Dimensions","MarkedList","Disc","Decimal","Slugger","Table","Cell","TableWrapper","MDImage","onLinkPress","getTableWidthArr","MDSvg","Renderer","slugPrefix","constructor","slugger","width","get","windowWidth","paragraph","children","styles","getViewNode","blockquote","getBlockquoteNode","heading","text","getTextNode","code","_language","containerStyle","textStyle","getKey","hr","listItem","list","ordered","li","listStyle","startIndex","map","node","escape","link","href","image","uri","alt","style","key","endsWith","strong","em","codespan","br","del","html","linkImage","imageUrl","imageNode","table","header","rows","tableStyle","rowStyle","cellStyle","widthArr","length","borderWidth","borderColor","tableStyleRest","headerCol","index","rowData","cellData","cellIndex","slug"],"sourceRoot":"../../../src","sources":["lib/Renderer.tsx"],"mappings":"AAAA,OAAOA,KAAP,MAAsC,OAAtC;AACA,SACCC,UADD,EAECC,IAFD,EAGCC,IAHD,EAICC,kBAJD,EAQCC,UARD,QASO,cATP;AAUA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,IAAP,MAAiB,mCAAjB;AACA,OAAOC,OAAP,MAAoB,sCAApB;AACA,SAASC,OAAT,QAAwB,QAAxB;AACA,SAASC,KAAT,EAAgBC,IAAhB,EAAsBC,YAAtB,QAA0C,8BAA1C;AACA,OAAOC,OAAP,MAAoB,yBAApB;AACA,SAASC,WAAT,QAA4B,mBAA5B;AAEA,SAASC,gBAAT,QAAiC,gBAAjC;AACA,OAAOC,KAAP,MAAkB,uBAAlB;;AAEA,MAAMC,QAAN,CAA4C;EACnCC,UAAU,GAAG,yBAAH;;EAGlBC,WAAW,GAAG;IACb,KAAKC,OAAL,GAAe,IAAIX,OAAJ,EAAf;IACA,MAAM;MAAEY;IAAF,IAAYhB,UAAU,CAACiB,GAAX,CAAe,QAAf,CAAlB;IACA,KAAKC,WAAL,GAAmBF,KAAnB;EACA;;EAEDG,SAAS,CAACC,QAAD,EAAwBC,MAAxB,EAAuD;IAC/D,OAAO,KAAKC,WAAL,CAAiBF,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAEDE,UAAU,CAACH,QAAD,EAAwBC,MAAxB,EAAuD;IAChE,OAAO,KAAKG,iBAAL,CAAuBJ,QAAvB,EAAiCC,MAAjC,CAAP;EACA;;EAEDI,OAAO,CAACC,IAAD,EAA6BL,MAA7B,EAA4D;IAClE,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDO,IAAI,CACHF,IADG,EAEHG,SAFG,EAGHC,cAHG,EAIHC,SAJG,EAKS;IACZ,oBACC,oBAAC,UAAD;MACC,UAAU,MADX;MAEC,GAAG,EAAE,KAAKC,MAAL,EAFN;MAGC,qBAAqB,EAAEF;IAHxB,gBAKC,oBAAC,IAAD;MAAM,UAAU,MAAhB;MAAiB,KAAK,EAAEC;IAAxB,GACEL,IADF,CALD,CADD;EAWA;;EAEDO,EAAE,CAACZ,MAAD,EAAgC;IACjC,OAAO,KAAKC,WAAL,CAAiB,IAAjB,EAAuBD,MAAvB,CAAP;EACA;;EAEDa,QAAQ,CAACd,QAAD,EAAwBC,MAAxB,EAAuD;IAC9D,OAAO,KAAKC,WAAL,CAAiBF,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAEDc,IAAI,CACHC,OADG,EAEHC,EAFG,EAGHC,SAHG,EAIHP,SAJG,EAKHQ,UALG,EAMS;IACZ,oBACC,oBAAC,UAAD;MACC,eAAe,EAAEH,OAAO,GAAGjC,OAAH,GAAaD,IADtC;MAEC,eAAe,EAAE6B,SAFlB;MAGC,cAAc,EAAEO,SAHjB;MAIC,GAAG,EAAE,KAAKN,MAAL,EAJN;MAKC,UAAU,EAAEO;IALb,GAOEF,EAAE,CAACG,GAAH,CAAQC,IAAD,IAAUA,IAAjB,CAPF,CADD;EAWA;;EAEDC,MAAM,CAAChB,IAAD,EAAeL,MAAf,EAA8C;IACnD,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDsB,IAAI,CACHvB,QADG,EAEHwB,IAFG,EAGHvB,MAHG,EAIS;IACZ,oBACC,oBAAC,IAAD;MACC,UAAU,MADX;MAEC,iBAAiB,EAAC,MAFnB;MAGC,iBAAiB,EAAC,uBAHnB;MAIC,GAAG,EAAE,KAAKW,MAAL,EAJN;MAKC,OAAO,EAAEvB,WAAW,CAACmC,IAAD,CALrB;MAMC,KAAK,EAAEvB;IANR,GAQED,QARF,CADD;EAYA;;EAEDyB,KAAK,CAACC,GAAD,EAAcC,GAAd,EAA4BC,KAA5B,EAA2D;IAC/D,MAAMC,GAAG,GAAG,KAAKjB,MAAL,EAAZ;;IACA,IAAIc,GAAG,CAACI,QAAJ,CAAa,MAAb,CAAJ,EAA0B;MACzB,oBAAO,oBAAC,KAAD;QAAO,GAAG,EAAEJ,GAAZ;QAAiB,GAAG,EAAEG;MAAtB,EAAP;IACA;;IACD,oBAAO,oBAAC,OAAD;MAAS,GAAG,EAAEA,GAAd;MAAmB,GAAG,EAAEH,GAAxB;MAA6B,GAAG,EAAEC,GAAlC;MAAuC,KAAK,EAAEC;IAA9C,EAAP;EACA;;EAEDG,MAAM,CAAC/B,QAAD,EAAwBC,MAAxB,EAAuD;IAC5D,OAAO,KAAKM,WAAL,CAAiBP,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAED+B,EAAE,CAAChC,QAAD,EAAwBC,MAAxB,EAAuD;IACxD,OAAO,KAAKM,WAAL,CAAiBP,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAEDgC,QAAQ,CAAC3B,IAAD,EAAeL,MAAf,EAA8C;IACrD,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDiC,EAAE,GAAc;IACf,OAAO,KAAK3B,WAAL,CAAiB,IAAjB,EAAuB,EAAvB,CAAP;EACA;;EAED4B,GAAG,CAACnC,QAAD,EAAwBC,MAAxB,EAAuD;IACzD,OAAO,KAAKM,WAAL,CAAiBP,QAAjB,EAA2BC,MAA3B,CAAP;EACA;;EAEDK,IAAI,CAACA,IAAD,EAA6BL,MAA7B,EAA4D;IAC/D,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDmC,IAAI,CAAC9B,IAAD,EAA6BL,MAA7B,EAA4D;IAC/D,OAAO,KAAKM,WAAL,CAAiBD,IAAjB,EAAuBL,MAAvB,CAAP;EACA;;EAEDoC,SAAS,CACRb,IADQ,EAERc,QAFQ,EAGRX,GAHQ,EAIRC,KAJQ,EAKI;IACZ,MAAMW,SAAS,GAAG,KAAKd,KAAL,CAAWa,QAAX,EAAqBX,GAArB,EAA0BC,KAA1B,CAAlB;IACA,oBACC,oBAAC,kBAAD;MACC,iBAAiB,EAAC,MADnB;MAEC,iBAAiB,EAAC,uBAFnB;MAGC,OAAO,EAAEvC,WAAW,CAACmC,IAAD,CAHrB;MAIC,GAAG,EAAE,KAAKZ,MAAL;IAJN,GAME2B,SANF,CADD;EAUA;;EAEDC,KAAK,CACJC,MADI,EAEJC,IAFI,EAGJC,UAHI,EAIJC,QAJI,EAKJC,SALI,EAMc;IAClB,MAAMC,QAAQ,GAAGxD,gBAAgB,CAACmD,MAAM,CAACM,MAAR,EAAgB,KAAKjD,WAArB,CAAjC;IACA,MAAM;MAAEkD,WAAF;MAAeC,WAAf;MAA4B,GAAGC;IAA/B,IAAkDP,UAAU,IAAI,EAAtE;IACA,oBACC,oBAAC,UAAD;MAAY,UAAU,EAAE;IAAxB,gBACC,oBAAC,KAAD;MACC,WAAW,EAAE;QAAEK,WAAF;QAAeC;MAAf,CADd;MAEC,KAAK,EAAEC;IAFR,gBAIC,oBAAC,YAAD;MAAc,KAAK,EAAEN;IAArB,GACEH,MAAM,CAACrB,GAAP,CAAW,CAAC+B,SAAD,EAAYC,KAAZ,KAAsB;MACjC,oBACC,oBAAC,IAAD;QACC,KAAK,EAAEN,QAAQ,CAACM,KAAD,CADhB;QAEC,GAAG,EAAG,GAAEA,KAAM,EAFf;QAGC,IAAI,eAAE,oBAAC,IAAD;UAAM,KAAK,EAAEP;QAAb,GAAyBM,SAAzB;MAHP,EADD;IAOA,CARA,CADF,CAJD,EAeET,IAAI,CAACtB,GAAL,CAAS,CAACiC,OAAD,EAAUD,KAAV,KAAoB;MAC7B,oBACC,oBAAC,YAAD;QAAc,GAAG,EAAG,GAAEA,KAAM,EAA5B;QAA+B,KAAK,EAAER;MAAtC,GACES,OAAO,CAACjC,GAAR,CAAY,CAACkC,QAAD,EAAWC,SAAX,KAAyB;QACrC,oBACC,oBAAC,IAAD;UACC,KAAK,EAAET,QAAQ,CAACS,SAAD,CADhB;UAEC,GAAG,EAAG,GAAEA,SAAU,EAFnB;UAGC,IAAI,eAAE,oBAAC,IAAD;YAAM,KAAK,EAAEV;UAAb,GAAyBS,QAAzB;QAHP,EADD;MAOA,CARA,CADF,CADD;IAaA,CAdA,CAfF,CADD,CADD;EAmCA;;EAED1C,MAAM,GAAW;IAChB,OAAO,KAAKjB,OAAL,CAAa6D,IAAb,CAAkB,KAAK/D,UAAvB,CAAP;EACA;;EAEOc,WAAW,CAClBP,QADkB,EAElBC,MAFkB,EAGN;IACZ,oBACC,oBAAC,IAAD;MAAM,UAAU,MAAhB;MAAiB,GAAG,EAAE,KAAKW,MAAL,EAAtB;MAAqC,KAAK,EAAEX;IAA5C,GACED,QADF,CADD;EAKA;;EAEOE,WAAW,CAClBF,QADkB,EAElBC,MAFkB,EAGN;IACZ;MACC,oBACC,oBAAC,IAAD;QAAM,GAAG,EAAE,KAAKW,MAAL,EAAX;QAA0B,KAAK,EAAEX;MAAjC,GACED,QADF,CADD;IAKA;EACD;;EAEOI,iBAAiB,CACxBJ,QADwB,EAExBC,MAFwB,EAGZ;IACZ;MACC,oBACC,oBAAC,IAAD;QAAM,GAAG,EAAE,KAAKW,MAAL,EAAX;QAA0B,KAAK,EAAEX;MAAjC,GACED,QADF,CADD;IAKA;EACD;;AAxO0C;;AA2O5C,eAAeR,QAAf"}
@@ -0,0 +1,13 @@
1
+ import { parse } from "svg-parser";
2
+ export const getSvgDimensions = svg => {
3
+ var _rootChild$properties, _rootChild$properties2, _rootChild$properties3;
4
+
5
+ const parsed = parse(svg);
6
+ const rootChild = parsed.children[0];
7
+ return {
8
+ width: parseInt(String(((_rootChild$properties = rootChild.properties) === null || _rootChild$properties === void 0 ? void 0 : _rootChild$properties.width) ?? "0")),
9
+ height: parseInt(String(((_rootChild$properties2 = rootChild.properties) === null || _rootChild$properties2 === void 0 ? void 0 : _rootChild$properties2.height) ?? "0")),
10
+ viewBox: String(((_rootChild$properties3 = rootChild.properties) === null || _rootChild$properties3 === void 0 ? void 0 : _rootChild$properties3.viewBox) ?? "")
11
+ };
12
+ };
13
+ //# sourceMappingURL=svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parse","getSvgDimensions","svg","parsed","rootChild","children","width","parseInt","String","properties","height","viewBox"],"sourceRoot":"../../../src","sources":["utils/svg.ts"],"mappings":"AACA,SAASA,KAAT,QAAsB,YAAtB;AAEA,OAAO,MAAMC,gBAAgB,GAAIC,GAAD,IAAiB;EAAA;;EAChD,MAAMC,MAAM,GAAGH,KAAK,CAACE,GAAD,CAApB;EAEA,MAAME,SAAS,GAAGD,MAAM,CAACE,QAAP,CAAgB,CAAhB,CAAlB;EAEA,OAAO;IACNC,KAAK,EAAEC,QAAQ,CAACC,MAAM,CAAC,0BAAAJ,SAAS,CAACK,UAAV,gFAAsBH,KAAtB,KAA+B,GAAhC,CAAP,CADT;IAENI,MAAM,EAAEH,QAAQ,CAACC,MAAM,CAAC,2BAAAJ,SAAS,CAACK,UAAV,kFAAsBC,MAAtB,KAAgC,GAAjC,CAAP,CAFV;IAGNC,OAAO,EAAEH,MAAM,CAAC,2BAAAJ,SAAS,CAACK,UAAV,kFAAsBE,OAAtB,KAAiC,EAAlC;EAHT,CAAP;AAKA,CAVM"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ type MDSvgProps = {
3
+ uri: string;
4
+ alt?: string;
5
+ };
6
+ declare const _default: React.NamedExoticComponent<MDSvgProps>;
7
+ export default _default;
8
+ //# sourceMappingURL=MDSvg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MDSvg.d.ts","sourceRoot":"","sources":["../../../src/components/MDSvg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAKf,KAAK,UAAU,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;;AA6FF,wBAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/Renderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/Renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAKN,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EAEf,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIjD,cAAM,QAAS,YAAW,iBAAiB;IAC1C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;;IAO5B,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAI/D,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAIhE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAIlE,IAAI,CACH,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,SAAS,EAC1B,SAAS,CAAC,EAAE,SAAS,GACnB,SAAS;IAcZ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAIjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAI9D,IAAI,CACH,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,SAAS,EAAE,EACf,SAAS,CAAC,EAAE,SAAS,EACrB,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,MAAM,GACjB,SAAS;IAcZ,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAInD,IAAI,CACH,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,EAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,GAChB,SAAS;IAeZ,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS;IAQ/D,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAI5D,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAIxD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAIrD,EAAE,IAAI,SAAS;IAIf,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAIzD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAI/D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAI/D,SAAS,CACR,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,UAAU,GAChB,SAAS;IAcZ,KAAK,CACJ,MAAM,EAAE,SAAS,EAAE,EAAE,EACrB,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EACrB,UAAU,CAAC,EAAE,SAAS,EACtB,QAAQ,CAAC,EAAE,SAAS,EACpB,SAAS,CAAC,EAAE,SAAS,GACnB,KAAK,CAAC,SAAS;IAwClB,MAAM,IAAI,MAAM;IAIhB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,iBAAiB;CAYzB;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const getSvgDimensions: (svg: string) => {
2
+ width: number;
3
+ height: number;
4
+ viewBox: string;
5
+ };
6
+ //# sourceMappingURL=svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/utils/svg.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,QAAS,MAAM;;;;CAU3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-marked",
3
- "version": "4.0.4",
3
+ "version": "4.1.1",
4
4
  "description": "Markdown renderer for React Native powered by marked.js",
5
5
  "main": "dist/commonjs/index",
6
6
  "module": "dist/module/index",
@@ -52,16 +52,17 @@
52
52
  "@babel/core": "7.21.8",
53
53
  "@babel/preset-env": "7.21.5",
54
54
  "@commitlint/config-conventional": "17.6.3",
55
- "@evilmartians/lefthook": "1.3.13",
55
+ "@evilmartians/lefthook": "1.4.0",
56
56
  "@release-it/conventional-changelog": "5.1.1",
57
57
  "@testing-library/jest-native": "5.4.2",
58
58
  "@testing-library/react-native": "12.1.2",
59
59
  "@types/jest": "29.5.1",
60
- "@types/marked": "4.0.8",
61
- "@types/node": "18.16.12",
60
+ "@types/marked": "4.3.1",
61
+ "@types/node": "18.16.13",
62
62
  "@types/react": "18.2.6",
63
63
  "@types/react-native": "0.72.0",
64
64
  "@types/react-native-table-component": "1.2.4",
65
+ "@types/svg-parser": "^2.0.3",
65
66
  "commitlint": "17.6.3",
66
67
  "danger": "11.2.6",
67
68
  "jest": "29.5.0",
@@ -80,7 +81,8 @@
80
81
  },
81
82
  "peerDependencies": {
82
83
  "react": "^16.8.6 || ^17.0.0 || ^18.0.0",
83
- "react-native": ">=0.60.0"
84
+ "react-native": ">=0.60.0",
85
+ "react-native-svg": ">=12.3.0"
84
86
  },
85
87
  "jest": {
86
88
  "preset": "react-native",
@@ -159,6 +161,9 @@
159
161
  "@jsamr/counter-style": "2.0.2",
160
162
  "@jsamr/react-native-li": "2.3.1",
161
163
  "marked": "4.3.0",
162
- "react-native-table-component": "1.2.2"
164
+ "react-native-svg": "13.9.0",
165
+ "react-native-table-component": "1.2.2",
166
+ "svg-parser": "^2.0.4",
167
+ "svgps": "0.8.0"
163
168
  }
164
169
  }
@@ -0,0 +1,108 @@
1
+ import React, {
2
+ memo,
3
+ type FunctionComponent,
4
+ useEffect,
5
+ useState,
6
+ useRef,
7
+ } from "react";
8
+ import { ActivityIndicator, View, type LayoutChangeEvent } from "react-native";
9
+ import { SvgFromXml } from "react-native-svg";
10
+ import { getSvgDimensions } from "./../utils/svg";
11
+
12
+ type MDSvgProps = {
13
+ uri: string;
14
+ alt?: string;
15
+ };
16
+
17
+ type MdSvgState = {
18
+ viewBox: string;
19
+ width: number;
20
+ height: number;
21
+ svg: string;
22
+ isLoading: boolean;
23
+ error: boolean;
24
+ aspectRatio?: number;
25
+ };
26
+
27
+ const MDSvg: FunctionComponent<MDSvgProps> = ({ uri, alt = "image" }) => {
28
+ const isFirstLoad = useRef<boolean>(false);
29
+ const [layoutWidth, setLayoutWidth] = useState<number>(0);
30
+ const [svgState, setSvgState] = useState<MdSvgState>({
31
+ viewBox: "",
32
+ width: 0,
33
+ height: 0,
34
+ svg: "",
35
+ isLoading: true,
36
+ error: false,
37
+ aspectRatio: undefined,
38
+ });
39
+ useEffect(() => {
40
+ const fetchSvg = async () => {
41
+ try {
42
+ const res = await fetch(uri);
43
+ const text = await res.text();
44
+ if (res.status !== 200) {
45
+ throw new Error("Status is not 200");
46
+ }
47
+ const { viewBox, width, height } = getSvgDimensions(text);
48
+
49
+ setSvgState({
50
+ width,
51
+ height,
52
+ viewBox,
53
+ svg: text,
54
+ isLoading: false,
55
+ error: false,
56
+ aspectRatio: width / height,
57
+ });
58
+ } catch (e) {
59
+ setSvgState((state) => ({
60
+ ...state,
61
+ error: true,
62
+ isLoading: false,
63
+ }));
64
+ }
65
+ };
66
+
67
+ fetchSvg();
68
+ }, []);
69
+
70
+ const onLayout = (event: LayoutChangeEvent) => {
71
+ if (!isFirstLoad.current) {
72
+ setLayoutWidth(event.nativeEvent.layout.width ?? 0);
73
+ isFirstLoad.current = true;
74
+ }
75
+ };
76
+
77
+ const getWidth = () => {
78
+ if (layoutWidth && svgState.width) {
79
+ return Math.min(layoutWidth, svgState.width);
80
+ }
81
+ return "100%";
82
+ };
83
+
84
+ return (
85
+ <View
86
+ style={{ width: getWidth(), aspectRatio: svgState.aspectRatio }}
87
+ onLayout={onLayout}
88
+ >
89
+ {svgState.isLoading ? (
90
+ <ActivityIndicator size={"small"} />
91
+ ) : (
92
+ <SvgFromXml
93
+ xml={svgState.svg}
94
+ width={"100%"}
95
+ height={"100%"}
96
+ viewBox={svgState.viewBox}
97
+ aria-label={alt}
98
+ accessibilityRole="image"
99
+ accessibilityLabel={alt}
100
+ accessibilityHint={undefined}
101
+ testID="react-native-marked-md-svg"
102
+ />
103
+ )}
104
+ </View>
105
+ );
106
+ };
107
+
108
+ export default memo(MDSvg);
@@ -18,6 +18,7 @@ import MDImage from "./../components/MDImage";
18
18
  import { onLinkPress } from "../utils/handlers";
19
19
  import type { RendererInterface } from "./types";
20
20
  import { getTableWidthArr } from "../utils/table";
21
+ import MDSvg from "./../components/MDSvg";
21
22
 
22
23
  class Renderer implements RendererInterface {
23
24
  private slugPrefix = "react-native-marked-ele";
@@ -112,7 +113,11 @@ class Renderer implements RendererInterface {
112
113
  }
113
114
 
114
115
  image(uri: string, alt?: string, style?: ImageStyle): ReactNode {
115
- return <MDImage key={this.getKey()} uri={uri} alt={alt} style={style} />;
116
+ const key = this.getKey();
117
+ if (uri.endsWith(".svg")) {
118
+ return <MDSvg uri={uri} key={key} />;
119
+ }
120
+ return <MDImage key={key} uri={uri} alt={alt} style={style} />;
116
121
  }
117
122
 
118
123
  strong(children: ReactNode[], styles?: TextStyle): ReactNode {
@@ -0,0 +1,14 @@
1
+ import type { ElementNode } from "svg-parser";
2
+ import { parse } from "svg-parser";
3
+
4
+ export const getSvgDimensions = (svg: string) => {
5
+ const parsed = parse(svg);
6
+
7
+ const rootChild = parsed.children[0] as ElementNode;
8
+
9
+ return {
10
+ width: parseInt(String(rootChild.properties?.width ?? "0")),
11
+ height: parseInt(String(rootChild.properties?.height ?? "0")),
12
+ viewBox: String(rootChild.properties?.viewBox ?? ""),
13
+ };
14
+ };