From 3aeebbceadc155d0915842891631c961b2ad23d9 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Wed, 1 Jun 2022 20:54:31 +0200 Subject: [PATCH] handle not existent user --- packages/app/src/pages/account/index.jsx | 37 ++++++++++++++++++------ 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/packages/app/src/pages/account/index.jsx b/packages/app/src/pages/account/index.jsx index d8fbc431..06d37e35 100644 --- a/packages/app/src/pages/account/index.jsx +++ b/packages/app/src/pages/account/index.jsx @@ -10,17 +10,19 @@ import { Session, User } from "models" import "./index.less" export default class Account extends React.Component { - static bindApp = ["userController", "sessionController"] - state = { - transitionActive: false, - activeKey: "posts", + requestedUser: null, + + user: null, + followers: [], isSelf: false, isFollowed: false, - user: null, - requestedUser: null, - followers: [], + + transitionActive: false, + activeKey: "posts", + + isNotExistent: false, } api = window.app.request @@ -30,7 +32,7 @@ export default class Account extends React.Component { const location = window.app.history.location const query = new URLSearchParams(location.search) - const requestedUser = location.state?.username ?? query.get("username") ?? token?.username + const requestedUser = this.props.username ?? location.state?.username ?? query.get("username") ?? token?.username const hasAdmin = await User.hasRole("admin") let isSelf = false @@ -45,6 +47,12 @@ export default class Account extends React.Component { user = await this.fetchData(requestedUser) + if (!user) { + this.setState({ + isNotExistent: true, + }) + } + if (!isSelf) { const followedResult = await this.api.get.isFollowed(undefined, { user_id: user._id }).catch(() => false) @@ -75,7 +83,7 @@ export default class Account extends React.Component { username: username }).catch((error) => { console.error(error) - antd.message.error(error.message) + return false }) } @@ -87,6 +95,7 @@ export default class Account extends React.Component { .catch((error) => { console.error(error) antd.message.error(error.message) + return false }) @@ -121,6 +130,15 @@ export default class Account extends React.Component { render() { const user = this.state.user + if (this.state.isNotExistent) { + return + + + } + if (!user) { return } @@ -128,6 +146,7 @@ export default class Account extends React.Component { return (
{user.cover &&
} +