import './Novels.sass' import React from "react"; import {fetchNovels} from "../../api/novels"; import NovelItem from '../../ui/NovelItem/NovelItem'; import Loading from "../../ui/Loading"; type State = { novels: NovelType[] | null years: string[] genres: string[] } class Novels extends React.Component<{}, State> { state: State = { novels: null, genres: [], years: [] }; componentDidMount = () => { fetchNovels('rating').then((novels: NovelType[]) => { novels.forEach(novel => { novel.release_date = new Date(novel.release_date); }); this.setState({ novels }); document.title = 'Новелы'; }) }; switchFilter(filter: string, key: any) { // @ts-ignore const filters: string[] = this.state[filter]; if(filters.includes(key)) { // @ts-ignore this.setState({ [filter]: [...filters.filter(x => x !== key)] }) } else { // @ts-ignore this.setState({ [filter]: [...filters, key] }) } }; render() { const { novels } = this.state; if(!novels) return ; /*const filteredNovels = novels.filter(novel => { if(years.includes(novel.release_date.getFullYear().toString())) { return true; } return false; });*/ return (
{novels.map((novel: NovelType) => )}
{/*
Жанры
Год выпуска
*/}
); } } export default Novels;