blob: 46ea7eb0f6a01f57a465d3c281b8107d9411c353 [file] [log] [blame]
/*
* Copyright (c) 2018 StreamNative. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React, { Component } from 'react';
import { CardGroup, Col, Row } from 'reactstrap';
import Widget01 from './Widget01';
import Widget02 from './Widget02';
import Widget03 from './Widget03';
import Widget04 from './Widget04';
import { Line } from 'react-chartjs-2';
// Brand Card Chart
const makeSocialBoxData = (dataSetNo) => {
const socialBoxData = [
{ data: [65, 59, 84, 84, 51, 55, 40], label: 'facebook' },
{ data: [1, 13, 9, 17, 34, 41, 38], label: 'twitter' },
{ data: [78, 81, 80, 45, 34, 12, 40], label: 'linkedin' },
{ data: [35, 23, 56, 22, 97, 23, 64], label: 'google' },
];
const dataset = socialBoxData[dataSetNo];
const data = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
backgroundColor: 'rgba(255,255,255,.1)',
borderColor: 'rgba(255,255,255,.55)',
pointHoverBackgroundColor: '#fff',
borderWidth: 2,
data: dataset.data,
label: dataset.label,
},
],
};
return () => data;
};
const socialChartOpts = {
responsive: true,
maintainAspectRatio: false,
legend: {
display: false,
},
scales: {
xAxes: [
{
display: false,
}],
yAxes: [
{
display: false,
}],
},
elements: {
point: {
radius: 0,
hitRadius: 10,
hoverRadius: 4,
hoverBorderWidth: 3,
},
},
};
class Widgets extends Component {
render() {
return (
<div className="animated fadeIn">
<Row>
<Col xs="12" sm="6" lg="3">
<Widget01 color="success" header="89.9%" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget01 color="info" header="12.124" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget01 color="warning" header="$98.111,00" smallText="">
<small className="text-muted">Excepteur sint occaecat...</small>
</Widget01>
</Col>
<Col xs="12" sm="6" lg="3">
<Widget01 color="danger" value="95" header="1.9 TB" mainText="Danger!"
smallText="This is your final warning..." />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget01 color="primary" variant="inverse" header="89.9%" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget01 color="warning" variant="inverse" header="12.124" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget01 color="danger" variant="inverse" header="$98.111,00" smallText="">
<small className="text-muted">Excepteur sint occaecat...</small>
</Widget01>
</Col>
<Col xs="12" sm="6" lg="3">
<Widget01 color="info" variant="inverse" value="95" header="1.9 TB" mainText="Danger!"
smallText="This is your final warning..." />
</Col>
</Row>
<Row>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-cogs" color="primary" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-laptop" color="info" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-moon-o" color="warning" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-bell" color="danger" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-cogs" color="primary" footer link="#/charts" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-laptop" color="info" footer />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-moon-o" color="warning" footer />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-bell" color="danger" footer />
</Col>
</Row>
<Row>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-cogs" color="primary" variant="1" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-laptop" color="info" variant="1" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-moon-o" color="warning" variant="1" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-bell" color="danger" variant="1" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-cogs" color="primary" variant="2" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-laptop" color="info" variant="2" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-moon-o" color="warning" variant="2" />
</Col>
<Col xs="12" sm="6" lg="3">
<Widget02 header="$1.999,50" mainText="Income" icon="fa fa-bell" color="danger" variant="2" />
</Col>
</Row>
<Row>
<Col xs={12} sm={6} md={3}>
<Widget03 dataBox={() => ({ variant: 'facebook', friends: '89k', feeds: '459' })} >
<div className="chart-wrapper">
<Line data={makeSocialBoxData(0)} options={socialChartOpts} height={90} />
</div>
</Widget03>
</Col>
<Col xs={12} sm={6} md={3}>
<Widget03 dataBox={() => ({ variant: 'twitter', followers: '973k', tweets: '1.792' })} >
<div className="chart-wrapper">
<Line data={makeSocialBoxData(1)} options={socialChartOpts} height={90} />
</div>
</Widget03>
</Col>
<Col xs={12} sm={6} md={3}>
<Widget03 dataBox={() => ({ variant: 'linkedin', contacts: '500+', feeds: '292' })} >
<div className="chart-wrapper">
<Line data={makeSocialBoxData(2)} options={socialChartOpts} height={90} />
</div>
</Widget03>
</Col>
<Col xs={12} sm={6} md={3}>
<Widget03 dataBox={() => ({ variant: 'google-plus', followers: '894', circles: '92' })} >
<div className="chart-wrapper">
<Line data={makeSocialBoxData(3)} options={socialChartOpts} height={90} />
</div>
</Widget03>
</Col>
</Row>
<CardGroup className="mb-4">
<Widget04 icon="icon-people" color="info" header="87.500" value="25">Visitors</Widget04>
<Widget04 icon="icon-user-follow" color="success" header="385" value="25">New Clients</Widget04>
<Widget04 icon="icon-basket-loaded" color="warning" header="1238" value="25">Products sold</Widget04>
<Widget04 icon="icon-pie-chart" color="primary" header="28%" value="25">Returning Visitors</Widget04>
<Widget04 icon="icon-speedometer" color="danger" header="5:34:11" value="25">Avg. Time</Widget04>
</CardGroup>
<Row>
<Col sm="6" md="2">
<Widget04 icon="icon-people" color="info" header="87.500" value="25">Visitors</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-user-follow" color="success" header="385" value="25">New Clients</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-basket-loaded" color="warning" header="1238" value="25">Products sold</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-pie-chart" color="primary" header="28%" value="25">Returning Visitors</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-speedometer" color="danger" header="5:34:11" value="25">Avg. Time</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-speech" color="info" header="972" value="25">Comments</Widget04>
</Col>
</Row>
<Row>
<Col sm="6" md="2">
<Widget04 icon="icon-people" color="info" header="87.500" value="25" invert>Visitors</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-user-follow" color="success" header="385" value="25" invert>New Clients</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-basket-loaded" color="warning" header="1238" value="25" invert>Products sold</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-pie-chart" color="primary" header="28%" value="25" invert>Returning Visitors</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-speedometer" color="danger" header="5:34:11" value="25" invert>Avg. Time</Widget04>
</Col>
<Col sm="6" md="2">
<Widget04 icon="icon-speech" color="info" header="972" value="25" invert>Comments</Widget04>
</Col>
</Row>
</div>
);
}
}
export default Widgets;