about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2022-11-27 20:48:12 +0100
committerClaire <claire.github-309c@sitedethib.com>2022-11-28 11:55:56 +0100
commit98c5ca1037d4058e4666606b0ee319a825b7c904 (patch)
tree9b6ce2e3a090cc1ff810c6a5b79a5a5e1a864c2d
parent2815ac41557864932d163d52f67ff4aee7b834fb (diff)
[Glitch] Fix infinite loading instead of soft 404 for non-existing remote accounts
Port 3ffaa966b0ba11b318e9a93b41854aa765d2ed5c to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
-rw-r--r--app/javascript/flavours/glitch/features/account_timeline/index.js8
-rw-r--r--app/javascript/flavours/glitch/reducers/accounts_map.js3
2 files changed, 10 insertions, 1 deletions
diff --git a/app/javascript/flavours/glitch/features/account_timeline/index.js b/app/javascript/flavours/glitch/features/account_timeline/index.js
index b735af0ac..b79082f00 100644
--- a/app/javascript/flavours/glitch/features/account_timeline/index.js
+++ b/app/javascript/flavours/glitch/features/account_timeline/index.js
@@ -25,7 +25,13 @@ const emptyList = ImmutableList();
 const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = false }) => {
   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 {
       isLoading: true,
       statusIds: emptyList,
diff --git a/app/javascript/flavours/glitch/reducers/accounts_map.js b/app/javascript/flavours/glitch/reducers/accounts_map.js
index 53e08c8fb..444bbda19 100644
--- a/app/javascript/flavours/glitch/reducers/accounts_map.js
+++ b/app/javascript/flavours/glitch/reducers/accounts_map.js
@@ -1,4 +1,5 @@
 import { ACCOUNT_IMPORT, ACCOUNTS_IMPORT } from '../actions/importer';
+import { ACCOUNT_LOOKUP_FAIL } from '../actions/accounts';
 import { Map as ImmutableMap } from 'immutable';
 
 export const normalizeForLookup = str => str.toLowerCase();
@@ -7,6 +8,8 @@ const initialState = ImmutableMap();
 
 export default function accountsMap(state = initialState, action) {
   switch(action.type) {
+  case ACCOUNT_LOOKUP_FAIL:
+    return action.error?.response?.status === 404 ? state.set(normalizeForLookup(action.acct), null) : state;
   case ACCOUNT_IMPORT:
     return state.set(normalizeForLookup(action.account.acct), action.account.id);
   case ACCOUNTS_IMPORT: