Home Reference Source

src/pages/Historical/index.js

import React from 'react';
import { connect } from 'react-redux';
import * as actions from '../../actions/sync';
import { getHistoricalChartsArray, getMetrics } from '../../reducers';
import AddHistoricalChart from '../../containers/AddHistoricalChart';
import { HistoricalChart } from '../../components/Chart';
import NoCharts from '../../components/NoCharts';

const Live = ({
    addHistoricalChartHost1, addHistoricalChartHost2, removeHistoricalChartHost1,
    removeHistoricalChartHost2, setHistoricalChartMetric1, setHistoricalChartMetric2,
    removeHistoricalChart, setHistoricalChartRange, metrics, charts
}) => (
    <div className="full-page">
        <h1>Pomiary historyczne</h1>
        <AddHistoricalChart />
        {charts.length ? charts.map(c => (
            <HistoricalChart
                key={c.id}
                onMetric1Changed={(metric) => setHistoricalChartMetric1({ metric }, c.id)}
                onMetric2Changed={(metric) => setHistoricalChartMetric2({ metric }, c.id)}
                onHostAddedToMetric1={host => addHistoricalChartHost1({ host }, c.id)}
                onHostAddedToMetric2={host => addHistoricalChartHost2({ host }, c.id)}
                onHostDismissedFromMetric1={host => removeHistoricalChartHost1(c.id, host)}
                onHostDismissedFromMetric2={host => removeHistoricalChartHost2(c.id, host)}
                onRangeChanged={(start, end) => setHistoricalChartRange({ start, end }, c.id)}
                onChartClosed={() => removeHistoricalChart(c.id)}
                metrics={metrics}
                {...c}
            />
        )) : <NoCharts />}
    </div>
);

const mapStateToProps = (state) => ({
    charts: getHistoricalChartsArray(state),
    metrics: getMetrics(state)
});

const mapDispatchToProps = {
    addHistoricalChartHost1: actions.addHistoricalChartHost1,
    addHistoricalChartHost2: actions.addHistoricalChartHost2,
    removeHistoricalChartHost1: actions.removeHistoricalChartHost1,
    removeHistoricalChartHost2: actions.removeHistoricalChartHost2,
    setHistoricalChartMetric1: actions.setHistoricalChartMetric1,
    setHistoricalChartMetric2: actions.setHistoricalChartMetric2,
    removeHistoricalChart: actions.removeHistoricalChart,
    setHistoricalChartRange: actions.setHistoricalChartRange
};

export default connect(mapStateToProps, mapDispatchToProps)(Live);