Skip to content

Commit 0bfa29e

Browse files
authored
Merge pull request #16 from xendora/charts-example
Added Advanced examples
2 parents d39692e + 87f8b29 commit 0bfa29e

File tree

4 files changed

+228
-0
lines changed

4 files changed

+228
-0
lines changed

docs/advanced-examples.mdx

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
name: Advanced Examples
3+
route: /advanced-examples
4+
order: 4
5+
---
6+
7+
# Advanced Examples
8+
9+
import { Playground } from 'docz'
10+
import ReactTimer from '../src/index'
11+
import ChartsExample from './charts-example'
12+
13+
## Line graph
14+
A line graph that periodically updates itself
15+
16+
<ChartsExample />
17+
18+
```js
19+
import React from 'react';
20+
import { Chart } from 'react-charts';
21+
import ReactTimer from '@xendora/react-timer';
22+
23+
const MyChart = () => {
24+
const coords = [[0, 0]];
25+
26+
const axes = React.useMemo(
27+
() => [
28+
{ primary: true, type: 'linear', position: 'bottom' },
29+
{ type: 'linear', position: 'left' },
30+
],
31+
[],
32+
);
33+
34+
const renderChart = (value) => {
35+
const ar = [value, (Math.random() * 10).toFixed(0)];
36+
coords.push(ar);
37+
return (
38+
<Chart
39+
data={[
40+
{
41+
label: 'Series 1',
42+
data: coords,
43+
},
44+
]}
45+
axes={axes}
46+
/>
47+
);
48+
};
49+
50+
return (
51+
<div
52+
style={{
53+
width: '100%',
54+
height: '300px',
55+
}}
56+
>
57+
<ReactTimer
58+
start={0}
59+
end={(value) => value === 10}
60+
onTick={(value) => value + 1}
61+
>
62+
{(value) => renderChart(value)}
63+
</ReactTimer>
64+
</div>
65+
);
66+
};
67+
68+
69+
export default MyChart;
70+
```

docs/charts-example.jsx

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/* eslint-disable no-debugger */
2+
import React from 'react';
3+
import { Chart } from 'react-charts';
4+
import ReactTimer from '../src';
5+
6+
const MyChart = () => {
7+
const coords = [[0, 0]];
8+
9+
const axes = React.useMemo(
10+
() => [
11+
{ primary: true, type: 'linear', position: 'bottom' },
12+
{ type: 'linear', position: 'left' },
13+
],
14+
[],
15+
);
16+
17+
const renderChart = (value) => {
18+
const ar = [value, (Math.random() * 10).toFixed(0)];
19+
coords.push(ar);
20+
return (
21+
<Chart
22+
data={[
23+
{
24+
label: 'Series 1',
25+
data: coords,
26+
},
27+
]}
28+
axes={axes}
29+
/>
30+
);
31+
};
32+
33+
return (
34+
<div
35+
style={{
36+
width: '100%',
37+
height: '300px',
38+
}}
39+
>
40+
<ReactTimer
41+
start={0}
42+
end={(value) => value === 10}
43+
onTick={(value) => value + 1}
44+
>
45+
{(value) => renderChart(value)}
46+
</ReactTimer>
47+
</div>
48+
);
49+
};
50+
51+
52+
export default MyChart;

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"eslint-plugin-react-hooks": "^2.1.2",
7272
"gh-pages": "^2.1.1",
7373
"react": "^16.10.2",
74+
"react-charts": "^2.0.0-beta.4",
7475
"react-dom": "^16.10.2",
7576
"react-live": "^2.2.1",
7677
"rollup": "^1.20.3",

yarn.lock

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1164,6 +1164,11 @@
11641164
string-width "^2.0.0"
11651165
strip-ansi "^3"
11661166

1167+
"@reach/observe-rect@^1.0.3":
1168+
version "1.0.3"
1169+
resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.0.3.tgz#2ea3dcc369ab22bd9f050a92ea319321356a61e8"
1170+
integrity sha1-LqPcw2mrIr2fBQqS6jGTITVqYeg=
1171+
11671172
"@reach/router@^1.2.1":
11681173
version "1.2.1"
11691174
resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e"
@@ -3858,6 +3863,75 @@ cyclist@^1.0.1:
38583863
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
38593864
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
38603865

