import { merge } from "lodash"; import React, { FunctionComponent, useCallback, useState } from "react"; import { Col, Container } from "react-bootstrap"; import { Helmet } from "react-helmet"; import { Bar, BarChart, CartesianGrid, Legend, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts"; import { useLanguages, useProviders } from "../../@redux/hooks"; import { HistoryApi } from "../../apis"; import { AsyncSelector, ContentHeader, LanguageSelector, PromiseOverlay, Selector, } from "../../components"; import { useAutoUpdate } from "../../utilites/hooks"; import { actionOptions, timeframeOptions } from "./options"; function converter(item: History.Stat) { const movies = item.movies.map((v) => ({ date: v.date, movies: v.count, })); const series = item.series.map((v) => ({ date: v.date, series: v.count, })); const result = merge(movies, series); return result; } const providerLabel = (item: System.Provider) => item.name; const SelectorContainer: FunctionComponent = ({ children }) => ( {children} ); const HistoryStats: FunctionComponent = () => { const [languages] = useLanguages(true); const [providerList, update] = useProviders(); useAutoUpdate(update); const [timeframe, setTimeframe] = useState("month"); const [action, setAction] = useState>(null); const [lang, setLanguage] = useState>(null); const [provider, setProvider] = useState>(null); const promise = useCallback(() => { return HistoryApi.stats( timeframe, action ?? undefined, provider?.name, lang?.code2 ); }, [timeframe, lang?.code2, action, provider]); return ( // TODO: Responsive History Statistics - Bazarr {(data) => ( setTimeframe(v ?? "month")} > )} ); }; export default HistoryStats;