import { useContext } from 'react';
import { GridTable, GridColumn } from 'react-basics';
import { ReportContext } from '../Report';
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
import { useMessages } from 'hooks';
import { dateFormat } from 'lib/date';
import styles from './RetentionTable.module.css';
export function RetentionTable() {
const { formatMessage, labels } = useMessages();
const { report } = useContext(ReportContext);
const { data } = report || {};
if (!data) {
return ;
}
const dates = data.reduce((arr, { date }) => {
if (!arr.includes(date)) {
return arr.concat(date);
}
return arr;
}, []);
const days = Array(32).fill(null);
return (
<>
{formatMessage(labels.date)}
{days.map((n, i) => (
{formatMessage(labels.day)} {i}
))}
{dates.map((date, i) => {
return (
{dateFormat(date, 'P')}
{date}
{days.map((n, day) => {
return (
{data.find(row => row.date === date && row.day === day)?.percentage.toFixed(2)}
);
})}
);
})}
>
);
}
function DataTable({ data }) {
return (
{row => row.date}
{row => row.day}
{row => row.visitors}
{row => row.returnVisitors}
{row => row.percentage}
);
}
export default RetentionTable;