Fix glitched out "not found" message for non-existing profiles in web UI (#10517)
This commit is contained in:
		| @@ -34,6 +34,11 @@ export function showAlertForError(error) { | ||||
|   if (error.response) { | ||||
|     const { data, status, statusText } = error.response; | ||||
|  | ||||
|     if (status === 404 || status === 410) { | ||||
|       // Skip these errors as they are reflected in the UI | ||||
|       return {}; | ||||
|     } | ||||
|  | ||||
|     let message = statusText; | ||||
|     let title   = `${status}`; | ||||
|  | ||||
|   | ||||
| @@ -13,8 +13,10 @@ import MediaItem from './components/media_item'; | ||||
| import HeaderContainer from '../account_timeline/containers/header_container'; | ||||
| import { ScrollContainer } from 'react-router-scroll-4'; | ||||
| import LoadMore from '../../components/load_more'; | ||||
| import MissingIndicator from 'mastodon/components/missing_indicator'; | ||||
|  | ||||
| const mapStateToProps = (state, props) => ({ | ||||
|   isAccount: !!state.getIn(['accounts', props.params.accountId]), | ||||
|   medias: getAccountGallery(state, props.params.accountId), | ||||
|   isLoading: state.getIn(['timelines', `account:${props.params.accountId}:media`, 'isLoading']), | ||||
|   hasMore:   state.getIn(['timelines', `account:${props.params.accountId}:media`, 'hasMore']), | ||||
| @@ -52,6 +54,7 @@ class AccountGallery extends ImmutablePureComponent { | ||||
|     medias: ImmutablePropTypes.list.isRequired, | ||||
|     isLoading: PropTypes.bool, | ||||
|     hasMore: PropTypes.bool, | ||||
|     isAccount: PropTypes.bool, | ||||
|   }; | ||||
|  | ||||
|   componentDidMount () { | ||||
| @@ -91,7 +94,15 @@ class AccountGallery extends ImmutablePureComponent { | ||||
|   } | ||||
|  | ||||
|   render () { | ||||
|     const { medias, shouldUpdateScroll, isLoading, hasMore } = this.props; | ||||
|     const { medias, shouldUpdateScroll, isLoading, hasMore, isAccount } = this.props; | ||||
|  | ||||
|     if (!isAccount) { | ||||
|       return ( | ||||
|         <Column> | ||||
|           <MissingIndicator /> | ||||
|         </Column> | ||||
|       ); | ||||
|     } | ||||
|  | ||||
|     let loadOlder = null; | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,6 @@ import React from 'react'; | ||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||
| import PropTypes from 'prop-types'; | ||||
| import InnerHeader from '../../account/components/header'; | ||||
| import MissingIndicator from '../../../components/missing_indicator'; | ||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||
| import MovedNote from './moved_note'; | ||||
| import { FormattedMessage } from 'react-intl'; | ||||
| @@ -88,7 +87,7 @@ export default class Header extends ImmutablePureComponent { | ||||
|     const { account, hideTabs, identity_proofs } = this.props; | ||||
|  | ||||
|     if (account === null) { | ||||
|       return <MissingIndicator />; | ||||
|       return null; | ||||
|     } | ||||
|  | ||||
|     return ( | ||||
|   | ||||
| @@ -13,6 +13,7 @@ import { List as ImmutableList } from 'immutable'; | ||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||
| import { FormattedMessage } from 'react-intl'; | ||||
| import { fetchAccountIdentityProofs } from '../../actions/identity_proofs'; | ||||
| import MissingIndicator from 'mastodon/components/missing_indicator'; | ||||
|  | ||||
| const emptyList = ImmutableList(); | ||||
|  | ||||
| @@ -20,6 +21,7 @@ const mapStateToProps = (state, { params: { accountId }, withReplies = false }) | ||||
|   const path = withReplies ? `${accountId}:with_replies` : accountId; | ||||
|  | ||||
|   return { | ||||
|     isAccount: !!state.getIn(['accounts', accountId]), | ||||
|     statusIds: state.getIn(['timelines', `account:${path}`, 'items'], emptyList), | ||||
|     featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], emptyList), | ||||
|     isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']), | ||||
| @@ -41,6 +43,7 @@ class AccountTimeline extends ImmutablePureComponent { | ||||
|     hasMore: PropTypes.bool, | ||||
|     withReplies: PropTypes.bool, | ||||
|     blockedBy: PropTypes.bool, | ||||
|     isAccount: PropTypes.bool, | ||||
|   }; | ||||
|  | ||||
|   componentWillMount () { | ||||
| @@ -74,7 +77,15 @@ class AccountTimeline extends ImmutablePureComponent { | ||||
|   } | ||||
|  | ||||
|   render () { | ||||
|     const { shouldUpdateScroll, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy } = this.props; | ||||
|     const { shouldUpdateScroll, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, isAccount } = this.props; | ||||
|  | ||||
|     if (!isAccount) { | ||||
|       return ( | ||||
|         <Column> | ||||
|           <MissingIndicator /> | ||||
|         </Column> | ||||
|       ); | ||||
|     } | ||||
|  | ||||
|     if (!statusIds && isLoading) { | ||||
|       return ( | ||||
|   | ||||
| @@ -16,8 +16,10 @@ import Column from '../ui/components/column'; | ||||
| import HeaderContainer from '../account_timeline/containers/header_container'; | ||||
| import ColumnBackButton from '../../components/column_back_button'; | ||||
| import ScrollableList from '../../components/scrollable_list'; | ||||
| import MissingIndicator from 'mastodon/components/missing_indicator'; | ||||
|  | ||||
| const mapStateToProps = (state, props) => ({ | ||||
|   isAccount: !!state.getIn(['accounts', props.params.accountId]), | ||||
|   accountIds: state.getIn(['user_lists', 'followers', props.params.accountId, 'items']), | ||||
|   hasMore: !!state.getIn(['user_lists', 'followers', props.params.accountId, 'next']), | ||||
|   blockedBy: state.getIn(['relationships', props.params.accountId, 'blocked_by'], false), | ||||
| @@ -33,6 +35,7 @@ class Followers extends ImmutablePureComponent { | ||||
|     accountIds: ImmutablePropTypes.list, | ||||
|     hasMore: PropTypes.bool, | ||||
|     blockedBy: PropTypes.bool, | ||||
|     isAccount: PropTypes.bool, | ||||
|   }; | ||||
|  | ||||
|   componentWillMount () { | ||||
| @@ -52,7 +55,15 @@ class Followers extends ImmutablePureComponent { | ||||
|   }, 300, { leading: true }); | ||||
|  | ||||
|   render () { | ||||
|     const { shouldUpdateScroll, accountIds, hasMore, blockedBy } = this.props; | ||||
|     const { shouldUpdateScroll, accountIds, hasMore, blockedBy, isAccount } = this.props; | ||||
|  | ||||
|     if (!isAccount) { | ||||
|       return ( | ||||
|         <Column> | ||||
|           <MissingIndicator /> | ||||
|         </Column> | ||||
|       ); | ||||
|     } | ||||
|  | ||||
|     if (!accountIds) { | ||||
|       return ( | ||||
|   | ||||
| @@ -16,8 +16,10 @@ import Column from '../ui/components/column'; | ||||
| import HeaderContainer from '../account_timeline/containers/header_container'; | ||||
| import ColumnBackButton from '../../components/column_back_button'; | ||||
| import ScrollableList from '../../components/scrollable_list'; | ||||
| import MissingIndicator from 'mastodon/components/missing_indicator'; | ||||
|  | ||||
| const mapStateToProps = (state, props) => ({ | ||||
|   isAccount: !!state.getIn(['accounts', props.params.accountId]), | ||||
|   accountIds: state.getIn(['user_lists', 'following', props.params.accountId, 'items']), | ||||
|   hasMore: !!state.getIn(['user_lists', 'following', props.params.accountId, 'next']), | ||||
|   blockedBy: state.getIn(['relationships', props.params.accountId, 'blocked_by'], false), | ||||
| @@ -33,6 +35,7 @@ class Following extends ImmutablePureComponent { | ||||
|     accountIds: ImmutablePropTypes.list, | ||||
|     hasMore: PropTypes.bool, | ||||
|     blockedBy: PropTypes.bool, | ||||
|     isAccount: PropTypes.bool, | ||||
|   }; | ||||
|  | ||||
|   componentWillMount () { | ||||
| @@ -52,7 +55,15 @@ class Following extends ImmutablePureComponent { | ||||
|   }, 300, { leading: true }); | ||||
|  | ||||
|   render () { | ||||
|     const { shouldUpdateScroll, accountIds, hasMore, blockedBy } = this.props; | ||||
|     const { shouldUpdateScroll, accountIds, hasMore, blockedBy, isAccount } = this.props; | ||||
|  | ||||
|     if (!isAccount) { | ||||
|       return ( | ||||
|         <Column> | ||||
|           <MissingIndicator /> | ||||
|         </Column> | ||||
|       ); | ||||
|     } | ||||
|  | ||||
|     if (!accountIds) { | ||||
|       return ( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user