[Glitch] Fix infinite loading instead of soft 404 for non-existing remote accounts

Port e668be4cac to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
lolsob-rspec
Claire 2022-11-27 20:48:12 +01:00
parent d886636767
commit 5fcaaa66f0
2 changed files with 10 additions and 1 deletions

View File

@ -25,7 +25,13 @@ const emptyList = ImmutableList();
const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = false }) => { const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = false }) => {
const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]);
if (!accountId) { if (accountId === null) {
return {
isLoading: false,
isAccount: false,
statusIds: emptyList,
};
} else if (!accountId) {
return { return {
isLoading: true, isLoading: true,
statusIds: emptyList, statusIds: emptyList,

View File

@ -1,4 +1,5 @@
import { ACCOUNT_IMPORT, ACCOUNTS_IMPORT } from '../actions/importer'; import { ACCOUNT_IMPORT, ACCOUNTS_IMPORT } from '../actions/importer';
import { ACCOUNT_LOOKUP_FAIL } from '../actions/accounts';
import { Map as ImmutableMap } from 'immutable'; import { Map as ImmutableMap } from 'immutable';
export const normalizeForLookup = str => str.toLowerCase(); export const normalizeForLookup = str => str.toLowerCase();
@ -7,6 +8,8 @@ const initialState = ImmutableMap();
export default function accountsMap(state = initialState, action) { export default function accountsMap(state = initialState, action) {
switch(action.type) { switch(action.type) {
case ACCOUNT_LOOKUP_FAIL:
return action.error?.response?.status === 404 ? state.set(normalizeForLookup(action.acct), null) : state;
case ACCOUNT_IMPORT: case ACCOUNT_IMPORT:
return state.set(normalizeForLookup(action.account.acct), action.account.id); return state.set(normalizeForLookup(action.account.acct), action.account.id);
case ACCOUNTS_IMPORT: case ACCOUNTS_IMPORT: