|
@@ -1,18 +1,20 @@
|
|
|
-import api from '../api';
|
|
|
-import { CancelToken, isCancel } from 'axios';
|
|
|
+import { isCancel } from 'axios';
|
|
|
import { throttle } from 'lodash';
|
|
|
-import { search as emojiSearch } from '../features/emoji/emoji_mart_search_light';
|
|
|
-import { tagHistory } from '../settings';
|
|
|
+import { defineMessages } from 'react-intl';
|
|
|
+import api from 'mastodon/api';
|
|
|
+import { search as emojiSearch } from 'mastodon/features/emoji/emoji_mart_search_light';
|
|
|
+import { tagHistory } from 'mastodon/settings';
|
|
|
+import resizeImage from 'mastodon/utils/resize_image';
|
|
|
+import { showAlert, showAlertForError } from './alerts';
|
|
|
import { useEmoji } from './emojis';
|
|
|
-import resizeImage from '../utils/resize_image';
|
|
|
import { importFetchedAccounts } from './importer';
|
|
|
-import { updateTimeline } from './timelines';
|
|
|
-import { showAlertForError } from './alerts';
|
|
|
-import { showAlert } from './alerts';
|
|
|
import { openModal } from './modal';
|
|
|
-import { defineMessages } from 'react-intl';
|
|
|
+import { updateTimeline } from './timelines';
|
|
|
|
|
|
-let cancelFetchComposeSuggestionsAccounts, cancelFetchComposeSuggestionsTags;
|
|
|
+/** @type {AbortController | undefined} */
|
|
|
+let fetchComposeSuggestionsAccountsController;
|
|
|
+/** @type {AbortController | undefined} */
|
|
|
+let fetchComposeSuggestionsTagsController;
|
|
|
|
|
|
export const COMPOSE_CHANGE = 'COMPOSE_CHANGE';
|
|
|
export const COMPOSE_SUBMIT_REQUEST = 'COMPOSE_SUBMIT_REQUEST';
|
|
@@ -433,8 +435,8 @@ export function undoUploadCompose(media_id) {
|
|
|
};
|
|
|
|
|
|
export function clearComposeSuggestions() {
|
|
|
- if (cancelFetchComposeSuggestionsAccounts) {
|
|
|
- cancelFetchComposeSuggestionsAccounts();
|
|
|
+ if (fetchComposeSuggestionsAccountsController) {
|
|
|
+ fetchComposeSuggestionsAccountsController.abort();
|
|
|
}
|
|
|
return {
|
|
|
type: COMPOSE_SUGGESTIONS_CLEAR,
|
|
@@ -442,14 +444,14 @@ export function clearComposeSuggestions() {
|
|
|
};
|
|
|
|
|
|
const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => {
|
|
|
- if (cancelFetchComposeSuggestionsAccounts) {
|
|
|
- cancelFetchComposeSuggestionsAccounts();
|
|
|
+ if (fetchComposeSuggestionsAccountsController) {
|
|
|
+ fetchComposeSuggestionsAccountsController.abort();
|
|
|
}
|
|
|
|
|
|
+ fetchComposeSuggestionsAccountsController = new AbortController();
|
|
|
+
|
|
|
api(getState).get('/api/v1/accounts/search', {
|
|
|
- cancelToken: new CancelToken(cancel => {
|
|
|
- cancelFetchComposeSuggestionsAccounts = cancel;
|
|
|
- }),
|
|
|
+ signal: fetchComposeSuggestionsAccountsController.signal,
|
|
|
|
|
|
params: {
|
|
|
q: token.slice(1),
|
|
@@ -472,16 +474,16 @@ const fetchComposeSuggestionsEmojis = (dispatch, getState, token) => {
|
|
|
};
|
|
|
|
|
|
const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => {
|
|
|
- if (cancelFetchComposeSuggestionsTags) {
|
|
|
- cancelFetchComposeSuggestionsTags();
|
|
|
+ if (fetchComposeSuggestionsTagsController) {
|
|
|
+ fetchComposeSuggestionsTagsController.abort();
|
|
|
}
|
|
|
|
|
|
dispatch(updateSuggestionTags(token));
|
|
|
|
|
|
+ fetchComposeSuggestionsTagsController = new AbortController();
|
|
|
+
|
|
|
api(getState).get('/api/v2/search', {
|
|
|
- cancelToken: new CancelToken(cancel => {
|
|
|
- cancelFetchComposeSuggestionsTags = cancel;
|
|
|
- }),
|
|
|
+ signal: fetchComposeSuggestionsTagsController.signal,
|
|
|
|
|
|
params: {
|
|
|
type: 'hashtags',
|