import React, { Component, lazy, Suspense } from 'react';
import { Bar, Line } from 'react-chartjs-2';
import {
Badge,
Button,
ButtonDropdown,
ButtonGroup,
ButtonToolbar,
Card,
CardBody,
CardFooter,
CardHeader,
CardTitle,
Col,
Dropdown,
DropdownItem,
DropdownMenu,
DropdownToggle,
Progress,
Row,
Table,
} from 'reactstrap';
import { CustomTooltips } from '@coreui/coreui-plugin-chartjs-custom-tooltips';
import { getStyle, hexToRgba } from '@coreui/coreui/dist/js/coreui-utilities'
// import Widget03 from '../../views/Widgets/Widget03'
const Widget03 = lazy(() => import('../../views/Widgets/Widget03'));
const Loading = () =>
Loading...
const brandPrimary = getStyle('--primary')
const brandSuccess = getStyle('--success')
const brandInfo = getStyle('--info')
const brandWarning = getStyle('--warning')
const brandDanger = getStyle('--danger')
// Card Chart 1
const cardChartData1 = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'My First dataset',
backgroundColor: brandPrimary,
borderColor: 'rgba(255,255,255,.55)',
data: [65, 59, 84, 84, 51, 55, 40],
},
],
};
const cardChartOpts1 = {
tooltips: {
enabled: false,
custom: CustomTooltips
},
maintainAspectRatio: false,
legend: {
display: false,
},
scales: {
xAxes: [
{
gridLines: {
color: 'transparent',
zeroLineColor: 'transparent',
},
ticks: {
fontSize: 2,
fontColor: 'transparent',
},
}],
yAxes: [
{
display: false,
ticks: {
display: false,
min: Math.min.apply(Math, cardChartData1.datasets[0].data) - 5,
max: Math.max.apply(Math, cardChartData1.datasets[0].data) + 5,
},
}],
},
elements: {
line: {
borderWidth: 1,
},
point: {
radius: 4,
hitRadius: 10,
hoverRadius: 4,
},
}
}
// Card Chart 2
const cardChartData2 = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'My First dataset',
backgroundColor: brandInfo,
borderColor: 'rgba(255,255,255,.55)',
data: [1, 18, 9, 17, 34, 22, 11],
},
],
};
const cardChartOpts2 = {
tooltips: {
enabled: false,
custom: CustomTooltips
},
maintainAspectRatio: false,
legend: {
display: false,
},
scales: {
xAxes: [
{
gridLines: {
color: 'transparent',
zeroLineColor: 'transparent',
},
ticks: {
fontSize: 2,
fontColor: 'transparent',
},
}],
yAxes: [
{
display: false,
ticks: {
display: false,
min: Math.min.apply(Math, cardChartData2.datasets[0].data) - 5,
max: Math.max.apply(Math, cardChartData2.datasets[0].data) + 5,
},
}],
},
elements: {
line: {
tension: 0.00001,
borderWidth: 1,
},
point: {
radius: 4,
hitRadius: 10,
hoverRadius: 4,
},
},
};
// Card Chart 3
const cardChartData3 = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'My First dataset',
backgroundColor: 'rgba(255,255,255,.2)',
borderColor: 'rgba(255,255,255,.55)',
data: [78, 81, 80, 45, 34, 12, 40],
},
],
};
const cardChartOpts3 = {
tooltips: {
enabled: false,
custom: CustomTooltips
},
maintainAspectRatio: false,
legend: {
display: false,
},
scales: {
xAxes: [
{
display: false,
}],
yAxes: [
{
display: false,
}],
},
elements: {
line: {
borderWidth: 2,
},
point: {
radius: 0,
hitRadius: 10,
hoverRadius: 4,
},
},
};
// Card Chart 4
const cardChartData4 = {
labels: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
datasets: [
{
label: 'My First dataset',
backgroundColor: 'rgba(255,255,255,.3)',
borderColor: 'transparent',
data: [78, 81, 80, 45, 34, 12, 40, 75, 34, 89, 32, 68, 54, 72, 18, 98],
},
],
};
const cardChartOpts4 = {
tooltips: {
enabled: false,
custom: CustomTooltips
},
maintainAspectRatio: false,
legend: {
display: false,
},
scales: {
xAxes: [
{
display: false,
barPercentage: 0.6,
}],
yAxes: [
{
display: false,
}],
},
};
// Social Box Chart
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 makeSocialBoxData = (dataSetNo) => {
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 = {
tooltips: {
enabled: false,
custom: CustomTooltips
},
responsive: true,
maintainAspectRatio: false,
legend: {
display: false,
},
scales: {
xAxes: [
{
display: false,
}],
yAxes: [
{
display: false,
}],
},
elements: {
point: {
radius: 0,
hitRadius: 10,
hoverRadius: 4,
hoverBorderWidth: 3,
},
},
};
// sparkline charts
const sparkLineChartData = [
{
data: [35, 23, 56, 22, 97, 23, 64],
label: 'New Clients',
},
{
data: [65, 59, 84, 84, 51, 55, 40],
label: 'Recurring Clients',
},
{
data: [35, 23, 56, 22, 97, 23, 64],
label: 'Pageviews',
},
{
data: [65, 59, 84, 84, 51, 55, 40],
label: 'Organic',
},
{
data: [78, 81, 80, 45, 34, 12, 40],
label: 'CTR',
},
{
data: [1, 13, 9, 17, 34, 41, 38],
label: 'Bounce Rate',
},
];
const makeSparkLineData = (dataSetNo, variant) => {
const dataset = sparkLineChartData[dataSetNo];
const data = {
labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
datasets: [
{
backgroundColor: 'transparent',
borderColor: variant ? variant : '#c2cfd6',
data: dataset.data,
label: dataset.label,
},
],
};
return () => data;
};
const sparklineChartOpts = {
tooltips: {
enabled: false,
custom: CustomTooltips
},
responsive: true,
maintainAspectRatio: true,
scales: {
xAxes: [
{
display: false,
}],
yAxes: [
{
display: false,
}],
},
elements: {
line: {
borderWidth: 2,
},
point: {
radius: 0,
hitRadius: 10,
hoverRadius: 4,
hoverBorderWidth: 3,
},
},
legend: {
display: false,
},
};
// Main Chart
//Random Numbers
function random(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
var elements = 27;
var data1 = [];
var data2 = [];
var data3 = [];
for (var i = 0; i <= elements; i++) {
data1.push(random(50, 200));
data2.push(random(80, 100));
data3.push(65);
}
const mainChart = {
labels: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
datasets: [
{
label: 'My First dataset',
backgroundColor: hexToRgba(brandInfo, 10),
borderColor: brandInfo,
pointHoverBackgroundColor: '#fff',
borderWidth: 2,
data: data1,
},
{
label: 'My Second dataset',
backgroundColor: 'transparent',
borderColor: brandSuccess,
pointHoverBackgroundColor: '#fff',
borderWidth: 2,
data: data2,
},
{
label: 'My Third dataset',
backgroundColor: 'transparent',
borderColor: brandDanger,
pointHoverBackgroundColor: '#fff',
borderWidth: 1,
borderDash: [8, 5],
data: data3,
},
],
};
const mainChartOpts = {
tooltips: {
enabled: false,
custom: CustomTooltips,
intersect: true,
mode: 'index',
position: 'nearest',
callbacks: {
labelColor: function(tooltipItem, chart) {
return { backgroundColor: chart.data.datasets[tooltipItem.datasetIndex].borderColor }
}
}
},
maintainAspectRatio: false,
legend: {
display: false,
},
scales: {
xAxes: [
{
gridLines: {
drawOnChartArea: false,
},
}],
yAxes: [
{
ticks: {
beginAtZero: true,
maxTicksLimit: 5,
stepSize: Math.ceil(250 / 5),
max: 250,
},
}],
},
elements: {
point: {
radius: 0,
hitRadius: 10,
hoverRadius: 4,
hoverBorderWidth: 3,
},
},
};
class Dashboard extends Component {
constructor(props) {
super(props);
this.toggle = this.toggle.bind(this);
this.onRadioBtnClick = this.onRadioBtnClick.bind(this);
this.state = {
dropdownOpen: false,
radioSelected: 2,
};
}
toggle() {
this.setState({
dropdownOpen: !this.state.dropdownOpen,
});
}
onRadioBtnClick(radioSelected) {
this.setState({
radioSelected: radioSelected,
});
}
render() {
return (
{ this.setState({ card1: !this.state.card1 }); }}>
Action
Another action
Disabled action
Something else here
9.823
Members online
{ this.setState({ card2: !this.state.card2 }); }}>
Action
Another action
Something else here
9.823
Members online
{ this.setState({ card3: !this.state.card3 }); }}>
Action
Another action
Something else here
9.823
Members online
{ this.setState({ card4: !this.state.card4 }); }}>
Action
Another action
Something else here
9.823
Members online
Traffic
November 2015
Visits
29.703 Users (40%)
Unique
24.093 Users (20%)
Pageviews
78.706 Views (60%)
New Users
22.123 Users (80%)
Bounce Rate
Average Rate (40.15%)
({ variant: 'facebook', friends: '89k', feeds: '459' })} >
({ variant: 'twitter', followers: '973k', tweets: '1.792' })} >
({ variant: 'linkedin', contacts: '500+', feeds: '292' })} >
Traffic {' & '} Sales
New clients
Recurring clients
|
User |
Country |
Usage |
Payment Method |
Activity |
|
Yiorgos Avraamu
New | Registered: Jan 1, 2015
|
|
50%
Jun 11, 2015 - Jul 10, 2015
|
|
Last login
10 sec ago
|
|
Avram Tarasios
Recurring | Registered: Jan 1, 2015
|
|
10%
Jun 11, 2015 - Jul 10, 2015
|
|
Last login
5 minutes ago
|
|
Quintin Ed
New | Registered: Jan 1, 2015
|
|
74%
Jun 11, 2015 - Jul 10, 2015
|
|
Last login
1 hour ago
|
|
Enéas Kwadwo
New | Registered: Jan 1, 2015
|
|
98%
Jun 11, 2015 - Jul 10, 2015
|
|
Last login
Last month
|
|
Agapetus Tadeáš
New | Registered: Jan 1, 2015
|
|
22%
Jun 11, 2015 - Jul 10, 2015
|
|
Last login
Last week
|
|
Friderik Dávid
New | Registered: Jan 1, 2015
|
|
43%
Jun 11, 2015 - Jul 10, 2015
|
|
Last login
Yesterday
|
);
}
}
export default Dashboard;