3866+
3867+
version "2.3.2"
3868+
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.3.2.tgz#4a943835e5f35ad00ef0a90e79d2c7a990be9d71"
3869+
integrity sha512-cg73UOh7D7e72FQQER4l5aXnEwlizah8TIggMn8qtEO/7APe5s6bAZhlDlVw0BRml6Qi4bd44WJ5HGuiK7fRyw==
3870+
3871+
d3-color@1:
3872+
version "1.4.0"
3873+
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.0.tgz#89c45a995ed773b13314f06460df26d60ba0ecaf"
3874+
integrity sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg==
3875+
3876+
d3-delaunay@^4.1.5:
3877+
version "4.1.5"
3878+
resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-4.1.5.tgz#4318c6d28b22988d88d11650eda440318afe419a"
3879+
integrity sha512-rBKVohmXT9+BrDicH8umAVUwtkfLIydVlWnpIEDUZ4l2e1vXCaKbypByF8tkN8TUUKnzJY0s8ldQEroeBRMO9Q==
3880+
dependencies:
3881+
delaunator "^2.0.0"
3882+
3883+
d3-format@1:
3884+
version "1.4.1"
3885+
resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.1.tgz#c45f74b17c5a290c072a4ba7039dd19662cd5ce6"
3886+
integrity sha512-TUswGe6hfguUX1CtKxyG2nymO+1lyThbkS1ifLX0Sr+dOQtAD5gkrffpHnx+yHNKUZ0Bmg5T4AjUQwugPDrm0g==
3887+
3888+
d3-interpolate@1:
3889+
version "1.3.2"
3890+
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68"
3891+
integrity sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w==
3892+
dependencies:
3893+
d3-color "1"
3894+
3895+
d3-path@1:
3896+
version "1.0.8"
3897+
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.8.tgz#4a0606a794d104513ec4a8af43525f374b278719"
3898+
integrity sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg==
3899+
3900+
d3-scale@^3.0.0:
3901+
version "3.1.0"
3902+
resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.1.0.tgz#e8af005101502dbf26c505d9f40cf88bcb75b2e1"
3903+
integrity sha512-3edyEBwbwQG400VbgaepQC9ZYFX3h92flLHIUa1+nvZp/mqCYdxNM9zGTjKtPcSAuBCyPePdMQOapsD0qNALrg==
3904+
dependencies:
3905+
d3-array "1.2.0 - 2"
3906+
d3-format "1"
3907+
d3-interpolate "1"
3908+
d3-time "1"
3909+
d3-time-format "2"
3910+
3911+
d3-shape@^1.3.5:
3912+
version "1.3.5"
3913+
resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.5.tgz#e81aea5940f59f0a79cfccac012232a8987c6033"
3914+
integrity sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg==
3915+
dependencies:
3916+
d3-path "1"
3917+
3918+
d3-time-format@2:
3919+
version "2.1.3"
3920+
resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.3.tgz#ae06f8e0126a9d60d6364eac5b1533ae1bac826b"
3921+
integrity sha512-6k0a2rZryzGm5Ihx+aFMuO1GgelgIz+7HhB4PH4OEndD5q2zGn1mDfRdNrulspOfR6JXkb2sThhDK41CSK85QA==
3922+
dependencies:
3923+
d3-time "1"
3924+
3925+
d3-time@1:
3926+
version "1.1.0"
3927+
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1"
3928+
integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==
3929+
3930+
d3-voronoi@^1.1.2:
3931+
version "1.1.4"
3932+
resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297"
3933+
integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==
3934+
38613935
damerau-levenshtein@^1.0.4:
38623936
version "1.0.5"
38633937
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414"
@@ -4057,6 +4131,11 @@ del@^5.1.0:
40574131
rimraf "^3.0.0"
40584132
slash "^3.0.0"
40594133

4134+
delaunator@^2.0.0:
4135+
version "2.0.5"
4136+
resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-2.0.5.tgz#c2a9ba2cf3d5aaab8fa0aa3ae82426d3fc0aeaf5"
4137+
integrity sha512-GSYmkITO56erpQzv5Pw+8Vg769kurM16IVUq/AcMb5ZCJCtV7Z2agx9lJ7EbbLno8L099iH2d+hvAK34ZnsvIQ==
4138+
40604139
delayed-stream@~1.0.0:
40614140
version "1.0.0"
40624141
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -10522,6 +10601,13 @@ quick-lru@^1.0.0:
1052210601
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
1052310602
integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=
1052410603

10604+
raf@^3.4.1:
10605+
version "3.4.1"
10606+
resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
10607+
integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
10608+
dependencies:
10609+
performance-now "^2.1.0"
10610+
1052510611
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
1052610612
version "2.1.0"
1052710613
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -10602,6 +10688,20 @@ react-ace@^7.0.2:
1060210688
lodash.isequal "^4.5.0"
1060310689
prop-types "^15.7.2"
1060410690

10691+
react-charts@^2.0.0-beta.4:
10692+
version "2.0.0-beta.4"
10693+
resolved "https://registry.yarnpkg.com/react-charts/-/react-charts-2.0.0-beta.4.tgz#7c03c09dc7f6b2a093f2b722c6dc0844a1903c88"
10694+
integrity sha512-eOwZy+XNjtUKAwBmTn2PXNgYxU9dhJNYvq6/ixUI/Km5YJbZEgRnkp0VpnH6rmnrj9U2kzS5umeys8IbRNMJfg==
10695+
dependencies:
10696+
"@babel/runtime" "^7.4.5"
10697+
"@reach/observe-rect" "^1.0.3"
10698+
d3-delaunay "^4.1.5"
10699+
d3-scale "^3.0.0"
10700+
d3-shape "^1.3.5"
10701+
d3-voronoi "^1.1.2"
10702+
raf "^3.4.1"
10703+
use-react-hooks "^1.0.6"
10704+
1060510705
react-dev-utils@^4.2.3:
1060610706
version "4.2.3"
1060710707
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-4.2.3.tgz#5b42d9ea58d5e9e017a2f57a40a8af408a3a46fb"
@@ -13344,6 +13444,11 @@ url@^0.11.0:
1334413444
punycode "1.3.2"
1334513445
querystring "0.2.0"
1334613446

13447+
use-react-hooks@^1.0.6:
13448+
version "1.0.7"
13449+
resolved "https://registry.yarnpkg.com/use-react-hooks/-/use-react-hooks-1.0.7.tgz#57a3948dcddf721eaf19b80a1cc060171e00f0f1"
13450+
integrity sha512-QMV4FM3SRwauPYAGcGKvXFzw7u1rqTaI4hibwv9eiX5QlHP5bb2EIlO0XflBE1aAsxAdgvxlbmqVPye4+7+QIA==
13451+
1334713452
use@^3.1.0:
1334813453
version "3.1.1"
1334913454
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"

0 commit comments

Comments
 (0)