diff --git a/dist/index.cjs.js b/dist/index.cjs.js index 484cf028..6bc81469 100644 --- a/dist/index.cjs.js +++ b/dist/index.cjs.js @@ -327,17 +327,15 @@ ResourcesInfo.propTypes = { */ var ReadMe = function ReadMe(_ref) { - var readmeHtml = _ref.readmeHtml; + var readme = _ref.readme; return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("section", { className: "m-8", name: "sample-table" - }, /*#__PURE__*/React__default['default'].createElement("h1", { - className: "text-2xl font-bold mb-4" - }, "README"), /*#__PURE__*/React__default['default'].createElement("div", { + }, /*#__PURE__*/React__default['default'].createElement("div", { className: "prose" }, /*#__PURE__*/React__default['default'].createElement("div", { dangerouslySetInnerHTML: { - __html: readmeHtml + __html: readme } })))); }; @@ -561,19 +559,19 @@ var Nav = function Nav(_ref) { Nav.propTypes = { logo: PropTypes__default['default'].string.isRequired, - navMenu: PropTypes__default['default'].string + navMenu: PropTypes__default['default'].array.isRequired }; /** * Displays a list of recent datasets - * @param {object} props - * datasets = { + * @param {array} props An array of datasets + * { datasets = [{ * organization: {name: , title: }, * title: * name: * description: - * notes: - * } + * }] + * } * @returns React Component */ @@ -581,9 +579,7 @@ var Recent = function Recent(_ref) { var datasets = _ref.datasets; return /*#__PURE__*/React__default['default'].createElement("section", { className: "my-10 mx-4 lg:my-20" - }, /*#__PURE__*/React__default['default'].createElement("h1", { - className: "text-2xl font-thin mb-4" - }, "Recent Datasets"), /*#__PURE__*/React__default['default'].createElement("div", { + }, /*#__PURE__*/React__default['default'].createElement("div", { className: "recent flex flex-col lg:flex-row" }, datasets.map(function (dataset, index) { return /*#__PURE__*/React__default['default'].createElement("div", { @@ -602,7 +598,7 @@ var Recent = function Recent(_ref) { }; Recent.propTypes = { - datasets: PropTypes__default['default'].object.isRequired + datasets: PropTypes__default['default'].array.isRequired }; exports.CustomLink = CustomLink; diff --git a/dist/index.esm.js b/dist/index.esm.js index 82e9e799..3d29a4e4 100644 --- a/dist/index.esm.js +++ b/dist/index.esm.js @@ -294,17 +294,15 @@ ResourcesInfo.propTypes = { */ var ReadMe = function ReadMe(_ref) { - var readmeHtml = _ref.readmeHtml; + var readme = _ref.readme; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("section", { className: "m-8", name: "sample-table" - }, /*#__PURE__*/React.createElement("h1", { - className: "text-2xl font-bold mb-4" - }, "README"), /*#__PURE__*/React.createElement("div", { + }, /*#__PURE__*/React.createElement("div", { className: "prose" }, /*#__PURE__*/React.createElement("div", { dangerouslySetInnerHTML: { - __html: readmeHtml + __html: readme } })))); }; @@ -528,19 +526,19 @@ var Nav = function Nav(_ref) { Nav.propTypes = { logo: PropTypes.string.isRequired, - navMenu: PropTypes.string + navMenu: PropTypes.array.isRequired }; /** * Displays a list of recent datasets - * @param {object} props - * datasets = { + * @param {array} props An array of datasets + * { datasets = [{ * organization: {name: , title: }, * title: * name: * description: - * notes: - * } + * }] + * } * @returns React Component */ @@ -548,9 +546,7 @@ var Recent = function Recent(_ref) { var datasets = _ref.datasets; return /*#__PURE__*/React.createElement("section", { className: "my-10 mx-4 lg:my-20" - }, /*#__PURE__*/React.createElement("h1", { - className: "text-2xl font-thin mb-4" - }, "Recent Datasets"), /*#__PURE__*/React.createElement("div", { + }, /*#__PURE__*/React.createElement("div", { className: "recent flex flex-col lg:flex-row" }, datasets.map(function (dataset, index) { return /*#__PURE__*/React.createElement("div", { @@ -569,7 +565,7 @@ var Recent = function Recent(_ref) { }; Recent.propTypes = { - datasets: PropTypes.object.isRequired + datasets: PropTypes.array.isRequired }; export { CustomLink, DataExplorer, ErrorMessage as Error, KeyInfo, Nav, Org, PlotlyChart, Post, PostList, ReadMe, Recent, ResourcesInfo as ResourceInfo, Table }; diff --git a/package.json b/package.json index c2b8e494..7039331a 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@material-ui/core": "^4.11.3", "@material-ui/data-grid": "^4.0.0-alpha.20", "filesize": "^6.3.0", + "html-react-parser": "^1.2.6", "next": "latest", "plotly.js-basic-dist": "^1.58.4", "postcss": "^8.1.10", diff --git a/src/components/dataset/Readme.js b/src/components/dataset/Readme.js index 14ae9dbc..099c0239 100644 --- a/src/components/dataset/Readme.js +++ b/src/components/dataset/Readme.js @@ -6,13 +6,12 @@ import PropTypes from 'prop-types'; * @param {string} readme parsed html of data package readme * @returns React Component */ -const ReadMe = ({ readmeHtml }) => { +const ReadMe = ({ readme }) => { return ( <>
-

README

-
+
diff --git a/src/components/ui/Nav.js b/src/components/ui/Nav.js index 21577d82..b5b488d3 100644 --- a/src/components/ui/Nav.js +++ b/src/components/ui/Nav.js @@ -54,6 +54,6 @@ const Nav = ({ logo, navMenu }) => { Nav.propTypes = { logo: PropTypes.string.isRequired, - navMenu: PropTypes.string + navMenu: PropTypes.array.isRequired } export default Nav; diff --git a/src/components/ui/Recent.js b/src/components/ui/Recent.js index 665d0201..9bd2a98b 100644 --- a/src/components/ui/Recent.js +++ b/src/components/ui/Recent.js @@ -4,21 +4,20 @@ import PropTypes from 'prop-types'; /** * Displays a list of recent datasets - * @param {object} props - * datasets = { + * @param {array} props An array of datasets + * { datasets = [{ * organization: {name: , title: }, * title: * name: * description: - * notes: - * } + * }] + * } * @returns React Component */ const Recent = ({datasets}) => { return (
-

Recent Datasets

{datasets.map((dataset, index) => (
{ {dataset.organization && dataset.organization.description}

View Dataset @@ -45,7 +43,7 @@ const Recent = ({datasets}) => { }; Recent.propTypes = { - datasets: PropTypes.object.isRequired + datasets: PropTypes.array.isRequired } export default Recent; diff --git a/yarn.lock b/yarn.lock index ca9657c5..a6483791 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4848,6 +4848,15 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" + integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + entities "^2.0.0" + domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -4858,7 +4867,7 @@ domelementtype@1, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: +domelementtype@^2.0.1, domelementtype@^2.1.0, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== @@ -4877,6 +4886,13 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" +domhandler@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" + integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== + dependencies: + domelementtype "^2.1.0" + domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -4884,6 +4900,13 @@ domhandler@^2.3.0: dependencies: domelementtype "1" +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + dependencies: + domelementtype "^2.2.0" + domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" @@ -4892,6 +4915,15 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" +domutils@^2.4.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" + integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -6299,6 +6331,14 @@ hsla-regex@^1.0.0: resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= +html-dom-parser@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/html-dom-parser/-/html-dom-parser-1.0.0.tgz#00d42aa3ecfc1a965a91293ca60973c08205fad0" + integrity sha512-1lKgZW6TccI5OMxRB+5+B3urj62oFB8bRx5cJPgOSHAPk9B5V+k2NM/2z7FuIwOgopnPP/KlgBMNnX/2nKy0lA== + dependencies: + domhandler "4.0.0" + htmlparser2 "6.0.0" + html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" @@ -6336,6 +6376,16 @@ html-minifier-terser@^5.0.1: relateurl "^0.2.7" terser "^4.6.3" +html-react-parser@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/html-react-parser/-/html-react-parser-1.2.6.tgz#610b9bbcdcf51cdfabf644a83ac3815b1d485436" + integrity sha512-C1bm5OwmXxv1KJg5EqDMUCDO3lVsMNCfc1H/aEk8iJb4qek7ZzdYy9dUR0ciuPoRZBsGJpyHa/UzZ0Lw3DHnMQ== + dependencies: + domhandler "4.0.0" + html-dom-parser "1.0.0" + react-property "1.0.1" + style-to-js "1.1.0" + html-tags@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" @@ -6353,6 +6403,16 @@ html-webpack-plugin@4.0.0-beta.11: tapable "^1.1.3" util.promisify "1.0.0" +htmlparser2@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.0.0.tgz#c2da005030390908ca4c91e5629e418e0665ac01" + integrity sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.4.4" + entities "^2.0.0" + htmlparser2@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" @@ -6602,6 +6662,11 @@ ini@^1.3.5: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" @@ -10769,6 +10834,11 @@ react-plotly.js@^2.5.1: dependencies: prop-types "^15.7.2" +react-property@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-property/-/react-property-1.0.1.tgz#4ae4211557d0a0ae050a71aa8ad288c074bea4e6" + integrity sha512-1tKOwxFn3dXVomH6pM9IkLkq2Y8oh+fh/lYW3MJ/B03URswUTqttgckOlbxY2XHF3vPG6uanSc4dVsLW/wk3wQ== + react-refresh@0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" @@ -12153,6 +12223,20 @@ style-loader@0.23.1: loader-utils "^1.1.0" schema-utils "^1.0.0" +style-to-js@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.0.tgz#631cbb20fce204019b3aa1fcb5b69d951ceac4ac" + integrity sha512-1OqefPDxGrlMwcbfpsTVRyzwdhr4W0uxYQzeA2F1CBc8WG04udg2+ybRnvh3XYL4TdHQrCahLtax2jc8xaE6rA== + dependencies: + style-to-object "0.3.0" + +style-to-object@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + styled-jsx@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-3.3.2.tgz#2474601a26670a6049fb4d3f94bd91695b3ce018"