2020-07-29 09:16:02 +02:00
|
|
|
import React, { useState, useEffect } from 'react';
|
2020-07-29 04:04:45 +02:00
|
|
|
import MetricCard from './MetricCard';
|
2020-07-29 09:16:02 +02:00
|
|
|
import { get } from '../lib/web';
|
2020-07-29 04:04:45 +02:00
|
|
|
import styles from './WebsiteSummary.module.css';
|
|
|
|
|
2020-07-29 09:16:02 +02:00
|
|
|
export default function WebsiteSummary({ websiteId, startDate, endDate }) {
|
|
|
|
const [data, setData] = useState({});
|
|
|
|
const { pageviews, uniques, bounces } = data;
|
|
|
|
|
|
|
|
async function loadData() {
|
|
|
|
setData(
|
|
|
|
await get(`/api/website/${websiteId}/summary`, {
|
|
|
|
start_at: +startDate,
|
|
|
|
end_at: +endDate,
|
|
|
|
}),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
loadData();
|
|
|
|
}, [startDate, endDate]);
|
2020-07-29 04:04:45 +02:00
|
|
|
|
|
|
|
return (
|
|
|
|
<div className={styles.container}>
|
2020-07-29 09:16:02 +02:00
|
|
|
<MetricCard label="Views" value={pageviews} />
|
|
|
|
<MetricCard label="Visitors" value={uniques} />
|
|
|
|
<MetricCard label="Bounce rate" value={`${~~((bounces / uniques) * 100)}%`} />
|
2020-07-29 04:04:45 +02:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|