379c3e237f
The search API now supports returning more results and pagination, but until the web UI implements pagination, it makes no sense to dump so many results at once. This fix restores the behaviour before the API change
84 lines
1.8 KiB
JavaScript
84 lines
1.8 KiB
JavaScript
import api from '../api';
|
|
import { fetchRelationships } from './accounts';
|
|
import { importFetchedAccounts, importFetchedStatuses } from './importer';
|
|
|
|
export const SEARCH_CHANGE = 'SEARCH_CHANGE';
|
|
export const SEARCH_CLEAR = 'SEARCH_CLEAR';
|
|
export const SEARCH_SHOW = 'SEARCH_SHOW';
|
|
|
|
export const SEARCH_FETCH_REQUEST = 'SEARCH_FETCH_REQUEST';
|
|
export const SEARCH_FETCH_SUCCESS = 'SEARCH_FETCH_SUCCESS';
|
|
export const SEARCH_FETCH_FAIL = 'SEARCH_FETCH_FAIL';
|
|
|
|
export function changeSearch(value) {
|
|
return {
|
|
type: SEARCH_CHANGE,
|
|
value,
|
|
};
|
|
};
|
|
|
|
export function clearSearch() {
|
|
return {
|
|
type: SEARCH_CLEAR,
|
|
};
|
|
};
|
|
|
|
export function submitSearch() {
|
|
return (dispatch, getState) => {
|
|
const value = getState().getIn(['search', 'value']);
|
|
|
|
if (value.length === 0) {
|
|
return;
|
|
}
|
|
|
|
dispatch(fetchSearchRequest());
|
|
|
|
api(getState).get('/api/v2/search', {
|
|
params: {
|
|
q: value,
|
|
resolve: true,
|
|
limit: 5,
|
|
},
|
|
}).then(response => {
|
|
if (response.data.accounts) {
|
|
dispatch(importFetchedAccounts(response.data.accounts));
|
|
}
|
|
|
|
if (response.data.statuses) {
|
|
dispatch(importFetchedStatuses(response.data.statuses));
|
|
}
|
|
|
|
dispatch(fetchSearchSuccess(response.data));
|
|
dispatch(fetchRelationships(response.data.accounts.map(item => item.id)));
|
|
}).catch(error => {
|
|
dispatch(fetchSearchFail(error));
|
|
});
|
|
};
|
|
};
|
|
|
|
export function fetchSearchRequest() {
|
|
return {
|
|
type: SEARCH_FETCH_REQUEST,
|
|
};
|
|
};
|
|
|
|
export function fetchSearchSuccess(results) {
|
|
return {
|
|
type: SEARCH_FETCH_SUCCESS,
|
|
results,
|
|
};
|
|
};
|
|
|
|
export function fetchSearchFail(error) {
|
|
return {
|
|
type: SEARCH_FETCH_FAIL,
|
|
error,
|
|
};
|
|
};
|
|
|
|
export function showSearch() {
|
|
return {
|
|
type: SEARCH_SHOW,
|
|
};
|
|
};
|