From 61deb1237de767cca311bc2695e673fe40d34e90 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sat, 4 Jul 2020 20:15:20 -0500 Subject: [PATCH] Make relationships load faster Import pleroma.relationships when the account loads --- app/soapbox/reducers/relationships.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/soapbox/reducers/relationships.js b/app/soapbox/reducers/relationships.js index 8322780de..8881d5925 100644 --- a/app/soapbox/reducers/relationships.js +++ b/app/soapbox/reducers/relationships.js @@ -13,6 +13,10 @@ import { ACCOUNT_UNPIN_SUCCESS, RELATIONSHIPS_FETCH_SUCCESS, } from '../actions/accounts'; +import { + ACCOUNT_IMPORT, + ACCOUNTS_IMPORT, +} from '../actions/importer'; import { DOMAIN_BLOCK_SUCCESS, DOMAIN_UNBLOCK_SUCCESS, @@ -37,10 +41,27 @@ const setDomainBlocking = (state, accounts, blocking) => { }); }; +const importPleromaAccount = (state, account) => { + if (!account.pleroma) return state; + return normalizeRelationship(state, account.pleroma.relationship); +}; + +const importPleromaAccounts = (state, accounts) => { + accounts.forEach(account => { + state = importPleromaAccount(state, account); + }); + + return state; +}; + const initialState = ImmutableMap(); export default function relationships(state = initialState, action) { switch(action.type) { + case ACCOUNT_IMPORT: + return importPleromaAccount(state, action.account); + case ACCOUNTS_IMPORT: + return importPleromaAccounts(state, action.accounts); case ACCOUNT_FOLLOW_REQUEST: return state.setIn([action.id, action.locked ? 'requested' : 'following'], true); case ACCOUNT_FOLLOW_FAIL: