return (dispatch, getState) => {
dispatch(fetchSuggestionsRequest());
- api(getState).get('/api/v1/suggestions').then(response => {
- dispatch(importFetchedAccounts(response.data));
+ api(getState).get('/api/v2/suggestions').then(response => {
+ dispatch(importFetchedAccounts(response.data.map(x => x.account)));
dispatch(fetchSuggestionsSuccess(response.data));
}).catch(error => dispatch(fetchSuggestionsFail(error)));
};
};
};
-export function fetchSuggestionsSuccess(accounts) {
+export function fetchSuggestionsSuccess(suggestions) {
return {
type: SUGGESTIONS_FETCH_SUCCESS,
- accounts,
+ suggestions,
skipLoading: true,
};
};
<FormattedMessage id='suggestions.header' defaultMessage='You might be interested in…' />
</div>
- {suggestions && suggestions.map(accountId => (
+ {suggestions && suggestions.map(suggestion => (
<AccountContainer
- key={accountId}
- id={accountId}
- actionIcon='times'
- actionTitle={intl.formatMessage(messages.dismissSuggestion)}
- onActionClick={dismissSuggestion}
+ key={suggestion.get('account')}
+ id={suggestion.get('account')}
+ actionIcon={suggestion.get('source') === 'past_interaction' && 'times'}
+ actionTitle={suggestion.get('source') === 'past_interaction' && intl.formatMessage(messages.dismissSuggestion)}
+ onActionClick={suggestion.get('source') === 'past_interaction' && dismissSuggestion}
/>
))}
</div>
return state.set('isLoading', true);
case SUGGESTIONS_FETCH_SUCCESS:
return state.withMutations(map => {
- map.set('items', fromJS(action.accounts.map(x => x.id)));
+ map.set('items', fromJS(action.suggestions.map(x => ({ ...x, account: x.account.id }))));
map.set('isLoading', false);
});
case SUGGESTIONS_FETCH_FAIL:
return state.set('isLoading', false);
case SUGGESTIONS_DISMISS:
- return state.update('items', list => list.filterNot(id => id === action.id));
+ return state.update('items', list => list.filterNot(x => x.account === action.id));
case ACCOUNT_BLOCK_SUCCESS:
case ACCOUNT_MUTE_SUCCESS:
- return state.update('items', list => list.filterNot(id => id === action.relationship.id));
+ return state.update('items', list => list.filterNot(x => x.account === action.relationship.id));
case DOMAIN_BLOCK_SUCCESS:
- return state.update('items', list => list.filterNot(id => action.accounts.includes(id)));
+ return state.update('items', list => list.filterNot(x => action.accounts.includes(x.account)));
default:
return state;
}