From 812e391e3411976c7a735e2d4d9a0fb5a1d24c4c Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Fri, 19 Oct 2018 19:04:22 +0200 Subject: [PATCH] Moved helper functions in GraphCard outside of component function --- src/visits/GraphCard.js | 83 +++++++++++++++--------------- src/visits/ShortUrlVisits.js | 2 +- test/visits/GraphCard.test.js | 2 +- test/visits/ShortUrlVisits.test.js | 2 +- 4 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/visits/GraphCard.js b/src/visits/GraphCard.js index e1a814da..f0c5f49b 100644 --- a/src/visits/GraphCard.js +++ b/src/visits/GraphCard.js @@ -10,49 +10,50 @@ const propTypes = { stats: PropTypes.object, }; -export function GraphCard({ title, isBarChart, stats }) { - const generateGraphData = (stats) => ({ - labels: keys(stats), - datasets: [ - { - title, - data: values(stats), - backgroundColor: isBarChart ? 'rgba(70, 150, 229, 0.4)' : [ - '#97BBCD', - '#DCDCDC', - '#F7464A', - '#46BFBD', - '#FDB45C', - '#949FB1', - '#4D5360', - ], - borderColor: isBarChart ? 'rgba(70, 150, 229, 1)' : 'white', - borderWidth: 2, - }, - ], - }); - const renderGraph = () => { - const Component = isBarChart ? HorizontalBar : Doughnut; - const options = { - legend: isBarChart ? { display: false } : { position: 'right' }, - scales: isBarChart ? { - xAxes: [ - { - ticks: { beginAtZero: true }, - }, - ], - } : null, - }; +const generateGraphData = (title, isBarChart, stats) => ({ + labels: keys(stats), + datasets: [ + { + title, + data: values(stats), + backgroundColor: isBarChart ? 'rgba(70, 150, 229, 0.4)' : [ + '#97BBCD', + '#DCDCDC', + '#F7464A', + '#46BFBD', + '#FDB45C', + '#949FB1', + '#4D5360', + ], + borderColor: isBarChart ? 'rgba(70, 150, 229, 1)' : 'white', + borderWidth: 2, + }, + ], +}); - return ; +const renderGraph = (title, isBarChart, stats) => { + const Component = isBarChart ? HorizontalBar : Doughnut; + const options = { + legend: isBarChart ? { display: false } : { position: 'right' }, + scales: isBarChart ? { + xAxes: [ + { + ticks: { beginAtZero: true }, + }, + ], + } : null, }; - return ( - - {title} - {renderGraph()} - - ); -} + return ; +}; + +const GraphCard = ({ title, isBarChart, stats }) => ( + + {title} + {renderGraph(title, isBarChart, stats)} + +); GraphCard.propTypes = propTypes; + +export default GraphCard; diff --git a/src/visits/ShortUrlVisits.js b/src/visits/ShortUrlVisits.js index 11256c0e..72d162cb 100644 --- a/src/visits/ShortUrlVisits.js +++ b/src/visits/ShortUrlVisits.js @@ -15,7 +15,7 @@ import { processReferrersStats, } from './services/VisitsParser'; import { VisitsHeader } from './VisitsHeader'; -import { GraphCard } from './GraphCard'; +import GraphCard from './GraphCard'; import { getShortUrlDetail, shortUrlDetailType } from './reducers/shortUrlDetail'; import './ShortUrlVisits.scss'; diff --git a/test/visits/GraphCard.test.js b/test/visits/GraphCard.test.js index 50d2ae14..61fda396 100644 --- a/test/visits/GraphCard.test.js +++ b/test/visits/GraphCard.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { Doughnut, HorizontalBar } from 'react-chartjs-2'; import { keys, values } from 'ramda'; -import { GraphCard } from '../../src/visits/GraphCard'; +import GraphCard from '../../src/visits/GraphCard'; describe('', () => { let wrapper; diff --git a/test/visits/ShortUrlVisits.test.js b/test/visits/ShortUrlVisits.test.js index d7d2a3e8..56837968 100644 --- a/test/visits/ShortUrlVisits.test.js +++ b/test/visits/ShortUrlVisits.test.js @@ -5,7 +5,7 @@ import { Card } from 'reactstrap'; import * as sinon from 'sinon'; import { ShortUrlsVisitsComponent as ShortUrlsVisits } from '../../src/visits/ShortUrlVisits'; import MutedMessage from '../../src/utils/MuttedMessage'; -import { GraphCard } from '../../src/visits/GraphCard'; +import GraphCard from '../../src/visits/GraphCard'; import DateInput from '../../src/common/DateInput'; describe('', () => {