diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2021-04-12 12:37:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-12 12:37:14 +0200 |
commit | f7117646afddb2676e9275d8efe90c3a20c59021 (patch) | |
tree | efb9ba8f7b22d27b0a1ea595cfa30030f5d03b09 /app/javascript | |
parent | ad61265268f13d9b2a04e2e176724d8a7376f85a (diff) |
Add cold-start follow recommendations (#15945)
Diffstat (limited to 'app/javascript')
-rw-r--r-- | app/javascript/mastodon/actions/suggestions.js | 8 | ||||
-rw-r--r-- | app/javascript/mastodon/features/compose/components/search_results.js | 12 | ||||
-rw-r--r-- | app/javascript/mastodon/reducers/suggestions.js | 8 |
3 files changed, 14 insertions, 14 deletions
diff --git a/app/javascript/mastodon/actions/suggestions.js b/app/javascript/mastodon/actions/suggestions.js index b15bd916b..0bf959017 100644 --- a/app/javascript/mastodon/actions/suggestions.js +++ b/app/javascript/mastodon/actions/suggestions.js @@ -11,8 +11,8 @@ export function fetchSuggestions() { 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))); }; @@ -25,10 +25,10 @@ export function fetchSuggestionsRequest() { }; }; -export function fetchSuggestionsSuccess(accounts) { +export function fetchSuggestionsSuccess(suggestions) { return { type: SUGGESTIONS_FETCH_SUCCESS, - accounts, + suggestions, skipLoading: true, }; }; diff --git a/app/javascript/mastodon/features/compose/components/search_results.js b/app/javascript/mastodon/features/compose/components/search_results.js index 4b4cdff74..c4e160b8a 100644 --- a/app/javascript/mastodon/features/compose/components/search_results.js +++ b/app/javascript/mastodon/features/compose/components/search_results.js @@ -51,13 +51,13 @@ class SearchResults extends ImmutablePureComponent { <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> diff --git a/app/javascript/mastodon/reducers/suggestions.js b/app/javascript/mastodon/reducers/suggestions.js index 834be728f..1a6e66ee7 100644 --- a/app/javascript/mastodon/reducers/suggestions.js +++ b/app/javascript/mastodon/reducers/suggestions.js @@ -19,18 +19,18 @@ export default function suggestionsReducer(state = initialState, action) { 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; } |