import React from "react"; import {fetchUser, fetchUserNovels} from "../../api/users"; import './User.sass' import NotFoundError from "../NotFoundError"; import {Link} from "react-router-dom"; import Loading from "../Loading"; import NovelItem from "../NovelItem/NovelItem"; type State = { user: UserType | null novels: NovelType[] errorCode: number | null } class User extends React.Component { constructor(props: any) { super(props); this.state = { user: null, novels: [], errorCode: null }; } componentDidMount() { const params = this.props.match.params; fetchUser(params.userId) .then((user: UserType) => { this.setState({ user }); document.title = `${user.username} / Unmei`; }) .catch((err: ApiError) => this.setState({ errorCode: err.code })); fetchUserNovels(params.userId).then((novels: NovelType[]) => { this.setState({ novels }); }).catch((err: ApiError) => console.error(err)); } render() { const { errorCode, user, novels } = this.state; if(errorCode === 100) return ; if(!user) return ; return (
{user.username}
{user.group.name}
Новеллы
n.status === 'planned').length}>Запланированно
n.status === 'completed').length}>Пройдено
n.status === 'in_progress').length}>Прохожу
n.status === 'deferred').length}>Отложено
n.status === 'dropped').length}>Брошено
Список новелл пользователя:
Все новеллы
{novels.length > 0 ? novels.slice(0, 4).map((novel) => ) : (
У этого пользователя нет новелл!
)}
{/*
Список аниме пользователя:
В разработке...
Список манги и ранобэ пользователя:
В разработке...
Список игр пользователя:
В разработке...
Список фильмов пользователя:
В разработке...
Список сериалов пользователя:
В разработке...
*/}
); } } export default User;