Newer
Older
import { useEffect, useState } from 'react';
import { subtractTime } from 'timely';
import { getUserActivity, getUserCompletion } from 'adapters/user';
import LoadingScreen from 'components/ui/LoadingScreen';
import CompletionGrid from 'components/layout/CompletionGrid';
import { CompletionProps, parseCompletion } from 'components/ui/Completion';
import BarChart, { ChartItem, parseActivity } from 'components/graphs/BarChart';
import './stats.scss';
export default function Tasks() {
const [completions, setCompletions] = useState<CompletionProps[]>();
const [activity, setActivity] = useState<ChartItem[]>();
useEffect(() => {
getUserCompletion().then((completion) => setCompletions(parseCompletion(completion)));
getUserActivity(subtractTime(new Date(), 1, 'week'), new Date()).then((a) => setActivity(parseActivity(a)))
return (
(completions && activity)
? (
<div className="stats-page">
<div className="content-container">
<h1 className="underlined">Stats</h1>
<div className="description-container">
Here are some of your recent statistics.
</div>
<h2>Activity</h2>
<BarChart unit="h" multiplier={1 / 60 / 60 / 1000} data={activity} />
<h2>Completion</h2>
<CompletionGrid items={completions} />
)
: <LoadingScreen />
);