import React from "react"; import {fetchUser, fetchUserNovels, generateActivateLink} 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"; import {connect} from "react-redux"; type Props = { match: { params: { userId: string } } currentUser: UserType } type State = { user: UserType | null novels: NovelType[] errorCode: number | null } class User extends React.Component { state: State = { user: null, novels: [], errorCode: null }; componentDidMount() { const params = this.props.match.params; fetchUser(parseInt(params.userId)).then((user: UserType) => { this.setState({ user }); document.title = `${user.username} / Unmei`; fetchUserNovels(parseInt(params.userId)).then((novels: NovelType[]) => { this.setState({ novels }); }).catch((err: ApiError) => console.error(err)); }).catch((err: ApiError) => this.setState({ errorCode: err.code })); } sendActivateLink = () => { generateActivateLink().then(console.log).catch(console.error) } render() { const { currentUser } = this.props; const { errorCode, user, novels } = this.state; if(errorCode === 100) return ; if(!user) return ; const style = !user.is_activated ? { marginTop: '1rem' } : {} return (
{!user.is_activated && user.id === currentUser.id && (

Ваш аккаунт не активирован!

Активируйте аккаунт, для доступа ко многим функциям. Так же актвация аккаунта позволит восстановить пароль.

)}
{user.cover &&
}
{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 connect( (state: StoreState) => ({ currentUser: state.currentUser }) )(User);