Refactor getOtherAccounts selector

This commit is contained in:
Alex Gleason 2021-07-10 04:48:12 -05:00
parent 079e269812
commit 4e3c002f8a
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7
3 changed files with 16 additions and 22 deletions

View file

@ -53,17 +53,13 @@ const makeMapStateToProps = () => {
const me = state.get('me'); const me = state.get('me');
const soapbox = getSoapboxConfig(state); const soapbox = getSoapboxConfig(state);
const accounts = state.get('accounts');
const authUsers = state.getIn(['auth', 'users']);
const otherAccounts = getOtherAccounts(accounts, authUsers, me);
return { return {
account: getAccount(state, me), account: getAccount(state, me),
sidebarOpen: state.get('sidebar').sidebarOpen, sidebarOpen: state.get('sidebar').sidebarOpen,
donateUrl: state.getIn(['patron', 'instance', 'url']), donateUrl: state.getIn(['patron', 'instance', 'url']),
hasCrypto: typeof soapbox.getIn(['cryptoAddresses', 0, 'ticker']) === 'string', hasCrypto: typeof soapbox.getIn(['cryptoAddresses', 0, 'ticker']) === 'string',
isStaff: isStaff(state.getIn(['accounts', me])), isStaff: isStaff(state.getIn(['accounts', me])),
otherAccounts, otherAccounts: getOtherAccounts(state),
}; };
}; };

View file

@ -24,13 +24,9 @@ const makeMapStateToProps = () => {
const mapStateToProps = state => { const mapStateToProps = state => {
const me = state.get('me'); const me = state.get('me');
const accounts = state.get('accounts');
const authUsers = state.getIn(['auth', 'users']);
const otherAccounts = getOtherAccounts(accounts, authUsers, me);
return { return {
account: state.getIn(['accounts', me]), account: state.getIn(['accounts', me]),
otherAccounts, otherAccounts: getOtherAccounts(state),
isStaff: isStaff(state.getIn(['accounts', me])), isStaff: isStaff(state.getIn(['accounts', me])),
}; };
}; };

View file

@ -197,16 +197,18 @@ export const makeGetReport = () => {
}; };
export const makeGetOtherAccounts = () => { export const makeGetOtherAccounts = () => {
return createSelector( return createSelector([
[(accounts, authUsers, me) => { state => state.get('accounts'),
return authUsers state => state.getIn(['auth', 'users']),
.keySeq() state => state.get('me'),
.reduce((list, id) => { ],
if (id === me) return list; (accounts, authUsers, me) => {
const account = accounts.get(id); return authUsers
return account ? list.push(account) : list; .keySeq()
}, ImmutableList()); .reduce((list, id) => {
}], if (id === me) return list;
otherAccounts => otherAccounts, const account = accounts.get(id);
); return account ? list.push(account) : list;
}, ImmutableList());
});
}; };