From 6f9bf0176f8f80f987040eed0fd97ad6dfad5e70 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 30 Jun 2020 12:56:50 +0200 Subject: [PATCH] refactor Next.js pages into Gatsby pages --- .eslintrc | 1 + .gitignore | 1 - content/pages/history.json | 4 + content/pages/publish.json | 4 + gatsby-config.js | 4 +- package-lock.json | 54 ++++- package.json | 3 +- .../atoms/FormWidgets/DateRangeWidget.tsx | 4 +- .../atoms/FormWidgets/TermsWidget.tsx | 4 +- src/components/atoms/Input/Help.module.css | 2 +- src/components/atoms/Input/Input.tsx | 213 ------------------ ...put.module.css => InputElement.module.css} | 88 +++----- src/components/atoms/Input/InputElement.tsx | 66 ++++++ src/components/atoms/Input/Label.module.css | 4 +- src/components/atoms/Input/Label.tsx | 2 +- src/components/atoms/Input/index.module.css | 3 + src/components/atoms/Input/index.tsx | 59 +++++ src/components/atoms/NProgress.css | 24 -- src/components/atoms/NProgress.tsx | 49 ---- src/components/molecules/AssetTeaser.tsx | 3 +- src/components/molecules/DeleteAsset.tsx | 14 +- src/components/molecules/Form/index.tsx | 2 +- src/components/molecules/JobDetailsDialog.tsx | 3 +- .../molecules/PublishForm/PublishForm.tsx | 10 +- src/components/molecules/SearchBar.tsx | 19 +- src/components/organisms/Compute.tsx | 7 +- src/components/organisms/Consume.tsx | 5 +- src/components/organisms/ConsumedList.tsx | 3 +- src/components/organisms/Footer.tsx | 3 +- src/components/organisms/JobsList.tsx | 5 +- src/components/organisms/PublishedList.tsx | 3 +- ...sactions.module.css => History.module.css} | 0 src/components/pages/History.tsx | 51 +++++ src/components/pages/Home.module.css | 18 -- src/components/pages/Home.tsx | 18 +- src/components/pages/Publish.tsx | 23 +- src/components/pages/Transactions.tsx | 57 ----- src/helpers/wrapPageElement.tsx | 8 +- src/hooks/useCategoriesQueryParams.tsx | 4 - src/hooks/usePriceQueryParams.tsx | 34 +-- src/hooks/useSiteMetadata.ts | 25 +- src/pages/_app.tsx | 66 ------ src/pages/asset/[did].tsx | 117 ---------- src/pages/explore.tsx | 29 --- src/pages/history.tsx | 30 +++ src/pages/index.tsx | 22 +- src/pages/publish.tsx | 33 ++- src/pages/search.tsx | 124 +++++----- src/pages/transactions.tsx | 9 - src/utils/index.ts | 18 +- tests/unit/__mocks__/ocean-mock.ts | 2 - tests/unit/jest.config.js | 8 +- tests/unit/pages/[did].test.tsx | 77 ------- tests/unit/pages/explore.test.tsx | 28 --- tests/unit/pages/publish.test.tsx | 2 +- 55 files changed, 480 insertions(+), 989 deletions(-) create mode 100644 content/pages/history.json create mode 100644 content/pages/publish.json delete mode 100644 src/components/atoms/Input/Input.tsx rename src/components/atoms/Input/{Input.module.css => InputElement.module.css} (62%) create mode 100644 src/components/atoms/Input/InputElement.tsx create mode 100644 src/components/atoms/Input/index.module.css create mode 100644 src/components/atoms/Input/index.tsx delete mode 100644 src/components/atoms/NProgress.css delete mode 100644 src/components/atoms/NProgress.tsx rename src/components/pages/{Transactions.module.css => History.module.css} (100%) create mode 100644 src/components/pages/History.tsx delete mode 100644 src/components/pages/Transactions.tsx delete mode 100644 src/pages/_app.tsx delete mode 100644 src/pages/asset/[did].tsx delete mode 100644 src/pages/explore.tsx create mode 100644 src/pages/history.tsx delete mode 100644 src/pages/transactions.tsx delete mode 100644 tests/unit/pages/[did].test.tsx delete mode 100644 tests/unit/pages/explore.test.tsx diff --git a/.eslintrc b/.eslintrc index 6de5599fe..538380cd5 100644 --- a/.eslintrc +++ b/.eslintrc @@ -27,6 +27,7 @@ "plugins": ["@typescript-eslint", "prettier"], "rules": { "react/prop-types": "off", + "react/no-unused-prop-types": "off", "@typescript-eslint/explicit-function-return-type": "off" } } diff --git a/.gitignore b/.gitignore index 1ede78279..6a6c384ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ node_modules out .DS_Store -.next .idea .env coverage diff --git a/content/pages/history.json b/content/pages/history.json new file mode 100644 index 000000000..6ec83422f --- /dev/null +++ b/content/pages/history.json @@ -0,0 +1,4 @@ +{ + "title": "History", + "description": "Find the data sets and jobs that you previously accessed." +} diff --git a/content/pages/publish.json b/content/pages/publish.json new file mode 100644 index 000000000..41f9bdd96 --- /dev/null +++ b/content/pages/publish.json @@ -0,0 +1,4 @@ +{ + "title": "Publish Data", + "description": "Highlight the important features of your data set to make it more discoverable and catch the interest of data consumers." +} diff --git a/gatsby-config.js b/gatsby-config.js index 152f3f446..939e66f8f 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -1,10 +1,10 @@ require('dotenv').config() -const siteConfig = require('./site.config.js') +const siteConfig = require('./content/site.json') module.exports = { siteMetadata: { - ...siteConfig + ...siteConfig.site }, plugins: [ { diff --git a/package-lock.json b/package-lock.json index 5cdfa8d94..66f0fd302 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6009,6 +6009,36 @@ "@types/yargs": "^13.0.0" } }, + "@loadable/component": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.13.0.tgz", + "integrity": "sha512-+qS6xoA4DN5Pjm5sR6vWuuYEhMWZ9Y7ALgI8JuDOMCiqOG+PTau0phOyqFgrFqDXijVpeInoIoZQdW1FKjGBYA==", + "requires": { + "@babel/runtime": "^7.7.7", + "hoist-non-react-statics": "^3.3.1", + "react-is": "^16.12.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", + "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + } + } + }, "@mdx-js/mdx": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.6.tgz", @@ -32909,8 +32939,7 @@ "react-fast-compare": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", - "dev": true + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, "react-focus-lock": { "version": "2.4.0", @@ -32926,6 +32955,17 @@ "use-sidecar": "^1.0.1" } }, + "react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + } + }, "react-helmet-async": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.6.tgz", @@ -33126,6 +33166,11 @@ "no-scroll": "^2.1.1" } }, + "react-side-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz", + "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==" + }, "react-sizeme": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.12.tgz", @@ -37855,11 +37900,6 @@ "integrity": "sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ==", "dev": true }, - "use-debounce": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-3.4.2.tgz", - "integrity": "sha512-rW44wZaFPh3XiwUzGBA0JRuklpbfKO/szU/5CYD2Q/erLmCem63lJ650p3a+NJE6S+g0rulKtBOfa/3rw/GN+Q==" - }, "use-sidecar": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.2.tgz", diff --git a/package.json b/package.json index 428cb683f..7eaa15952 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "storybook:build": "build-storybook -c .storybook -o public/storybook" }, "dependencies": { + "@loadable/component": "^5.13.0", "@oceanprotocol/art": "^2.2.0", "@oceanprotocol/react": "0.0.11", "@oceanprotocol/squid": "^2.2.0", @@ -48,6 +49,7 @@ "react-dom": "^16.13.1", "react-dotdotdot": "^1.3.1", "react-dropzone": "^11.0.1", + "react-helmet": "^6.1.0", "react-jsonschema-form": "^1.8.1", "react-markdown": "^4.3.1", "react-paginate": "^6.3.2", @@ -56,7 +58,6 @@ "react-toastify": "^6.0.6", "shortid": "^2.2.15", "slugify": "^1.4.4", - "use-debounce": "^3.4.2", "web3connect": "^1.0.0-beta.33" }, "devDependencies": { diff --git a/src/components/atoms/FormWidgets/DateRangeWidget.tsx b/src/components/atoms/FormWidgets/DateRangeWidget.tsx index 2bbd7e69a..9be3234d1 100644 --- a/src/components/atoms/FormWidgets/DateRangeWidget.tsx +++ b/src/components/atoms/FormWidgets/DateRangeWidget.tsx @@ -1,11 +1,11 @@ import React, { useEffect, useState } from 'react' import { WidgetProps } from 'react-jsonschema-form' -import dynamic from 'next/dynamic' +import loadable from '@loadable/component' import styles from './DateRangeWidget.module.css' import { toStringNoMS } from '../../../utils' // lazy load this module, it's huge -const LazyDatePicker = dynamic(() => import('react-datepicker')) +const LazyDatePicker = loadable(() => import('react-datepicker')) export function getWidgetValue( date1: Date, diff --git a/src/components/atoms/FormWidgets/TermsWidget.tsx b/src/components/atoms/FormWidgets/TermsWidget.tsx index a95a88dcd..cb6383aa4 100644 --- a/src/components/atoms/FormWidgets/TermsWidget.tsx +++ b/src/components/atoms/FormWidgets/TermsWidget.tsx @@ -1,8 +1,6 @@ import React from 'react' import { WidgetProps } from 'react-jsonschema-form' import styles from './TermsWidget.module.css' -import Markdown from '../Markdown' -import terms from '../../../../content/terms.md' export default function TermsWidget(props: WidgetProps) { const { @@ -21,7 +19,7 @@ export default function TermsWidget(props: WidgetProps) { return ( <> - + {/* */}