import { faInfoCircle } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import React, { FunctionComponent, useCallback, useMemo } from "react"; import { Badge, OverlayTrigger, Popover } from "react-bootstrap"; import { Link } from "react-router-dom"; import { Column, Row } from "react-table"; import { useSeriesHistory } from "../../@redux/hooks"; import { EpisodesApi } from "../../apis"; import { HistoryIcon, LanguageText } from "../../components"; import { BlacklistButton } from "../../generic/blacklist"; import { useAutoUpdate } from "../../utilites/hooks"; import HistoryGenericView from "../generic"; interface Props {} const SeriesHistoryView: FunctionComponent = () => { const [series, update] = useSeriesHistory(); useAutoUpdate(update); const tableUpdate = useCallback((row: Row) => update(), [ update, ]); const columns: Column[] = useMemo[]>( () => [ { accessor: "action", className: "text-center", Cell: ({ value }) => , }, { Header: "Series", accessor: "seriesTitle", Cell: (row) => { const target = `/series/${row.row.original.sonarrSeriesId}`; return ( {row.value} ); }, }, { Header: "Episode", accessor: "episode_number", }, { Header: "Title", accessor: "episodeTitle", }, { Header: "Language", accessor: "language", Cell: ({ value }) => { if (value) { return ( ); } else { return null; } }, }, { Header: "Score", accessor: "score", }, { Header: "Date", accessor: "timestamp", className: "text-nowrap", }, { accessor: "description", Cell: ({ row, value }) => { const overlay = ( {value} ); return ( ); }, }, { accessor: "blacklisted", Cell: ({ row, externalUpdate }) => { const original = row.original; const { sonarrEpisodeId, sonarrSeriesId } = original; return ( externalUpdate && externalUpdate(row)} promise={(form) => EpisodesApi.addBlacklist(sonarrSeriesId, sonarrEpisodeId, form) } > ); }, }, ], [] ); return ( []} tableUpdater={tableUpdate} > ); }; export default SeriesHistoryView;