From b1222962f02b82c81f4dfe18c2ca72b497d16f0b Mon Sep 17 00:00:00 2001 From: Tomek Date: Sun, 22 Jul 2018 20:53:22 +0200 Subject: [PATCH] update client-only-render-external-dependency example (#4822) Changes: * use `dynamic` imports instead of `require` * update `recharts` dependency --- .../components/BarChart.js | 12 ++++ .../components/LineChart.js | 12 ++++ .../package.json | 2 +- .../pages/chart.js | 55 +++++------------ .../pages/index.js | 60 ++++++------------- 5 files changed, 60 insertions(+), 81 deletions(-) create mode 100644 examples/only-client-render-external-dependencies/components/BarChart.js create mode 100644 examples/only-client-render-external-dependencies/components/LineChart.js diff --git a/examples/only-client-render-external-dependencies/components/BarChart.js b/examples/only-client-render-external-dependencies/components/BarChart.js new file mode 100644 index 0000000000000..4c98f707094f8 --- /dev/null +++ b/examples/only-client-render-external-dependencies/components/BarChart.js @@ -0,0 +1,12 @@ +import dynamic from 'next/dynamic' + +export default dynamic({ + modules: () => ({ + BarChart: import('recharts').then(({ BarChart }) => BarChart), + Bar: import('recharts').then(({ Bar }) => Bar) + }), + render: (props, { BarChart, Bar }) => + + + +}) diff --git a/examples/only-client-render-external-dependencies/components/LineChart.js b/examples/only-client-render-external-dependencies/components/LineChart.js new file mode 100644 index 0000000000000..daedb0d6e6196 --- /dev/null +++ b/examples/only-client-render-external-dependencies/components/LineChart.js @@ -0,0 +1,12 @@ +import dynamic from 'next/dynamic' + +export default dynamic({ + modules: () => ({ + LineChart: import('recharts').then(({ LineChart }) => LineChart), + Line: import('recharts').then(({ Line }) => Line) + }), + render: (props, { LineChart, Line }) => + + + +}) diff --git a/examples/only-client-render-external-dependencies/package.json b/examples/only-client-render-external-dependencies/package.json index 267515f1f70ba..e9ccc78a58753 100644 --- a/examples/only-client-render-external-dependencies/package.json +++ b/examples/only-client-render-external-dependencies/package.json @@ -10,7 +10,7 @@ "next": "latest", "react": "^16.0.0", "react-dom": "^16.0.0", - "recharts": "^1.0.0-beta.0" + "recharts": "^1.1.0" }, "license": "ISC" } diff --git a/examples/only-client-render-external-dependencies/pages/chart.js b/examples/only-client-render-external-dependencies/pages/chart.js index 02ca076df6034..6a8f4c7682285 100644 --- a/examples/only-client-render-external-dependencies/pages/chart.js +++ b/examples/only-client-render-external-dependencies/pages/chart.js @@ -1,44 +1,21 @@ import React from 'react' -let LineChart -let Line -class Chart extends React.Component { - constructor () { - super() - this.state = { - chart: false, - data: [ - {name: 'Page A', uv: 4000, pv: 2400, amt: 2400}, - {name: 'Page B', uv: 3000, pv: 1398, amt: 2210}, - {name: 'Page C', uv: 2000, pv: 9800, amt: 2290}, - {name: 'Page D', uv: 2780, pv: 3908, amt: 2000}, - {name: 'Page E', uv: 1890, pv: 4800, amt: 2181}, - {name: 'Page F', uv: 2390, pv: 3800, amt: 2500}, - {name: 'Page G', uv: 3490, pv: 4300, amt: 2100} - ] - } - } +import BarChart from '../components/BarChart' - componentDidMount () { - LineChart = require('recharts').LineChart - Line = require('recharts').Line +const data = [ + {name: 'Page A', uv: 4000, pv: 2400, amt: 2400}, + {name: 'Page B', uv: 3000, pv: 1398, amt: 2210}, + {name: 'Page C', uv: 2000, pv: 9800, amt: 2290}, + {name: 'Page D', uv: 2780, pv: 3908, amt: 2000}, + {name: 'Page E', uv: 1890, pv: 4800, amt: 2181}, + {name: 'Page F', uv: 2390, pv: 3800, amt: 2500}, + {name: 'Page G', uv: 3490, pv: 4300, amt: 2100} +] - this.setState({ - chart: true - }) - } - - render () { - return ( -
-

Another chart

- {this.state.chart && - - - - } -
- ) - } -} +const Chart = () => ( +
+

Another chart

+ +
+) export default Chart diff --git a/examples/only-client-render-external-dependencies/pages/index.js b/examples/only-client-render-external-dependencies/pages/index.js index dde405c35fdc0..25bda312ec329 100644 --- a/examples/only-client-render-external-dependencies/pages/index.js +++ b/examples/only-client-render-external-dependencies/pages/index.js @@ -1,47 +1,25 @@ import React from 'react' import Link from 'next/link' -let LineChart -let Line +import LineChart from '../components/LineChart' -class Index extends React.Component { - constructor () { - super() - this.state = { - chart: false, - data: [ - {name: 'Page A', uv: 1000, pv: 2400, amt: 2400}, - {name: 'Page B', uv: 3000, pv: 1398, amt: 2210}, - {name: 'Page C', uv: 2000, pv: 9800, amt: 2290}, - {name: 'Page D', uv: 2780, pv: 3908, amt: 2000}, - {name: 'Page E', uv: 1890, pv: 4800, amt: 2181}, - {name: 'Page F', uv: 2390, pv: 3800, amt: 2500}, - {name: 'Page G', uv: 3490, pv: 4300, amt: 2100} - ] - } - } +const data = [ + {name: 'Page A', uv: 1000, pv: 2400, amt: 2400}, + {name: 'Page B', uv: 3000, pv: 1398, amt: 2210}, + {name: 'Page C', uv: 2000, pv: 9800, amt: 2290}, + {name: 'Page D', uv: 2780, pv: 3908, amt: 2000}, + {name: 'Page E', uv: 1890, pv: 4800, amt: 2181}, + {name: 'Page F', uv: 2390, pv: 3800, amt: 2500}, + {name: 'Page G', uv: 3490, pv: 4300, amt: 2100} +] - componentDidMount () { - LineChart = require('recharts').LineChart - Line = require('recharts').Line - - this.setState({ - chart: true - }) - } - - render () { - return ( -
-

Chart

- Go to another chart - {this.state.chart && - - - - } -
- ) - } -} +const Index = () => ( +
+

Chart

+ + Go to another chart + + +
+) export default Index