From 6e936573d63f0fc0ad6ae84ea4163b562cb04b40 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 6 Nov 2019 16:16:24 -0500 Subject: [PATCH] fix(docs): made codesandbox dependencies dynamic per component (#101) --- .../helpers/codesandbox.js | 19 +-- gatsby-theme-patternfly-org/versions.json | 129 ++++++++++++++++++ 2 files changed, 139 insertions(+), 9 deletions(-) create mode 100644 gatsby-theme-patternfly-org/versions.json diff --git a/gatsby-theme-patternfly-org/helpers/codesandbox.js b/gatsby-theme-patternfly-org/helpers/codesandbox.js index 1720add..3a6050a 100644 --- a/gatsby-theme-patternfly-org/helpers/codesandbox.js +++ b/gatsby-theme-patternfly-org/helpers/codesandbox.js @@ -1,3 +1,5 @@ +import versions from '../versions.json'; + // TODO: Use a template that has our assets. export const getStaticParams = (title, html) => ({ files: { @@ -41,6 +43,13 @@ export const getReactParams = (title, code) => { toRender = equalityMatch[1]; code = code.replace(/(\w+) =/, `const ${toRender} =`) } + + const dependencies = {}; + + Object.entries(versions.Releases[0].versions) + .filter(([pkg]) => code.includes(pkg)) + .forEach(([pkg, version]) => dependencies[pkg] = version); + return { files: { 'index.html': { @@ -71,15 +80,7 @@ ReactDOM.render(<${toRender} />, rootElement);` 'package.json': { content: { dependencies: { - '@patternfly/react-charts': 'latest', - '@patternfly/react-core': 'latest', - '@patternfly/react-inline-edit-extension': 'latest', - '@patternfly/react-styles': 'latest', - '@patternfly/react-table': 'latest', - '@patternfly/react-tokens': 'latest', - '@patternfly/react-topology': 'latest', - '@patternfly/react-virtualized-extension': 'latest', - '@patternfly/react-icons': 'latest', + ...dependencies, 'react': '^16.8.0', 'react-dom': '^16.8.0' } diff --git a/gatsby-theme-patternfly-org/versions.json b/gatsby-theme-patternfly-org/versions.json new file mode 100644 index 0000000..e78eb75 --- /dev/null +++ b/gatsby-theme-patternfly-org/versions.json @@ -0,0 +1,129 @@ +{ + "Releases": [ + { + "name": "2019.09", + "date": "2019-11-01", + "latest": true, + "versions": { + "@patternfly/patternfly": "2.40.6", + "@patternfly/react-charts": "5.1.5", + "@patternfly/react-core": "3.120.5", + "@patternfly/react-styles": "3.6.5", + "@patternfly/react-table": "2.24.17", + "@patternfly/react-tokens": "2.7.5", + "@patternfly/react-topology": "2.11.5", + "@patternfly/react-icons": "3.14.18", + "@patternfly/react-virtualized-extension": "1.3.17", + "@patternfly/react-inline-edit-extension": "2.12.17" + } + }, + { + "name": "2019.08", + "date": "2019-09-27", + "versions": { + "@patternfly/patternfly": "2.33.5", + "@patternfly/react-charts": "5.0.13", + "@patternfly/react-core": "3.112.3", + "@patternfly/react-styles": "3.5.27", + "@patternfly/react-table": "2.22.19", + "@patternfly/react-tokens": "2.6.31", + "@patternfly/react-topology": "2.8.65", + "@patternfly/react-icons": "3.14.7", + "@patternfly/react-virtualized-extension": "1.2.55", + "@patternfly/react-inline-edit-extension": "2.11.70" + } + }, + { + "name": "2019.07", + "date": "2019-09-10", + "versions": { + "@patternfly/patternfly": "2.31.6", + "@patternfly/react-charts": "4.7.9", + "@patternfly/react-core": "3.104.0", + "@patternfly/react-styles": "3.5.22", + "@patternfly/react-table": "2.20.15", + "@patternfly/react-tokens": "2.6.26", + "@patternfly/react-topology": "2.8.34", + "@patternfly/react-icons": "3.14.2", + "@patternfly/react-virtualized-extension": "1.2.23", + "@patternfly/react-inline-edit-extension": "2.11.35" + } + }, + { + "name": "2019.06", + "date": "2019-08-16", + "versions": { + "@patternfly/patternfly": "2.26.1", + "@patternfly/react-charts": "4.7.9", + "@patternfly/react-core": "3.87.3", + "@patternfly/react-styles": "3.5.13", + "@patternfly/react-table": "2.17.5", + "@patternfly/react-tokens": "2.6.16", + "@patternfly/react-topology": "2.7.31", + "@patternfly/react-icons": "3.10.14", + "@patternfly/react-virtualized-extension": "1.1.117", + "@patternfly/react-inline-edit-extension": "2.10.5" + } + }, + { + "name": "2019.05", + "date": "2019-07-25", + "versions": { + "@patternfly/patternfly": "2.23.0", + "@patternfly/react-charts": "4.7.1", + "@patternfly/react-core": "3.75.2", + "@patternfly/react-icons": "3.10.14", + "@patternfly/react-inline-edit-extension": "2.9.49", + "@patternfly/react-styles": "3.5.7", + "@patternfly/react-table": "2.14.23", + "@patternfly/react-tokens": "2.6.13", + "@patternfly/react-topology": "2.6.20", + "@patternfly/react-virtualized-extension": "1.1.82" + } + }, + { + "name": "2019.04", + "date": "2019-07-02", + "versions": { + "@patternfly/patternfly": "2.17.0", + "@patternfly/react-charts": "4.4.7", + "@patternfly/react-core": "3.58.1", + "@patternfly/react-icons": "3.10.6", + "@patternfly/react-inline-edit-extension": "2.9.12", + "@patternfly/react-styles": "3.4.6", + "@patternfly/react-table": "2.13.43", + "@patternfly/react-tokens": "2.6.5", + "@patternfly/react-topology": "2.4.21", + "@patternfly/react-virtualized-extension": "1.1.45" + } + }, + { + "name": "2019.03", + "date": "2019-06-11", + "versions": { + "@patternfly/patternfly": "2.17.0", + "@patternfly/react-charts": "4.1.5", + "@patternfly/react-core": "3.58.1", + "@patternfly/react-icons": "3.9.5", + "@patternfly/react-inline-edit-extension": "2.7.7", + "@patternfly/react-styles": "3.3.3", + "@patternfly/react-table": "2.11.1", + "@patternfly/react-tokens": "2.5.5" + } + }, + { + "name": "2019.02", + "date": "2019-06-05", + "versions": { + "@patternfly/patternfly": "2.17.0", + "@patternfly/react-charts": "3.6.5", + "@patternfly/react-core": "3.34.2", + "@patternfly/react-icons": "3.9.3", + "@patternfly/react-inline-edit-extension": "2.5.2", + "@patternfly/react-styles": "3.2.3", + "@patternfly/react-table": "2.9.2", + "@patternfly/react-tokens": "2.5.3" + } + } + ] +}