diff --git a/.eslintrc.js b/.eslintrc.js
index 27134414f..e779b60d4 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -223,6 +223,22 @@ module.exports = {
],
'import/no-unresolved': 'error',
'import/no-webpack-loader-syntax': 'error',
+ 'import/order': [
+ 'error',
+ {
+ groups: [
+ 'builtin',
+ 'external',
+ 'internal',
+ 'parent',
+ 'sibling',
+ 'index',
+ 'object',
+ 'type',
+ ],
+ 'newlines-between': 'ignore',
+ },
+ ],
'promise/catch-or-return': 'error',
diff --git a/app/soapbox/actions/__tests__/about-test.js b/app/soapbox/actions/__tests__/about-test.js
index f6ce02099..d0def7236 100644
--- a/app/soapbox/actions/__tests__/about-test.js
+++ b/app/soapbox/actions/__tests__/about-test.js
@@ -1,13 +1,13 @@
+import { Map as ImmutableMap } from 'immutable';
+import MockAdapter from 'axios-mock-adapter';
+import { staticClient } from 'soapbox/api';
+import { mockStore } from 'soapbox/test_helpers';
import {
FETCH_ABOUT_PAGE_REQUEST,
FETCH_ABOUT_PAGE_SUCCESS,
FETCH_ABOUT_PAGE_FAIL,
fetchAboutPage,
} from '../about';
-import { Map as ImmutableMap } from 'immutable';
-import MockAdapter from 'axios-mock-adapter';
-import { staticClient } from 'soapbox/api';
-import { mockStore } from 'soapbox/test_helpers';
describe('fetchAboutPage()', () => {
it('creates the expected actions on success', () => {
diff --git a/app/soapbox/actions/__tests__/preload-test.js b/app/soapbox/actions/__tests__/preload-test.js
index bf0dc83a5..62f7ebb0e 100644
--- a/app/soapbox/actions/__tests__/preload-test.js
+++ b/app/soapbox/actions/__tests__/preload-test.js
@@ -1,12 +1,12 @@
+import { Map as ImmutableMap } from 'immutable';
+import { __stub } from 'soapbox/api';
+import { mockStore } from 'soapbox/test_helpers';
import {
MASTODON_PRELOAD_IMPORT,
preloadMastodon,
} from '../preload';
import { VERIFY_CREDENTIALS_REQUEST } from '../auth';
import { ACCOUNTS_IMPORT } from '../importer';
-import { Map as ImmutableMap } from 'immutable';
-import { __stub } from 'soapbox/api';
-import { mockStore } from 'soapbox/test_helpers';
describe('preloadMastodon()', () => {
it('creates the expected actions', () => {
diff --git a/app/soapbox/actions/accounts.js b/app/soapbox/actions/accounts.js
index 16ce44677..8ee830ec4 100644
--- a/app/soapbox/actions/accounts.js
+++ b/app/soapbox/actions/accounts.js
@@ -1,11 +1,11 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
+import { getFeatures } from 'soapbox/utils/features';
import api, { getLinks } from '../api';
import {
importFetchedAccount,
importFetchedAccounts,
importErrorWhileFetchingAccountByUsername,
} from './importer';
-import { isLoggedIn } from 'soapbox/utils/auth';
-import { getFeatures } from 'soapbox/utils/features';
export const ACCOUNT_CREATE_REQUEST = 'ACCOUNT_CREATE_REQUEST';
export const ACCOUNT_CREATE_SUCCESS = 'ACCOUNT_CREATE_SUCCESS';
diff --git a/app/soapbox/actions/admin.js b/app/soapbox/actions/admin.js
index 8e3de078e..b6a9e84c8 100644
--- a/app/soapbox/actions/admin.js
+++ b/app/soapbox/actions/admin.js
@@ -1,6 +1,6 @@
-import api from '../api';
import { importFetchedAccount, importFetchedStatuses } from 'soapbox/actions/importer';
import { fetchRelationships } from 'soapbox/actions/accounts';
+import api from '../api';
export const ADMIN_CONFIG_FETCH_REQUEST = 'ADMIN_CONFIG_FETCH_REQUEST';
export const ADMIN_CONFIG_FETCH_SUCCESS = 'ADMIN_CONFIG_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/aliases.js b/app/soapbox/actions/aliases.js
index 7f2dc6b00..facc91fe9 100644
--- a/app/soapbox/actions/aliases.js
+++ b/app/soapbox/actions/aliases.js
@@ -1,9 +1,9 @@
import { defineMessages } from 'react-intl';
+import { isLoggedIn } from 'soapbox/utils/auth';
import api from '../api';
import { importFetchedAccount, importFetchedAccounts } from './importer';
import { showAlertForError } from './alerts';
import snackbar from './snackbar';
-import { isLoggedIn } from 'soapbox/utils/auth';
import { ME_PATCH_SUCCESS } from './me';
export const ALIASES_SUGGESTIONS_CHANGE = 'ALIASES_SUGGESTIONS_CHANGE';
diff --git a/app/soapbox/actions/auth.js b/app/soapbox/actions/auth.js
index eafb23212..5ea926353 100644
--- a/app/soapbox/actions/auth.js
+++ b/app/soapbox/actions/auth.js
@@ -8,8 +8,6 @@
*/
import { defineMessages } from 'react-intl';
-import api, { baseClient } from '../api';
-import { importFetchedAccount } from './importer';
import snackbar from 'soapbox/actions/snackbar';
import { createAccount } from 'soapbox/actions/accounts';
import { fetchMeSuccess, fetchMeFail } from 'soapbox/actions/me';
@@ -20,6 +18,8 @@ import sourceCode from 'soapbox/utils/code';
import { getFeatures } from 'soapbox/utils/features';
import { isStandalone } from 'soapbox/utils/state';
import KVStore from 'soapbox/storage/kv_store';
+import api, { baseClient } from '../api';
+import { importFetchedAccount } from './importer';
export const SWITCH_ACCOUNT = 'SWITCH_ACCOUNT';
diff --git a/app/soapbox/actions/blocks.js b/app/soapbox/actions/blocks.js
index 63d01de3a..9f28d6d22 100644
--- a/app/soapbox/actions/blocks.js
+++ b/app/soapbox/actions/blocks.js
@@ -1,8 +1,8 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
+import { getNextLinkName } from 'soapbox/utils/quirks';
import api, { getLinks } from '../api';
import { fetchRelationships } from './accounts';
import { importFetchedAccounts } from './importer';
-import { isLoggedIn } from 'soapbox/utils/auth';
-import { getNextLinkName } from 'soapbox/utils/quirks';
export const BLOCKS_FETCH_REQUEST = 'BLOCKS_FETCH_REQUEST';
export const BLOCKS_FETCH_SUCCESS = 'BLOCKS_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/chats.js b/app/soapbox/actions/chats.js
index 2ca996cfe..f5ae40c27 100644
--- a/app/soapbox/actions/chats.js
+++ b/app/soapbox/actions/chats.js
@@ -1,8 +1,8 @@
-import api, { getLinks } from '../api';
-import { getSettings, changeSetting } from 'soapbox/actions/settings';
-import { getFeatures } from 'soapbox/utils/features';
import { v4 as uuidv4 } from 'uuid';
import { Map as ImmutableMap } from 'immutable';
+import { getSettings, changeSetting } from 'soapbox/actions/settings';
+import { getFeatures } from 'soapbox/utils/features';
+import api, { getLinks } from '../api';
export const CHATS_FETCH_REQUEST = 'CHATS_FETCH_REQUEST';
export const CHATS_FETCH_SUCCESS = 'CHATS_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/compose.js b/app/soapbox/actions/compose.js
index 124ef69c4..5f225895a 100644
--- a/app/soapbox/actions/compose.js
+++ b/app/soapbox/actions/compose.js
@@ -1,20 +1,20 @@
-import api from '../api';
import { CancelToken, isCancel } from 'axios';
import { throttle } from 'lodash';
+import { defineMessages } from 'react-intl';
+import { getFeatures } from 'soapbox/utils/features';
+import { isLoggedIn } from 'soapbox/utils/auth';
+import snackbar from 'soapbox/actions/snackbar';
+import api from '../api';
import { search as emojiSearch } from '../features/emoji/emoji_mart_search_light';
import { tagHistory } from '../settings';
-import { useEmoji } from './emojis';
import resizeImage from '../utils/resize_image';
+import { useEmoji } from './emojis';
import { importFetchedAccounts } from './importer';
import { showAlert, showAlertForError } from './alerts';
-import { defineMessages } from 'react-intl';
import { openModal, closeModal } from './modal';
import { getSettings } from './settings';
-import { getFeatures } from 'soapbox/utils/features';
import { uploadMedia, fetchMedia, updateMedia } from './media';
-import { isLoggedIn } from 'soapbox/utils/auth';
import { createStatus } from './statuses';
-import snackbar from 'soapbox/actions/snackbar';
let cancelFetchComposeSuggestionsAccounts;
diff --git a/app/soapbox/actions/conversations.js b/app/soapbox/actions/conversations.js
index e019441f9..ea88dd070 100644
--- a/app/soapbox/actions/conversations.js
+++ b/app/soapbox/actions/conversations.js
@@ -1,10 +1,10 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
import api, { getLinks } from '../api';
import {
importFetchedAccounts,
importFetchedStatuses,
importFetchedStatus,
} from './importer';
-import { isLoggedIn } from 'soapbox/utils/auth';
export const CONVERSATIONS_MOUNT = 'CONVERSATIONS_MOUNT';
export const CONVERSATIONS_UNMOUNT = 'CONVERSATIONS_UNMOUNT';
diff --git a/app/soapbox/actions/domain_blocks.js b/app/soapbox/actions/domain_blocks.js
index 8872590a3..37ee475e5 100644
--- a/app/soapbox/actions/domain_blocks.js
+++ b/app/soapbox/actions/domain_blocks.js
@@ -1,5 +1,5 @@
-import api, { getLinks } from '../api';
import { isLoggedIn } from 'soapbox/utils/auth';
+import api, { getLinks } from '../api';
export const DOMAIN_BLOCK_REQUEST = 'DOMAIN_BLOCK_REQUEST';
export const DOMAIN_BLOCK_SUCCESS = 'DOMAIN_BLOCK_SUCCESS';
diff --git a/app/soapbox/actions/emoji_reacts.js b/app/soapbox/actions/emoji_reacts.js
index 8ed43b8ed..48958bacb 100644
--- a/app/soapbox/actions/emoji_reacts.js
+++ b/app/soapbox/actions/emoji_reacts.js
@@ -1,8 +1,8 @@
+import { List as ImmutableList } from 'immutable';
+import { isLoggedIn } from 'soapbox/utils/auth';
import api from '../api';
import { importFetchedAccounts, importFetchedStatus } from './importer';
import { favourite, unfavourite } from './interactions';
-import { isLoggedIn } from 'soapbox/utils/auth';
-import { List as ImmutableList } from 'immutable';
export const EMOJI_REACT_REQUEST = 'EMOJI_REACT_REQUEST';
export const EMOJI_REACT_SUCCESS = 'EMOJI_REACT_SUCCESS';
diff --git a/app/soapbox/actions/external_auth.js b/app/soapbox/actions/external_auth.js
index d486b4026..2510a24f0 100644
--- a/app/soapbox/actions/external_auth.js
+++ b/app/soapbox/actions/external_auth.js
@@ -6,14 +6,14 @@
* @see module:soapbox/actions/oauth
*/
-import { baseClient } from '../api';
+import { Map as ImmutableMap, fromJS } from 'immutable';
import { createApp } from 'soapbox/actions/apps';
import { obtainOAuthToken } from 'soapbox/actions/oauth';
import { authLoggedIn, verifyCredentials, switchAccount } from 'soapbox/actions/auth';
import { parseBaseURL } from 'soapbox/utils/auth';
import { getFeatures } from 'soapbox/utils/features';
import sourceCode from 'soapbox/utils/code';
-import { Map as ImmutableMap, fromJS } from 'immutable';
+import { baseClient } from '../api';
const fetchExternalInstance = baseURL => {
return baseClient(null, baseURL)
diff --git a/app/soapbox/actions/favourites.js b/app/soapbox/actions/favourites.js
index dfc1ee9ba..090df55bc 100644
--- a/app/soapbox/actions/favourites.js
+++ b/app/soapbox/actions/favourites.js
@@ -1,6 +1,6 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
import api, { getLinks } from '../api';
import { importFetchedStatuses } from './importer';
-import { isLoggedIn } from 'soapbox/utils/auth';
export const FAVOURITED_STATUSES_FETCH_REQUEST = 'FAVOURITED_STATUSES_FETCH_REQUEST';
export const FAVOURITED_STATUSES_FETCH_SUCCESS = 'FAVOURITED_STATUSES_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/filters.js b/app/soapbox/actions/filters.js
index b5964cd38..d0f18dd3e 100644
--- a/app/soapbox/actions/filters.js
+++ b/app/soapbox/actions/filters.js
@@ -1,7 +1,7 @@
import { defineMessages } from 'react-intl';
-import api from '../api';
import snackbar from 'soapbox/actions/snackbar';
import { isLoggedIn } from 'soapbox/utils/auth';
+import api from '../api';
export const FILTERS_FETCH_REQUEST = 'FILTERS_FETCH_REQUEST';
export const FILTERS_FETCH_SUCCESS = 'FILTERS_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/group_editor.js b/app/soapbox/actions/group_editor.js
index b74533a14..6710b21f2 100644
--- a/app/soapbox/actions/group_editor.js
+++ b/app/soapbox/actions/group_editor.js
@@ -1,5 +1,5 @@
-import api from '../api';
import { isLoggedIn } from 'soapbox/utils/auth';
+import api from '../api';
export const GROUP_CREATE_REQUEST = 'GROUP_CREATE_REQUEST';
export const GROUP_CREATE_SUCCESS = 'GROUP_CREATE_SUCCESS';
diff --git a/app/soapbox/actions/groups.js b/app/soapbox/actions/groups.js
index 94b3675ad..350b67e3e 100644
--- a/app/soapbox/actions/groups.js
+++ b/app/soapbox/actions/groups.js
@@ -1,7 +1,7 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
import api, { getLinks } from '../api';
import { importFetchedAccounts } from './importer';
import { fetchRelationships } from './accounts';
-import { isLoggedIn } from 'soapbox/utils/auth';
export const GROUP_FETCH_REQUEST = 'GROUP_FETCH_REQUEST';
export const GROUP_FETCH_SUCCESS = 'GROUP_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/import_data.js b/app/soapbox/actions/import_data.js
index acf205f94..b316df8bb 100644
--- a/app/soapbox/actions/import_data.js
+++ b/app/soapbox/actions/import_data.js
@@ -1,6 +1,6 @@
import { defineMessages } from 'react-intl';
-import api from '../api';
import snackbar from 'soapbox/actions/snackbar';
+import api from '../api';
export const IMPORT_FOLLOWS_REQUEST = 'IMPORT_FOLLOWS_REQUEST';
export const IMPORT_FOLLOWS_SUCCESS = 'IMPORT_FOLLOWS_SUCCESS';
diff --git a/app/soapbox/actions/instance.js b/app/soapbox/actions/instance.js
index bc3b95758..cc7870976 100644
--- a/app/soapbox/actions/instance.js
+++ b/app/soapbox/actions/instance.js
@@ -1,8 +1,8 @@
-import api from '../api';
import { get } from 'lodash';
import { parseVersion } from 'soapbox/utils/features';
import { getAuthUserUrl } from 'soapbox/utils/auth';
import KVStore from 'soapbox/storage/kv_store';
+import api from '../api';
export const INSTANCE_FETCH_REQUEST = 'INSTANCE_FETCH_REQUEST';
export const INSTANCE_FETCH_SUCCESS = 'INSTANCE_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/interactions.js b/app/soapbox/actions/interactions.js
index c67789117..700166bc6 100644
--- a/app/soapbox/actions/interactions.js
+++ b/app/soapbox/actions/interactions.js
@@ -1,8 +1,8 @@
import { defineMessages } from 'react-intl';
-import api from '../api';
-import { importFetchedAccounts, importFetchedStatus } from './importer';
import snackbar from 'soapbox/actions/snackbar';
import { isLoggedIn } from 'soapbox/utils/auth';
+import api from '../api';
+import { importFetchedAccounts, importFetchedStatus } from './importer';
export const REBLOG_REQUEST = 'REBLOG_REQUEST';
export const REBLOG_SUCCESS = 'REBLOG_SUCCESS';
diff --git a/app/soapbox/actions/lists.js b/app/soapbox/actions/lists.js
index a04bbc6f1..95330c557 100644
--- a/app/soapbox/actions/lists.js
+++ b/app/soapbox/actions/lists.js
@@ -1,7 +1,7 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
import api from '../api';
import { importFetchedAccounts } from './importer';
import { showAlertForError } from './alerts';
-import { isLoggedIn } from 'soapbox/utils/auth';
export const LIST_FETCH_REQUEST = 'LIST_FETCH_REQUEST';
export const LIST_FETCH_SUCCESS = 'LIST_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/me.js b/app/soapbox/actions/me.js
index 2dcf36ab9..35c4fcb8c 100644
--- a/app/soapbox/actions/me.js
+++ b/app/soapbox/actions/me.js
@@ -1,7 +1,7 @@
+import { getAuthUserId, getAuthUserUrl } from 'soapbox/utils/auth';
import api from '../api';
import { importFetchedAccount } from './importer';
import { loadCredentials } from './auth';
-import { getAuthUserId, getAuthUserUrl } from 'soapbox/utils/auth';
export const ME_FETCH_REQUEST = 'ME_FETCH_REQUEST';
export const ME_FETCH_SUCCESS = 'ME_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/media.js b/app/soapbox/actions/media.js
index 3c71c91a4..87f2b0347 100644
--- a/app/soapbox/actions/media.js
+++ b/app/soapbox/actions/media.js
@@ -1,5 +1,5 @@
-import api from '../api';
import { getFeatures } from 'soapbox/utils/features';
+import api from '../api';
const noOp = () => {};
diff --git a/app/soapbox/actions/mrf.js b/app/soapbox/actions/mrf.js
index e4f07a9fd..d893ce6bd 100644
--- a/app/soapbox/actions/mrf.js
+++ b/app/soapbox/actions/mrf.js
@@ -1,6 +1,6 @@
-import { fetchConfig, updateConfig } from './admin';
import { Set as ImmutableSet } from 'immutable';
import ConfigDB from 'soapbox/utils/config_db';
+import { fetchConfig, updateConfig } from './admin';
const simplePolicyMerge = (simplePolicy, host, restrictions) => {
return simplePolicy.map((hosts, key) => {
diff --git a/app/soapbox/actions/mutes.js b/app/soapbox/actions/mutes.js
index 3cdc3b5fb..23afba4f3 100644
--- a/app/soapbox/actions/mutes.js
+++ b/app/soapbox/actions/mutes.js
@@ -1,9 +1,9 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
+import { getNextLinkName } from 'soapbox/utils/quirks';
import api, { getLinks } from '../api';
import { fetchRelationships } from './accounts';
import { importFetchedAccounts } from './importer';
import { openModal } from './modal';
-import { isLoggedIn } from 'soapbox/utils/auth';
-import { getNextLinkName } from 'soapbox/utils/quirks';
export const MUTES_FETCH_REQUEST = 'MUTES_FETCH_REQUEST';
export const MUTES_FETCH_SUCCESS = 'MUTES_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/notifications.js b/app/soapbox/actions/notifications.js
index ca37cf525..396a02a40 100644
--- a/app/soapbox/actions/notifications.js
+++ b/app/soapbox/actions/notifications.js
@@ -1,26 +1,26 @@
-import api, { getLinks } from '../api';
import IntlMessageFormat from 'intl-messageformat';
import 'intl-pluralrules';
-import { fetchRelationships } from './accounts';
-import {
- importFetchedAccount,
- importFetchedAccounts,
- importFetchedStatus,
- importFetchedStatuses,
-} from './importer';
-import { saveMarker } from './markers';
-import { getSettings, saveSettings } from './settings';
import { defineMessages } from 'react-intl';
import {
List as ImmutableList,
Map as ImmutableMap,
OrderedMap as ImmutableOrderedMap,
} from 'immutable';
-import { unescapeHTML } from '../utils/html';
-import { getFilters, regexFromFilters } from '../selectors';
import { isLoggedIn } from 'soapbox/utils/auth';
import { parseVersion, PLEROMA } from 'soapbox/utils/features';
import { joinPublicPath } from 'soapbox/utils/static';
+import api, { getLinks } from '../api';
+import { getFilters, regexFromFilters } from '../selectors';
+import { unescapeHTML } from '../utils/html';
+import { getSettings, saveSettings } from './settings';
+import { saveMarker } from './markers';
+import {
+ importFetchedAccount,
+ importFetchedAccounts,
+ importFetchedStatus,
+ importFetchedStatuses,
+} from './importer';
+import { fetchRelationships } from './accounts';
export const NOTIFICATIONS_UPDATE = 'NOTIFICATIONS_UPDATE';
export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP';
diff --git a/app/soapbox/actions/pin_statuses.js b/app/soapbox/actions/pin_statuses.js
index ecab511d0..d2a1c96ec 100644
--- a/app/soapbox/actions/pin_statuses.js
+++ b/app/soapbox/actions/pin_statuses.js
@@ -1,6 +1,6 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
import api from '../api';
import { importFetchedStatuses } from './importer';
-import { isLoggedIn } from 'soapbox/utils/auth';
export const PINNED_STATUSES_FETCH_REQUEST = 'PINNED_STATUSES_FETCH_REQUEST';
export const PINNED_STATUSES_FETCH_SUCCESS = 'PINNED_STATUSES_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/push_notifications/registerer.js b/app/soapbox/actions/push_notifications/registerer.js
index 2dca31fe8..ad6cf1ffe 100644
--- a/app/soapbox/actions/push_notifications/registerer.js
+++ b/app/soapbox/actions/push_notifications/registerer.js
@@ -1,8 +1,8 @@
+import { createPushSubsription, updatePushSubscription } from 'soapbox/actions/push_subscriptions';
+import { getVapidKey } from 'soapbox/utils/auth';
import { decode as decodeBase64 } from '../../utils/base64';
import { pushNotificationsSetting } from '../../settings';
import { setBrowserSupport, setSubscription, clearSubscription } from './setter';
-import { createPushSubsription, updatePushSubscription } from 'soapbox/actions/push_subscriptions';
-import { getVapidKey } from 'soapbox/utils/auth';
// Taken from https://www.npmjs.com/package/web-push
const urlBase64ToUint8Array = (base64String) => {
diff --git a/app/soapbox/actions/security.js b/app/soapbox/actions/security.js
index e5e15b6f5..cd9642447 100644
--- a/app/soapbox/actions/security.js
+++ b/app/soapbox/actions/security.js
@@ -4,9 +4,9 @@
* @see module:soapbox/actions/auth
*/
-import api from '../api';
import { getLoggedInAccount } from 'soapbox/utils/auth';
import snackbar from 'soapbox/actions/snackbar';
+import api from '../api';
import { AUTH_LOGGED_OUT, messages } from './auth';
export const FETCH_TOKENS_REQUEST = 'FETCH_TOKENS_REQUEST';
diff --git a/app/soapbox/actions/settings.js b/app/soapbox/actions/settings.js
index e10f2f430..f956d687f 100644
--- a/app/soapbox/actions/settings.js
+++ b/app/soapbox/actions/settings.js
@@ -1,10 +1,10 @@
import { debounce } from 'lodash';
-import { showAlertForError } from './alerts';
-import { patchMe } from 'soapbox/actions/me';
import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrderedSet } from 'immutable';
+import { createSelector } from 'reselect';
+import { patchMe } from 'soapbox/actions/me';
import { isLoggedIn } from 'soapbox/utils/auth';
import uuid from '../uuid';
-import { createSelector } from 'reselect';
+import { showAlertForError } from './alerts';
export const SETTING_CHANGE = 'SETTING_CHANGE';
export const SETTING_SAVE = 'SETTING_SAVE';
diff --git a/app/soapbox/actions/soapbox.js b/app/soapbox/actions/soapbox.js
index 4358e9f1d..738cd6066 100644
--- a/app/soapbox/actions/soapbox.js
+++ b/app/soapbox/actions/soapbox.js
@@ -1,9 +1,9 @@
-import api, { staticClient } from '../api';
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
-import { getFeatures } from 'soapbox/utils/features';
import { createSelector } from 'reselect';
+import { getFeatures } from 'soapbox/utils/features';
import { getHost } from 'soapbox/actions/instance';
import KVStore from 'soapbox/storage/kv_store';
+import api, { staticClient } from '../api';
export const SOAPBOX_CONFIG_REQUEST_SUCCESS = 'SOAPBOX_CONFIG_REQUEST_SUCCESS';
export const SOAPBOX_CONFIG_REQUEST_FAIL = 'SOAPBOX_CONFIG_REQUEST_FAIL';
diff --git a/app/soapbox/actions/statuses.js b/app/soapbox/actions/statuses.js
index ec5811cba..19bda082b 100644
--- a/app/soapbox/actions/statuses.js
+++ b/app/soapbox/actions/statuses.js
@@ -1,10 +1,10 @@
+import { isLoggedIn } from 'soapbox/utils/auth';
+import { getFeatures } from 'soapbox/utils/features';
+import { shouldHaveCard } from 'soapbox/utils/status';
import api from '../api';
import { deleteFromTimelines } from './timelines';
import { importFetchedStatus, importFetchedStatuses } from './importer';
import { openModal } from './modal';
-import { isLoggedIn } from 'soapbox/utils/auth';
-import { getFeatures } from 'soapbox/utils/features';
-import { shouldHaveCard } from 'soapbox/utils/status';
export const STATUS_CREATE_REQUEST = 'STATUS_CREATE_REQUEST';
export const STATUS_CREATE_SUCCESS = 'STATUS_CREATE_SUCCESS';
diff --git a/app/soapbox/actions/streaming.js b/app/soapbox/actions/streaming.js
index 1b8de7b97..ca93f0506 100644
--- a/app/soapbox/actions/streaming.js
+++ b/app/soapbox/actions/streaming.js
@@ -1,3 +1,5 @@
+import { getSettings } from 'soapbox/actions/settings';
+import messages from 'soapbox/locales/messages';
import { connectStream } from '../stream';
import {
deleteFromTimelines,
@@ -9,8 +11,6 @@ import {
import { updateNotificationsQueue, expandNotifications } from './notifications';
import { updateConversations } from './conversations';
import { fetchFilters } from './filters';
-import { getSettings } from 'soapbox/actions/settings';
-import messages from 'soapbox/locales/messages';
export const STREAMING_CHAT_UPDATE = 'STREAMING_CHAT_UPDATE';
export const STREAMING_FOLLOW_RELATIONSHIPS_UPDATE = 'STREAMING_FOLLOW_RELATIONSHIPS_UPDATE';
diff --git a/app/soapbox/actions/suggestions.js b/app/soapbox/actions/suggestions.js
index d36c2c21d..f239530f0 100644
--- a/app/soapbox/actions/suggestions.js
+++ b/app/soapbox/actions/suggestions.js
@@ -1,7 +1,7 @@
-import api from '../api';
-import { importFetchedAccounts } from './importer';
import { isLoggedIn } from 'soapbox/utils/auth';
import { getFeatures } from 'soapbox/utils/features';
+import api from '../api';
+import { importFetchedAccounts } from './importer';
import { fetchRelationships } from './accounts';
export const SUGGESTIONS_FETCH_REQUEST = 'SUGGESTIONS_FETCH_REQUEST';
diff --git a/app/soapbox/actions/timelines.js b/app/soapbox/actions/timelines.js
index 934c52b00..345e4783d 100644
--- a/app/soapbox/actions/timelines.js
+++ b/app/soapbox/actions/timelines.js
@@ -1,8 +1,8 @@
-import { importFetchedStatus, importFetchedStatuses } from './importer';
-import api, { getLinks } from '../api';
import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable';
import { getSettings } from 'soapbox/actions/settings';
import { shouldFilter } from 'soapbox/utils/timelines';
+import api, { getLinks } from '../api';
+import { importFetchedStatus, importFetchedStatuses } from './importer';
export const TIMELINE_UPDATE = 'TIMELINE_UPDATE';
export const TIMELINE_DELETE = 'TIMELINE_DELETE';
diff --git a/app/soapbox/api.js b/app/soapbox/api.js
index 2a6b5092a..79c0400bc 100644
--- a/app/soapbox/api.js
+++ b/app/soapbox/api.js
@@ -7,8 +7,8 @@
import axios from 'axios';
import LinkHeader from 'http-link-header';
-import { getAccessToken, getAppToken, parseBaseURL } from 'soapbox/utils/auth';
import { createSelector } from 'reselect';
+import { getAccessToken, getAppToken, parseBaseURL } from 'soapbox/utils/auth';
import { BACKEND_URL, FE_SUBDIRECTORY } from 'soapbox/build_config';
import { isURL } from 'soapbox/utils/auth';
diff --git a/app/soapbox/components/__tests__/column_back_button-test.js b/app/soapbox/components/__tests__/column_back_button-test.js
index e358090ee..0cd337c7a 100644
--- a/app/soapbox/components/__tests__/column_back_button-test.js
+++ b/app/soapbox/components/__tests__/column_back_button-test.js
@@ -1,6 +1,6 @@
import React from 'react';
-import ColumnBackButton from '../column_back_button';
import { createComponent } from 'soapbox/test_helpers';
+import ColumnBackButton from '../column_back_button';
describe('', () => {
it('renders correctly', () => {
diff --git a/app/soapbox/components/__tests__/display_name-test.js b/app/soapbox/components/__tests__/display_name-test.js
index f626f94ca..ebef28352 100644
--- a/app/soapbox/components/__tests__/display_name-test.js
+++ b/app/soapbox/components/__tests__/display_name-test.js
@@ -1,7 +1,7 @@
import React from 'react';
import { fromJS } from 'immutable';
-import DisplayName from '../display_name';
import { createComponent } from 'soapbox/test_helpers';
+import DisplayName from '../display_name';
describe('', () => {
it('renders display name + account name', () => {
diff --git a/app/soapbox/components/__tests__/timeline_queue_button_header-test.js b/app/soapbox/components/__tests__/timeline_queue_button_header-test.js
index 9f0125a46..2af5a85db 100644
--- a/app/soapbox/components/__tests__/timeline_queue_button_header-test.js
+++ b/app/soapbox/components/__tests__/timeline_queue_button_header-test.js
@@ -1,7 +1,7 @@
import React from 'react';
-import TimelineQueueButtonHeader from '../timeline_queue_button_header';
-import { createComponent } from 'soapbox/test_helpers';
import { defineMessages } from 'react-intl';
+import { createComponent } from 'soapbox/test_helpers';
+import TimelineQueueButtonHeader from '../timeline_queue_button_header';
const messages = defineMessages({
queue: { id: 'status_list.queue_label', defaultMessage: 'Click to see {count} new {count, plural, one {post} other {posts}}' },
diff --git a/app/soapbox/components/account.js b/app/soapbox/components/account.js
index afc5109c1..228949067 100644
--- a/app/soapbox/components/account.js
+++ b/app/soapbox/components/account.js
@@ -3,16 +3,16 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import classNames from 'classnames';
+import ActionButton from 'soapbox/features/ui/components/action_button';
+import emojify from 'soapbox/features/emoji/emoji';
import Avatar from './avatar';
import DisplayName from './display_name';
import Permalink from './permalink';
import Icon from './icon';
import IconButton from './icon_button';
-import ActionButton from 'soapbox/features/ui/components/action_button';
import RelativeTimestamp from './relative_timestamp';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import classNames from 'classnames';
-import emojify from 'soapbox/features/emoji/emoji';
const mapStateToProps = state => {
return {
diff --git a/app/soapbox/components/account_search.js b/app/soapbox/components/account_search.js
index 77eae54ba..5b83e90f9 100644
--- a/app/soapbox/components/account_search.js
+++ b/app/soapbox/components/account_search.js
@@ -1,9 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
+import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import AutosuggestAccountInput from 'soapbox/components/autosuggest_account_input';
-import classNames from 'classnames';
const messages = defineMessages({
placeholder: { id: 'account_search.placeholder', defaultMessage: 'Search for an account' },
diff --git a/app/soapbox/components/autosuggest_account_input.js b/app/soapbox/components/autosuggest_account_input.js
index b359323ab..90cb91231 100644
--- a/app/soapbox/components/autosuggest_account_input.js
+++ b/app/soapbox/components/autosuggest_account_input.js
@@ -1,12 +1,12 @@
import React from 'react';
-import AutosuggestInput from './autosuggest_input';
import PropTypes from 'prop-types';
import { CancelToken } from 'axios';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
-import { accountSearch } from 'soapbox/actions/accounts';
import { throttle } from 'lodash';
+import { accountSearch } from 'soapbox/actions/accounts';
+import AutosuggestInput from './autosuggest_input';
const noOp = () => {};
diff --git a/app/soapbox/components/autosuggest_emoji.js b/app/soapbox/components/autosuggest_emoji.js
index 188dc6c0e..a8813c657 100644
--- a/app/soapbox/components/autosuggest_emoji.js
+++ b/app/soapbox/components/autosuggest_emoji.js
@@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
-import unicodeMapping from '../features/emoji/emoji_unicode_mapping_light';
import { joinPublicPath } from 'soapbox/utils/static';
+import unicodeMapping from '../features/emoji/emoji_unicode_mapping_light';
export default class AutosuggestEmoji extends React.PureComponent {
diff --git a/app/soapbox/components/autosuggest_input.js b/app/soapbox/components/autosuggest_input.js
index cf5c8f04b..619aabce2 100644
--- a/app/soapbox/components/autosuggest_input.js
+++ b/app/soapbox/components/autosuggest_input.js
@@ -1,13 +1,13 @@
import React from 'react';
-import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
-import AutosuggestEmoji from './autosuggest_emoji';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import { isRtl } from '../rtl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import classNames from 'classnames';
import { List as ImmutableList } from 'immutable';
import Icon from 'soapbox/components/icon';
+import { isRtl } from '../rtl';
+import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
+import AutosuggestEmoji from './autosuggest_emoji';
const textAtCursorMatchesToken = (str, caretPosition, searchTokens) => {
let word;
diff --git a/app/soapbox/components/autosuggest_textarea.js b/app/soapbox/components/autosuggest_textarea.js
index 57ba6b4fc..032479475 100644
--- a/app/soapbox/components/autosuggest_textarea.js
+++ b/app/soapbox/components/autosuggest_textarea.js
@@ -1,12 +1,12 @@
import React from 'react';
-import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
-import AutosuggestEmoji from './autosuggest_emoji';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import { isRtl } from '../rtl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Textarea from 'react-textarea-autosize';
import classNames from 'classnames';
+import { isRtl } from '../rtl';
+import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
+import AutosuggestEmoji from './autosuggest_emoji';
const textAtCursorMatchesToken = (str, caretPosition) => {
let word;
diff --git a/app/soapbox/components/display_name.js b/app/soapbox/components/display_name.js
index d111a9de2..1fa642405 100644
--- a/app/soapbox/components/display_name.js
+++ b/app/soapbox/components/display_name.js
@@ -2,13 +2,13 @@ import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import VerificationBadge from './verification_badge';
-import { getAcct } from '../utils/accounts';
import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
-import Icon from './icon';
-import RelativeTimestamp from './relative_timestamp';
import { displayFqn } from 'soapbox/utils/state';
import { isVerified } from 'soapbox/utils/accounts';
+import { getAcct } from '../utils/accounts';
+import VerificationBadge from './verification_badge';
+import Icon from './icon';
+import RelativeTimestamp from './relative_timestamp';
const mapStateToProps = state => {
return {
diff --git a/app/soapbox/components/domain.js b/app/soapbox/components/domain.js
index 15f0b5b90..3d12bfba9 100644
--- a/app/soapbox/components/domain.js
+++ b/app/soapbox/components/domain.js
@@ -1,8 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
-import IconButton from './icon_button';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import IconButton from './icon_button';
const messages = defineMessages({
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },
diff --git a/app/soapbox/components/dropdown_menu.js b/app/soapbox/components/dropdown_menu.js
index 868e42066..230509236 100644
--- a/app/soapbox/components/dropdown_menu.js
+++ b/app/soapbox/components/dropdown_menu.js
@@ -2,12 +2,12 @@ import React from 'react';
import classNames from 'classnames';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import IconButton from './icon_button';
import Overlay from 'react-overlays/lib/Overlay';
-import Motion from '../features/ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import { supportsPassiveEvents } from 'detect-passive-events';
import Icon from 'soapbox/components/icon';
+import Motion from '../features/ui/util/optional_motion';
+import IconButton from './icon_button';
const listenerOptions = supportsPassiveEvents ? { passive: true } : false;
let id = 0;
diff --git a/app/soapbox/components/emoji_selector.js b/app/soapbox/components/emoji_selector.js
index b47166228..57898f299 100644
--- a/app/soapbox/components/emoji_selector.js
+++ b/app/soapbox/components/emoji_selector.js
@@ -3,9 +3,9 @@ import PropTypes from 'prop-types';
import { HotKeys } from 'react-hotkeys';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
+import classNames from 'classnames';
import emojify from 'soapbox/features/emoji/emoji';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
-import classNames from 'classnames';
const mapStateToProps = state => ({
allowedEmoji: getSoapboxConfig(state).get('allowedEmoji'),
diff --git a/app/soapbox/components/hashtag.js b/app/soapbox/components/hashtag.js
index a54daf656..0b9f64a92 100644
--- a/app/soapbox/components/hashtag.js
+++ b/app/soapbox/components/hashtag.js
@@ -2,8 +2,8 @@ import React from 'react';
import { Sparklines, SparklinesCurve } from 'react-sparklines';
import { FormattedMessage } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Permalink from './permalink';
import { shortNumberFormat } from '../utils/numbers';
+import Permalink from './permalink';
const Hashtag = ({ hashtag }) => {
const count = Number(hashtag.getIn(['history', 0, 'accounts']));
diff --git a/app/soapbox/components/hover_ref_wrapper.js b/app/soapbox/components/hover_ref_wrapper.js
index 652e4a387..a3d6cb2a2 100644
--- a/app/soapbox/components/hover_ref_wrapper.js
+++ b/app/soapbox/components/hover_ref_wrapper.js
@@ -1,11 +1,11 @@
import React, { useRef } from 'react';
import PropTypes from 'prop-types';
+import { useDispatch } from 'react-redux';
+import { debounce } from 'lodash';
import {
openProfileHoverCard,
closeProfileHoverCard,
} from 'soapbox/actions/profile_hover_card';
-import { useDispatch } from 'react-redux';
-import { debounce } from 'lodash';
import { isMobile } from 'soapbox/is_mobile';
const showProfileHoverCard = debounce((dispatch, ref, accountId) => {
diff --git a/app/soapbox/components/icon_button.js b/app/soapbox/components/icon_button.js
index aab5739d3..431f72507 100644
--- a/app/soapbox/components/icon_button.js
+++ b/app/soapbox/components/icon_button.js
@@ -1,10 +1,10 @@
import React from 'react';
-import Motion from '../features/ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import emojify from 'soapbox/features/emoji/emoji';
+import Motion from '../features/ui/util/optional_motion';
export default class IconButton extends React.PureComponent {
diff --git a/app/soapbox/components/intersection_observer_article.js b/app/soapbox/components/intersection_observer_article.js
index 12ebe20a2..96ac6188a 100644
--- a/app/soapbox/components/intersection_observer_article.js
+++ b/app/soapbox/components/intersection_observer_article.js
@@ -1,8 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
+import { is } from 'immutable';
import scheduleIdleTask from '../features/ui/util/schedule_idle_task';
import getRectFromEntry from '../features/ui/util/get_rect_from_entry';
-import { is } from 'immutable';
// Diff these props in the "rendered" state
const updateOnPropsForRendered = ['id', 'index', 'listLength'];
diff --git a/app/soapbox/components/media_gallery.js b/app/soapbox/components/media_gallery.js
index d16d746f2..ab9128616 100644
--- a/app/soapbox/components/media_gallery.js
+++ b/app/soapbox/components/media_gallery.js
@@ -3,17 +3,17 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { is } from 'immutable';
-import IconButton from './icon_button';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { isIOS } from '../is_mobile';
-import { truncateFilename } from 'soapbox/utils/media';
import classNames from 'classnames';
-import { isPanoramic, isPortrait, isNonConformingRatio, minimumAspectRatio, maximumAspectRatio } from '../utils/media_aspect_ratio';
import { Map as ImmutableMap } from 'immutable';
+import { truncateFilename } from 'soapbox/utils/media';
import { getSettings } from 'soapbox/actions/settings';
import Icon from 'soapbox/components/icon';
import StillImage from 'soapbox/components/still_image';
import Blurhash from 'soapbox/components/blurhash';
+import { isPanoramic, isPortrait, isNonConformingRatio, minimumAspectRatio, maximumAspectRatio } from '../utils/media_aspect_ratio';
+import { isIOS } from '../is_mobile';
+import IconButton from './icon_button';
const ATTACHMENT_LIMIT = 4;
const MAX_FILENAME_LENGTH = 45;
diff --git a/app/soapbox/components/poll.js b/app/soapbox/components/poll.js
index a5b8b038e..e1eafa210 100644
--- a/app/soapbox/components/poll.js
+++ b/app/soapbox/components/poll.js
@@ -1,18 +1,18 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import classNames from 'classnames';
-import { vote, fetchPoll } from 'soapbox/actions/polls';
-import Motion from 'soapbox/features/ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import escapeTextContentForBrowser from 'escape-html';
+import { vote, fetchPoll } from 'soapbox/actions/polls';
+import Motion from 'soapbox/features/ui/util/optional_motion';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import emojify from 'soapbox/features/emoji/emoji';
-import RelativeTimestamp from './relative_timestamp';
import Icon from 'soapbox/components/icon';
import { openModal } from 'soapbox/actions/modal';
+import RelativeTimestamp from './relative_timestamp';
const messages = defineMessages({
closed: { id: 'poll.closed', defaultMessage: 'Closed' },
diff --git a/app/soapbox/components/primary_navigation.js b/app/soapbox/components/primary_navigation.js
index 5bac11d33..194c76e7f 100644
--- a/app/soapbox/components/primary_navigation.js
+++ b/app/soapbox/components/primary_navigation.js
@@ -6,9 +6,9 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage } from 'react-intl';
import { NavLink, withRouter } from 'react-router-dom';
+import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import IconWithCounter from 'soapbox/components/icon_with_counter';
-import classNames from 'classnames';
import { getSettings } from 'soapbox/actions/settings';
import { getFeatures } from 'soapbox/utils/features';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
diff --git a/app/soapbox/components/profile_hover_card.js b/app/soapbox/components/profile_hover_card.js
index 879bf92e3..276fe98cd 100644
--- a/app/soapbox/components/profile_hover_card.js
+++ b/app/soapbox/components/profile_hover_card.js
@@ -1,17 +1,17 @@
import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { useSelector, useDispatch } from 'react-redux';
-import { makeGetAccount } from 'soapbox/selectors';
import { injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import classNames from 'classnames';
+import { usePopper } from 'react-popper';
+import { makeGetAccount } from 'soapbox/selectors';
import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import { UserPanel } from 'soapbox/features/ui/util/async-components';
import ActionButton from 'soapbox/features/ui/components/action_button';
import { isAdmin, isModerator } from 'soapbox/utils/accounts';
import Badge from 'soapbox/components/badge';
-import classNames from 'classnames';
import { fetchRelationships } from 'soapbox/actions/accounts';
-import { usePopper } from 'react-popper';
import {
closeProfileHoverCard,
updateProfileHoverCard,
diff --git a/app/soapbox/components/scrollable_list.js b/app/soapbox/components/scrollable_list.js
index 4a2164b47..559b28f70 100644
--- a/app/soapbox/components/scrollable_list.js
+++ b/app/soapbox/components/scrollable_list.js
@@ -2,15 +2,15 @@ import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import classNames from 'classnames';
-import IntersectionObserverArticleContainer from '../containers/intersection_observer_article_container';
-import LoadMore from './load_more';
-import MoreFollows from './more_follows';
-import IntersectionObserverWrapper from '../features/ui/util/intersection_observer_wrapper';
import { throttle } from 'lodash';
import { List as ImmutableList } from 'immutable';
-import LoadingIndicator from './loading_indicator';
import { getSettings } from 'soapbox/actions/settings';
import PullToRefresh from 'soapbox/components/pull_to_refresh';
+import IntersectionObserverArticleContainer from '../containers/intersection_observer_article_container';
+import IntersectionObserverWrapper from '../features/ui/util/intersection_observer_wrapper';
+import LoadMore from './load_more';
+import MoreFollows from './more_follows';
+import LoadingIndicator from './loading_indicator';
const MOUSE_IDLE_DELAY = 300;
diff --git a/app/soapbox/components/sidebar_menu.js b/app/soapbox/components/sidebar_menu.js
index 70cc1cd90..1b22d134d 100644
--- a/app/soapbox/components/sidebar_menu.js
+++ b/app/soapbox/components/sidebar_menu.js
@@ -7,20 +7,20 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
import classNames from 'classnames';
+import { is as ImmutableIs } from 'immutable';
+import { logOut, switchAccount } from 'soapbox/actions/auth';
+import { fetchOwnAccounts } from 'soapbox/actions/auth';
+import { getSettings } from 'soapbox/actions/settings';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import { getFeatures } from 'soapbox/utils/features';
+import { closeSidebar } from '../actions/sidebar';
+import { isAdmin, getBaseURL } from '../utils/accounts';
+import { makeGetAccount, makeGetOtherAccounts } from '../selectors';
+import ThemeToggle from '../features/ui/components/theme_toggle_container';
import Avatar from './avatar';
import IconButton from './icon_button';
import Icon from './icon';
import DisplayName from './display_name';
-import { closeSidebar } from '../actions/sidebar';
-import { isAdmin, getBaseURL } from '../utils/accounts';
-import { makeGetAccount, makeGetOtherAccounts } from '../selectors';
-import { logOut, switchAccount } from 'soapbox/actions/auth';
-import ThemeToggle from '../features/ui/components/theme_toggle_container';
-import { fetchOwnAccounts } from 'soapbox/actions/auth';
-import { is as ImmutableIs } from 'immutable';
-import { getSettings } from 'soapbox/actions/settings';
-import { getSoapboxConfig } from 'soapbox/actions/soapbox';
-import { getFeatures } from 'soapbox/utils/features';
const messages = defineMessages({
followers: { id: 'account.followers', defaultMessage: 'Followers' },
diff --git a/app/soapbox/components/status.js b/app/soapbox/components/status.js
index 89f0fe934..674880493 100644
--- a/app/soapbox/components/status.js
+++ b/app/soapbox/components/status.js
@@ -1,6 +1,18 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import { injectIntl, FormattedMessage } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { HotKeys } from 'react-hotkeys';
+import classNames from 'classnames';
+import { Link, NavLink } from 'react-router-dom';
+import Icon from 'soapbox/components/icon';
+import { getDomain } from 'soapbox/utils/accounts';
+import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
+import PlaceholderCard from 'soapbox/features/placeholder/components/placeholder_card';
+import Card from '../features/status/components/card';
+import Bundle from '../features/ui/components/bundle';
+import { MediaGallery, Video, Audio } from '../features/ui/util/async-components';
import Avatar from './avatar';
import AvatarOverlay from './avatar_overlay';
import AvatarComposite from './avatar_composite';
@@ -10,21 +22,6 @@ import StatusContent from './status_content';
import StatusActionBar from './status_action_bar';
import StatusReplyMentions from './status_reply_mentions';
import AttachmentThumbs from './attachment_thumbs';
-import Card from '../features/status/components/card';
-import { injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { MediaGallery, Video, Audio } from '../features/ui/util/async-components';
-import { HotKeys } from 'react-hotkeys';
-import classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
-import { Link, NavLink } from 'react-router-dom';
-import { getDomain } from 'soapbox/utils/accounts';
-import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
-import PlaceholderCard from 'soapbox/features/placeholder/components/placeholder_card';
-
-// We use the component (and not the container) since we do not want
-// to use the progress bar to show download progress
-import Bundle from '../features/ui/components/bundle';
export const textForScreenReader = (intl, status, rebloggedByText = false) => {
const displayName = status.getIn(['account', 'display_name']);
diff --git a/app/soapbox/components/status_action_bar.js b/app/soapbox/components/status_action_bar.js
index a79f940b8..23cc535a8 100644
--- a/app/soapbox/components/status_action_bar.js
+++ b/app/soapbox/components/status_action_bar.js
@@ -2,20 +2,20 @@ import React from 'react';
import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import IconButton from './icon_button';
-import DropdownMenuContainer from '../containers/dropdown_menu_container';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { isStaff, isAdmin } from 'soapbox/utils/accounts';
-import { openModal } from '../actions/modal';
import { Link } from 'react-router-dom';
+import { List as ImmutableList } from 'immutable';
import EmojiSelector from 'soapbox/components/emoji_selector';
import { getReactForStatus, reduceEmoji } from 'soapbox/utils/emoji_reacts';
import { simpleEmojiReact } from 'soapbox/actions/emoji_reacts';
-import { List as ImmutableList } from 'immutable';
+import { isStaff, isAdmin } from 'soapbox/utils/accounts';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { getFeatures } from 'soapbox/utils/features';
import { isUserTouching } from 'soapbox/is_mobile';
+import { openModal } from '../actions/modal';
+import DropdownMenuContainer from '../containers/dropdown_menu_container';
+import IconButton from './icon_button';
const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
diff --git a/app/soapbox/components/status_content.js b/app/soapbox/components/status_content.js
index efbe81b5d..b1afdb135 100644
--- a/app/soapbox/components/status_content.js
+++ b/app/soapbox/components/status_content.js
@@ -2,15 +2,15 @@ import React from 'react';
import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import { isRtl } from '../rtl';
import { FormattedMessage } from 'react-intl';
-import Permalink from './permalink';
import classnames from 'classnames';
import PollContainer from 'soapbox/containers/poll_container';
import Icon from 'soapbox/components/icon';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { addGreentext } from 'soapbox/utils/greentext';
import { onlyEmoji } from 'soapbox/utils/rich_content';
+import { isRtl } from '../rtl';
+import Permalink from './permalink';
const MAX_HEIGHT = 642; // 20px * 32 (+ 2px padding at the top)
const BIG_EMOJI_LIMIT = 10;
diff --git a/app/soapbox/components/status_list.js b/app/soapbox/components/status_list.js
index 289ec91d5..aae62c43b 100644
--- a/app/soapbox/components/status_list.js
+++ b/app/soapbox/components/status_list.js
@@ -3,13 +3,13 @@ import React from 'react';
import { FormattedMessage, defineMessages } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import MaterialStatus from 'soapbox/components/material_status';
import PendingStatus from 'soapbox/features/ui/components/pending_status';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import PlaceholderMaterialStatus from 'soapbox/features/placeholder/components/placeholder_material_status';
import LoadGap from './load_gap';
import ScrollableList from './scrollable_list';
import TimelineQueueButtonHeader from './timeline_queue_button_header';
-import PlaceholderMaterialStatus from 'soapbox/features/placeholder/components/placeholder_material_status';
const messages = defineMessages({
queue: { id: 'status_list.queue_label', defaultMessage: 'Click to see {count} new {count, plural, one {post} other {posts}}' },
diff --git a/app/soapbox/components/still_image.js b/app/soapbox/components/still_image.js
index 18b3d9fb0..f8be4cfb4 100644
--- a/app/soapbox/components/still_image.js
+++ b/app/soapbox/components/still_image.js
@@ -1,8 +1,8 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
-import { getSettings } from 'soapbox/actions/settings';
import classNames from 'classnames';
+import { getSettings } from 'soapbox/actions/settings';
const mapStateToProps = state => ({
autoPlayGif: getSettings(state).get('autoPlayGif'),
diff --git a/app/soapbox/components/sub_navigation.js b/app/soapbox/components/sub_navigation.js
index 063448b5c..35227eff3 100644
--- a/app/soapbox/components/sub_navigation.js
+++ b/app/soapbox/components/sub_navigation.js
@@ -3,9 +3,9 @@ import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { injectIntl, defineMessages } from 'react-intl';
import { throttle } from 'lodash';
+import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import IconButton from 'soapbox/components/icon_button';
-import classNames from 'classnames';
import Helmet from 'soapbox/components/helmet';
import { openModal } from 'soapbox/actions/modal';
diff --git a/app/soapbox/components/thumb_navigation.js b/app/soapbox/components/thumb_navigation.js
index ba5173097..60ec41263 100644
--- a/app/soapbox/components/thumb_navigation.js
+++ b/app/soapbox/components/thumb_navigation.js
@@ -4,12 +4,12 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { NavLink, withRouter } from 'react-router-dom';
import { FormattedMessage } from 'react-intl';
+import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import IconWithCounter from 'soapbox/components/icon_with_counter';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { isStaff } from 'soapbox/utils/accounts';
import { getFeatures } from 'soapbox/utils/features';
-import classNames from 'classnames';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/containers/domain_container.js b/app/soapbox/containers/domain_container.js
index a9887b546..db74c23dc 100644
--- a/app/soapbox/containers/domain_container.js
+++ b/app/soapbox/containers/domain_container.js
@@ -1,7 +1,7 @@
import React from 'react';
import { connect } from 'react-redux';
-import { blockDomain, unblockDomain } from '../actions/domain_blocks';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { blockDomain, unblockDomain } from '../actions/domain_blocks';
import Domain from '../components/domain';
import { openModal } from '../actions/modal';
diff --git a/app/soapbox/containers/dropdown_menu_container.js b/app/soapbox/containers/dropdown_menu_container.js
index f79b19202..61dd3bd54 100644
--- a/app/soapbox/containers/dropdown_menu_container.js
+++ b/app/soapbox/containers/dropdown_menu_container.js
@@ -1,6 +1,6 @@
+import { connect } from 'react-redux';
import { openDropdownMenu, closeDropdownMenu } from '../actions/dropdown_menu';
import { openModal, closeModal } from '../actions/modal';
-import { connect } from 'react-redux';
import DropdownMenu from '../components/dropdown_menu';
import { isUserTouching } from '../is_mobile';
diff --git a/app/soapbox/containers/soapbox.js b/app/soapbox/containers/soapbox.js
index 9eb9640e6..6bd081866 100644
--- a/app/soapbox/containers/soapbox.js
+++ b/app/soapbox/containers/soapbox.js
@@ -4,18 +4,13 @@ import React from 'react';
import { Provider, connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import Helmet from 'soapbox/components/helmet';
import classNames from 'classnames';
-import configureStore from '../store/configureStore';
-import { INTRODUCTION_VERSION } from '../actions/onboarding';
import { Switch, BrowserRouter, Route } from 'react-router-dom';
import { ScrollContext } from 'react-router-scroll-4';
-import UI from '../features/ui';
// import Introduction from '../features/introduction';
-import { preload } from '../actions/preload';
import { IntlProvider } from 'react-intl';
-import ErrorBoundary from '../components/error_boundary';
+import Helmet from 'soapbox/components/helmet';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { loadInstance } from 'soapbox/actions/instance';
import { loadSoapboxConfig } from 'soapbox/actions/soapbox';
import { fetchMe } from 'soapbox/actions/me';
@@ -26,6 +21,11 @@ import { generateThemeCss } from 'soapbox/utils/theme';
import messages from 'soapbox/locales/messages';
import { FE_SUBDIRECTORY } from 'soapbox/build_config';
import { createGlobals } from 'soapbox/globals';
+import { preload } from '../actions/preload';
+import UI from '../features/ui';
+import { INTRODUCTION_VERSION } from '../actions/onboarding';
+import configureStore from '../store/configureStore';
+import ErrorBoundary from '../components/error_boundary';
const validLocale = locale => Object.keys(messages).includes(locale);
diff --git a/app/soapbox/containers/status_container.js b/app/soapbox/containers/status_container.js
index cbb00e84d..21a05d7f9 100644
--- a/app/soapbox/containers/status_container.js
+++ b/app/soapbox/containers/status_container.js
@@ -1,5 +1,9 @@
import React from 'react';
import { connect } from 'react-redux';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import { deactivateUserModal, deleteUserModal, deleteStatusModal, toggleStatusSensitivityModal } from 'soapbox/actions/moderation';
+import { launchChat } from 'soapbox/actions/chats';
import Status from '../components/status';
import { makeGetStatus } from '../selectors';
import {
@@ -28,16 +32,12 @@ import {
import { initMuteModal } from '../actions/mutes';
import { initReport } from '../actions/reports';
import { openModal } from '../actions/modal';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { showAlertForError } from '../actions/alerts';
import {
createRemovedAccount,
groupRemoveStatus,
} from '../actions/groups';
import { getSettings } from '../actions/settings';
-import { getSoapboxConfig } from 'soapbox/actions/soapbox';
-import { deactivateUserModal, deleteUserModal, deleteStatusModal, toggleStatusSensitivityModal } from 'soapbox/actions/moderation';
-import { launchChat } from 'soapbox/actions/chats';
const messages = defineMessages({
deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
@@ -182,7 +182,7 @@ const mapDispatchToProps = (dispatch, { intl }) => {
const account = status.get('account');
dispatch(openModal('CONFIRM', {
icon: require('@tabler/icons/icons/ban.svg'),
- heading: ,
+ heading: ,
message: @{account.get('acct')} }} />,
confirm: intl.formatMessage(messages.blockConfirm),
onConfirm: () => dispatch(blockAccount(account.get('id'))),
diff --git a/app/soapbox/features/account/components/header.js b/app/soapbox/features/account/components/header.js
index 66830bc6c..d4f8a47d1 100644
--- a/app/soapbox/features/account/components/header.js
+++ b/app/soapbox/features/account/components/header.js
@@ -5,8 +5,12 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import IconButton from 'soapbox/components/icon_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import classNames from 'classnames';
+import { NavLink } from 'react-router-dom';
+import { debounce } from 'lodash';
+import { List as ImmutableList, Map as ImmutableMap } from 'immutable';
+import IconButton from 'soapbox/components/icon_button';
import {
isStaff,
isAdmin,
@@ -16,19 +20,15 @@ import {
isRemote,
getDomain,
} from 'soapbox/utils/accounts';
-import classNames from 'classnames';
import Avatar from 'soapbox/components/avatar';
import { shortNumberFormat } from 'soapbox/utils/numbers';
-import { NavLink } from 'react-router-dom';
import DropdownMenuContainer from 'soapbox/containers/dropdown_menu_container';
import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import { ProfileInfoPanel } from 'soapbox/features/ui/util/async-components';
-import { debounce } from 'lodash';
import StillImage from 'soapbox/components/still_image';
import ActionButton from 'soapbox/features/ui/components/action_button';
import SubscriptionButton from 'soapbox/features/ui/components/subscription_button';
import { openModal } from 'soapbox/actions/modal';
-import { List as ImmutableList, Map as ImmutableMap } from 'immutable';
import { getFeatures } from 'soapbox/utils/features';
const messages = defineMessages({
diff --git a/app/soapbox/features/account_gallery/components/media_item.js b/app/soapbox/features/account_gallery/components/media_item.js
index 98b0b7059..f0d033b17 100644
--- a/app/soapbox/features/account_gallery/components/media_item.js
+++ b/app/soapbox/features/account_gallery/components/media_item.js
@@ -3,8 +3,8 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Icon from 'soapbox/components/icon';
import classNames from 'classnames';
+import Icon from 'soapbox/components/icon';
import Blurhash from 'soapbox/components/blurhash';
import { isIOS } from 'soapbox/is_mobile';
import { getSettings } from 'soapbox/actions/settings';
diff --git a/app/soapbox/features/account_gallery/index.js b/app/soapbox/features/account_gallery/index.js
index 9a4bedf54..4a3fb869c 100644
--- a/app/soapbox/features/account_gallery/index.js
+++ b/app/soapbox/features/account_gallery/index.js
@@ -2,22 +2,22 @@ import React from 'react';
import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { NavLink } from 'react-router-dom';
+import { FormattedMessage } from 'react-intl';
+import LoadMore from 'soapbox/components/load_more';
+import MissingIndicator from 'soapbox/components/missing_indicator';
+import { openModal } from 'soapbox/actions/modal';
+import { getAccountGallery, findAccountByUsername } from 'soapbox/selectors';
+import Column from 'soapbox/components/column';
+import LoadingIndicator from 'soapbox/components/loading_indicator';
import {
fetchAccount,
fetchAccountByUsername,
} from 'soapbox/actions/accounts';
-import { expandAccountMediaTimeline } from '../../actions/timelines';
-import LoadingIndicator from 'soapbox/components/loading_indicator';
-import Column from 'soapbox/components/column';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { getAccountGallery, findAccountByUsername } from 'soapbox/selectors';
-import MediaItem from './components/media_item';
-import LoadMore from 'soapbox/components/load_more';
-import MissingIndicator from 'soapbox/components/missing_indicator';
-import { openModal } from 'soapbox/actions/modal';
-import { NavLink } from 'react-router-dom';
-import { FormattedMessage } from 'react-intl';
import SubNavigation from 'soapbox/components/sub_navigation';
+import { expandAccountMediaTimeline } from '../../actions/timelines';
+import MediaItem from './components/media_item';
const mapStateToProps = (state, { params, withReplies = false }) => {
const username = params.username || '';
diff --git a/app/soapbox/features/account_timeline/components/header.js b/app/soapbox/features/account_timeline/components/header.js
index e2b9d3207..67421abcb 100644
--- a/app/soapbox/features/account_timeline/components/header.js
+++ b/app/soapbox/features/account_timeline/components/header.js
@@ -1,8 +1,8 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import InnerHeader from '../../account/components/header';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import InnerHeader from '../../account/components/header';
import MovedNote from './moved_note';
export default class Header extends ImmutablePureComponent {
diff --git a/app/soapbox/features/account_timeline/components/moved_note.js b/app/soapbox/features/account_timeline/components/moved_note.js
index 0616827f9..05c99abba 100644
--- a/app/soapbox/features/account_timeline/components/moved_note.js
+++ b/app/soapbox/features/account_timeline/components/moved_note.js
@@ -3,10 +3,10 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { NavLink } from 'react-router-dom';
+import Icon from 'soapbox/components/icon';
import AvatarOverlay from '../../../components/avatar_overlay';
import DisplayName from '../../../components/display_name';
-import Icon from 'soapbox/components/icon';
-import { NavLink } from 'react-router-dom';
export default class MovedNote extends ImmutablePureComponent {
diff --git a/app/soapbox/features/account_timeline/containers/header_container.js b/app/soapbox/features/account_timeline/containers/header_container.js
index 8694420f6..1f09bbb91 100644
--- a/app/soapbox/features/account_timeline/containers/header_container.js
+++ b/app/soapbox/features/account_timeline/containers/header_container.js
@@ -1,5 +1,21 @@
import React from 'react';
import { connect } from 'react-redux';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { List as ImmutableList } from 'immutable';
+import { getSettings } from 'soapbox/actions/settings';
+import { launchChat } from 'soapbox/actions/chats';
+import { deactivateUserModal, deleteUserModal } from 'soapbox/actions/moderation';
+import {
+ verifyUser,
+ unverifyUser,
+ promoteToAdmin,
+ promoteToModerator,
+ demoteToUser,
+ suggestUsers,
+ unsuggestUsers,
+} from 'soapbox/actions/admin';
+import { isAdmin } from 'soapbox/utils/accounts';
+import snackbar from 'soapbox/actions/snackbar';
import { makeGetAccount } from '../../../selectors';
import Header from '../components/header';
import {
@@ -21,22 +37,6 @@ import { initMuteModal } from '../../../actions/mutes';
import { initReport } from '../../../actions/reports';
import { openModal } from '../../../actions/modal';
import { blockDomain, unblockDomain } from '../../../actions/domain_blocks';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { List as ImmutableList } from 'immutable';
-import { getSettings } from 'soapbox/actions/settings';
-import { launchChat } from 'soapbox/actions/chats';
-import { deactivateUserModal, deleteUserModal } from 'soapbox/actions/moderation';
-import {
- verifyUser,
- unverifyUser,
- promoteToAdmin,
- promoteToModerator,
- demoteToUser,
- suggestUsers,
- unsuggestUsers,
-} from 'soapbox/actions/admin';
-import { isAdmin } from 'soapbox/utils/accounts';
-import snackbar from 'soapbox/actions/snackbar';
const messages = defineMessages({
unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },
diff --git a/app/soapbox/features/account_timeline/index.js b/app/soapbox/features/account_timeline/index.js
index 9172b26af..33f7eb63d 100644
--- a/app/soapbox/features/account_timeline/index.js
+++ b/app/soapbox/features/account_timeline/index.js
@@ -2,24 +2,24 @@ import React from 'react';
import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import { fetchAccount, fetchAccountByUsername } from '../../actions/accounts';
-import { expandAccountFeaturedTimeline, expandAccountTimeline } from '../../actions/timelines';
-import Icon from 'soapbox/components/icon';
-import StatusList from '../../components/status_list';
-import LoadingIndicator from '../../components/loading_indicator';
-import Column from 'soapbox/components/column';
// import ColumnSettingsContainer from './containers/column_settings_container';
-import SubNavigation from 'soapbox/components/sub_navigation';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
-import { fetchAccountIdentityProofs } from '../../actions/identity_proofs';
-import MissingIndicator from 'soapbox/components/missing_indicator';
import { NavLink } from 'react-router-dom';
-import { fetchPatronAccount } from '../../actions/patron';
+import MissingIndicator from 'soapbox/components/missing_indicator';
+import SubNavigation from 'soapbox/components/sub_navigation';
+import Column from 'soapbox/components/column';
+import Icon from 'soapbox/components/icon';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { getSettings } from 'soapbox/actions/settings';
import { makeGetStatusIds, findAccountByUsername } from 'soapbox/selectors';
+import { fetchAccountIdentityProofs } from '../../actions/identity_proofs';
+import { fetchPatronAccount } from '../../actions/patron';
+import LoadingIndicator from '../../components/loading_indicator';
+import StatusList from '../../components/status_list';
+import { expandAccountFeaturedTimeline, expandAccountTimeline } from '../../actions/timelines';
+import { fetchAccount, fetchAccountByUsername } from '../../actions/accounts';
const makeMapStateToProps = () => {
const getStatusIds = makeGetStatusIds();
diff --git a/app/soapbox/features/admin/awaiting_approval.js b/app/soapbox/features/admin/awaiting_approval.js
index 8193f9406..f23f9ba2d 100644
--- a/app/soapbox/features/admin/awaiting_approval.js
+++ b/app/soapbox/features/admin/awaiting_approval.js
@@ -4,10 +4,10 @@ import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from '../ui/components/column';
import ScrollableList from 'soapbox/components/scrollable_list';
-import UnapprovedAccount from './components/unapproved_account';
import { fetchUsers } from 'soapbox/actions/admin';
+import Column from '../ui/components/column';
+import UnapprovedAccount from './components/unapproved_account';
const messages = defineMessages({
heading: { id: 'column.admin.awaiting_approval', defaultMessage: 'Awaiting Approval' },
diff --git a/app/soapbox/features/admin/components/admin_nav.js b/app/soapbox/features/admin/components/admin_nav.js
index f500573ea..19639d890 100644
--- a/app/soapbox/features/admin/components/admin_nav.js
+++ b/app/soapbox/features/admin/components/admin_nav.js
@@ -2,10 +2,10 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Icon from 'soapbox/components/icon';
-import IconWithCounter from 'soapbox/components/icon_with_counter';
import { NavLink } from 'react-router-dom';
import { FormattedMessage } from 'react-intl';
+import Icon from 'soapbox/components/icon';
+import IconWithCounter from 'soapbox/components/icon_with_counter';
const mapStateToProps = (state, props) => ({
instance: state.get('instance'),
diff --git a/app/soapbox/features/admin/components/latest_accounts_panel.js b/app/soapbox/features/admin/components/latest_accounts_panel.js
index 55f64079d..90ad59bd2 100644
--- a/app/soapbox/features/admin/components/latest_accounts_panel.js
+++ b/app/soapbox/features/admin/components/latest_accounts_panel.js
@@ -4,9 +4,9 @@ import { connect } from 'react-redux';
import { injectIntl, defineMessages } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { is } from 'immutable';
import AccountListPanel from 'soapbox/features/ui/components/account_list_panel';
import { fetchUsers } from 'soapbox/actions/admin';
-import { is } from 'immutable';
import compareId from 'soapbox/compare_id';
const messages = defineMessages({
diff --git a/app/soapbox/features/admin/components/report.js b/app/soapbox/features/admin/components/report.js
index 8ee02407e..63ca2c1e4 100644
--- a/app/soapbox/features/admin/components/report.js
+++ b/app/soapbox/features/admin/components/report.js
@@ -8,10 +8,10 @@ import Avatar from 'soapbox/components/avatar';
import Button from 'soapbox/components/button';
import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
import Accordion from 'soapbox/features/ui/components/accordion';
-import ReportStatus from './report_status';
import { closeReports } from 'soapbox/actions/admin';
import snackbar from 'soapbox/actions/snackbar';
import { deactivateUserModal, deleteUserModal } from 'soapbox/actions/moderation';
+import ReportStatus from './report_status';
const messages = defineMessages({
reportClosed: { id: 'admin.reports.report_closed_message', defaultMessage: 'Report on @{name} was closed' },
diff --git a/app/soapbox/features/admin/components/report_status.js b/app/soapbox/features/admin/components/report_status.js
index 3f73e904a..724c9d655 100644
--- a/app/soapbox/features/admin/components/report_status.js
+++ b/app/soapbox/features/admin/components/report_status.js
@@ -3,10 +3,10 @@ import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages } from 'react-intl';
+import noop from 'lodash/noop';
import StatusContent from 'soapbox/components/status_content';
import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
import { openModal } from 'soapbox/actions/modal';
-import noop from 'lodash/noop';
import { MediaGallery, Video, Audio } from 'soapbox/features/ui/util/async-components';
import Bundle from 'soapbox/features/ui/components/bundle';
import { deleteStatusModal } from 'soapbox/actions/moderation';
diff --git a/app/soapbox/features/admin/index.js b/app/soapbox/features/admin/index.js
index e80ae1231..e40761cff 100644
--- a/app/soapbox/features/admin/index.js
+++ b/app/soapbox/features/admin/index.js
@@ -5,14 +5,14 @@ import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from '../ui/components/column';
-import RegistrationModePicker from './components/registration_mode_picker';
import { parseVersion } from 'soapbox/utils/features';
import sourceCode from 'soapbox/utils/code';
import { getSubscribersCsv, getUnsubscribersCsv, getCombinedCsv } from 'soapbox/actions/email_list';
import { getFeatures } from 'soapbox/utils/features';
import { isAdmin } from 'soapbox/utils/accounts';
import { isNumber } from 'soapbox/utils/numbers';
+import Column from '../ui/components/column';
+import RegistrationModePicker from './components/registration_mode_picker';
// https://stackoverflow.com/a/53230807
const download = (response, filename) => {
diff --git a/app/soapbox/features/admin/moderation_log.js b/app/soapbox/features/admin/moderation_log.js
index 134699908..c56f897d7 100644
--- a/app/soapbox/features/admin/moderation_log.js
+++ b/app/soapbox/features/admin/moderation_log.js
@@ -4,9 +4,9 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
-import Column from '../ui/components/column';
import ScrollableList from 'soapbox/components/scrollable_list';
import { fetchModerationLog } from 'soapbox/actions/admin';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.admin.moderation_log', defaultMessage: 'Moderation Log' },
diff --git a/app/soapbox/features/admin/reports.js b/app/soapbox/features/admin/reports.js
index ac34352c6..c2db49339 100644
--- a/app/soapbox/features/admin/reports.js
+++ b/app/soapbox/features/admin/reports.js
@@ -4,11 +4,11 @@ import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from '../ui/components/better_column';
import ScrollableList from 'soapbox/components/scrollable_list';
import { fetchReports } from 'soapbox/actions/admin';
-import Report from './components/report';
import { makeGetReport } from 'soapbox/selectors';
+import Column from '../ui/components/better_column';
+import Report from './components/report';
const messages = defineMessages({
heading: { id: 'column.admin.reports', defaultMessage: 'Reports' },
diff --git a/app/soapbox/features/admin/user_index.js b/app/soapbox/features/admin/user_index.js
index 53f3c2ecb..f4057169d 100644
--- a/app/soapbox/features/admin/user_index.js
+++ b/app/soapbox/features/admin/user_index.js
@@ -3,13 +3,13 @@ import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import { debounce } from 'lodash';
-import { fetchUsers } from 'soapbox/actions/admin';
import { injectIntl, defineMessages } from 'react-intl';
+import { Set as ImmutableSet, OrderedSet as ImmutableOrderedSet, is } from 'immutable';
+import { fetchUsers } from 'soapbox/actions/admin';
import AccountContainer from 'soapbox/containers/account_container';
import Column from 'soapbox/features/ui/components/column';
import ScrollableList from 'soapbox/components/scrollable_list';
import { SimpleForm, TextInput } from 'soapbox/features/forms';
-import { Set as ImmutableSet, OrderedSet as ImmutableOrderedSet, is } from 'immutable';
const messages = defineMessages({
heading: { id: 'column.admin.users', defaultMessage: 'Users' },
diff --git a/app/soapbox/features/aliases/components/account.js b/app/soapbox/features/aliases/components/account.js
index 0e67b2238..d1727d2fc 100644
--- a/app/soapbox/features/aliases/components/account.js
+++ b/app/soapbox/features/aliases/components/account.js
@@ -1,13 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
-import { makeGetAccount } from '../../../selectors';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { defineMessages, injectIntl } from 'react-intl';
+import { makeGetAccount } from '../../../selectors';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
import { addToAliases } from '../../../actions/aliases';
const messages = defineMessages({
diff --git a/app/soapbox/features/aliases/components/search.js b/app/soapbox/features/aliases/components/search.js
index 423063944..80e76bef5 100644
--- a/app/soapbox/features/aliases/components/search.js
+++ b/app/soapbox/features/aliases/components/search.js
@@ -2,10 +2,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
-import { fetchAliasesSuggestions, clearAliasesSuggestions, changeAliasesSuggestions } from '../../../actions/aliases';
import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import Button from 'soapbox/components/button';
+import { fetchAliasesSuggestions, clearAliasesSuggestions, changeAliasesSuggestions } from '../../../actions/aliases';
const messages = defineMessages({
search: { id: 'aliases.search', defaultMessage: 'Search your old account' },
diff --git a/app/soapbox/features/aliases/index.js b/app/soapbox/features/aliases/index.js
index 67759abe5..4945682d3 100644
--- a/app/soapbox/features/aliases/index.js
+++ b/app/soapbox/features/aliases/index.js
@@ -2,14 +2,14 @@ import React from 'react';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import Icon from 'soapbox/components/icon';
+import { makeGetAccount } from 'soapbox/selectors';
import Column from '../ui/components/column';
import ColumnSubheading from '../ui/components/column_subheading';
import ScrollableList from '../../components/scrollable_list';
-import Icon from 'soapbox/components/icon';
+import { removeFromAliases } from '../../actions/aliases';
import Search from './components/search';
import Account from './components/account';
-import { removeFromAliases } from '../../actions/aliases';
-import { makeGetAccount } from 'soapbox/selectors';
const messages = defineMessages({
heading: { id: 'column.aliases', defaultMessage: 'Account aliases' },
diff --git a/app/soapbox/features/audio/index.js b/app/soapbox/features/audio/index.js
index ed6548434..3983fa8e7 100644
--- a/app/soapbox/features/audio/index.js
+++ b/app/soapbox/features/audio/index.js
@@ -1,12 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
-import { formatTime } from 'soapbox/features/video';
-import Icon from 'soapbox/components/icon';
import classNames from 'classnames';
import { throttle } from 'lodash';
-import { getPointerPosition, fileNameFromURL } from 'soapbox/features/video';
import { debounce } from 'lodash';
+import { formatTime } from 'soapbox/features/video';
+import Icon from 'soapbox/components/icon';
+import { getPointerPosition, fileNameFromURL } from 'soapbox/features/video';
import Visualizer from './visualizer';
const messages = defineMessages({
diff --git a/app/soapbox/features/auth_login/components/__tests__/captcha-test.js b/app/soapbox/features/auth_login/components/__tests__/captcha-test.js
index 71117452a..645706d1b 100644
--- a/app/soapbox/features/auth_login/components/__tests__/captcha-test.js
+++ b/app/soapbox/features/auth_login/components/__tests__/captcha-test.js
@@ -1,8 +1,8 @@
import React from 'react';
-import CaptchaField, { NativeCaptchaField } from '../captcha';
import renderer from 'react-test-renderer';
-import { createComponent } from 'soapbox/test_helpers';
import { Map as ImmutableMap } from 'immutable';
+import { createComponent } from 'soapbox/test_helpers';
+import CaptchaField, { NativeCaptchaField } from '../captcha';
describe('', () => {
it('renders null by default', () => {
diff --git a/app/soapbox/features/auth_login/components/__tests__/login_form-test.js b/app/soapbox/features/auth_login/components/__tests__/login_form-test.js
index 3fb0429c8..7f9f20a62 100644
--- a/app/soapbox/features/auth_login/components/__tests__/login_form-test.js
+++ b/app/soapbox/features/auth_login/components/__tests__/login_form-test.js
@@ -1,7 +1,7 @@
import React from 'react';
-import LoginForm from '../login_form';
import { createComponent, mockStore } from 'soapbox/test_helpers';
import rootReducer from 'soapbox/reducers';
+import LoginForm from '../login_form';
describe('', () => {
diff --git a/app/soapbox/features/auth_login/components/__tests__/login_page-test.js b/app/soapbox/features/auth_login/components/__tests__/login_page-test.js
index 382037f45..3ebe5f036 100644
--- a/app/soapbox/features/auth_login/components/__tests__/login_page-test.js
+++ b/app/soapbox/features/auth_login/components/__tests__/login_page-test.js
@@ -1,7 +1,7 @@
import React from 'react';
-import LoginPage from '../login_page';
import { createComponent, mockStore } from 'soapbox/test_helpers';
import rootReducer from 'soapbox/reducers';
+import LoginPage from '../login_page';
describe('', () => {
it('renders correctly on load', () => {
diff --git a/app/soapbox/features/auth_login/components/__tests__/otp_auth_form-test.js b/app/soapbox/features/auth_login/components/__tests__/otp_auth_form-test.js
index 335780280..70f5a24c6 100644
--- a/app/soapbox/features/auth_login/components/__tests__/otp_auth_form-test.js
+++ b/app/soapbox/features/auth_login/components/__tests__/otp_auth_form-test.js
@@ -1,7 +1,7 @@
import React from 'react';
-import OtpAuthForm from '../otp_auth_form';
-import { createComponent, mockStore } from 'soapbox/test_helpers';
import { Map as ImmutableMap } from 'immutable';
+import { createComponent, mockStore } from 'soapbox/test_helpers';
+import OtpAuthForm from '../otp_auth_form';
describe('', () => {
it('renders correctly', () => {
diff --git a/app/soapbox/features/auth_login/components/captcha.js b/app/soapbox/features/auth_login/components/captcha.js
index e393c3e92..e0f497663 100644
--- a/app/soapbox/features/auth_login/components/captcha.js
+++ b/app/soapbox/features/auth_login/components/captcha.js
@@ -3,9 +3,9 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
import { Map as ImmutableMap } from 'immutable';
+import { FormattedMessage } from 'react-intl';
import { fetchCaptcha } from 'soapbox/actions/auth';
import { TextInput } from 'soapbox/features/forms';
-import { FormattedMessage } from 'react-intl';
const noOp = () => {};
diff --git a/app/soapbox/features/auth_login/components/login_page.js b/app/soapbox/features/auth_login/components/login_page.js
index 720616616..aa291e808 100644
--- a/app/soapbox/features/auth_login/components/login_page.js
+++ b/app/soapbox/features/auth_login/components/login_page.js
@@ -3,11 +3,11 @@ import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { injectIntl } from 'react-intl';
-import LoginForm from './login_form';
-import OtpAuthForm from './otp_auth_form';
import { logIn, verifyCredentials, switchAccount } from 'soapbox/actions/auth';
import { fetchInstance } from 'soapbox/actions/instance';
import { isStandalone } from 'soapbox/utils/state';
+import OtpAuthForm from './otp_auth_form';
+import LoginForm from './login_form';
const mapStateToProps = state => ({
me: state.get('me'),
diff --git a/app/soapbox/features/auth_login/components/otp_auth_form.js b/app/soapbox/features/auth_login/components/otp_auth_form.js
index 132e4e3c5..acda9c898 100644
--- a/app/soapbox/features/auth_login/components/otp_auth_form.js
+++ b/app/soapbox/features/auth_login/components/otp_auth_form.js
@@ -3,9 +3,9 @@ import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import PropTypes from 'prop-types';
import { otpVerify, verifyCredentials, switchAccount } from 'soapbox/actions/auth';
import { SimpleInput } from 'soapbox/features/forms';
-import PropTypes from 'prop-types';
const messages = defineMessages({
otpCodeHint: { id: 'login.fields.otp_code_hint', defaultMessage: 'Enter the two-factor code generated by your phone app or use one of your recovery codes' },
diff --git a/app/soapbox/features/auth_login/components/password_reset.js b/app/soapbox/features/auth_login/components/password_reset.js
index 0c2f8bb54..60e050f24 100644
--- a/app/soapbox/features/auth_login/components/password_reset.js
+++ b/app/soapbox/features/auth_login/components/password_reset.js
@@ -2,9 +2,9 @@ import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, FormattedMessage, injectIntl } from 'react-intl';
+import { Redirect } from 'react-router-dom';
import { resetPassword } from 'soapbox/actions/security';
import { SimpleForm, FieldsGroup, TextInput } from 'soapbox/features/forms';
-import { Redirect } from 'react-router-dom';
import snackbar from 'soapbox/actions/snackbar';
const messages = defineMessages({
diff --git a/app/soapbox/features/auth_login/components/registration_form.js b/app/soapbox/features/auth_login/components/registration_form.js
index 0f11a3a9e..2413b16cb 100644
--- a/app/soapbox/features/auth_login/components/registration_form.js
+++ b/app/soapbox/features/auth_login/components/registration_form.js
@@ -7,6 +7,8 @@ import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
import { Link } from 'react-router-dom';
import { CancelToken } from 'axios';
import { debounce } from 'lodash';
+import { Map as ImmutableMap } from 'immutable';
+import { v4 as uuidv4 } from 'uuid';
import ShowablePassword from 'soapbox/components/showable_password';
import {
SimpleForm,
@@ -17,8 +19,6 @@ import {
} from 'soapbox/features/forms';
import { register, verifyCredentials } from 'soapbox/actions/auth';
import CaptchaField from 'soapbox/features/auth_login/components/captcha';
-import { Map as ImmutableMap } from 'immutable';
-import { v4 as uuidv4 } from 'uuid';
import { getSettings } from 'soapbox/actions/settings';
import { openModal } from 'soapbox/actions/modal';
import { getFeatures } from 'soapbox/utils/features';
diff --git a/app/soapbox/features/backups/index.js b/app/soapbox/features/backups/index.js
index a247db302..1e4a1ce5f 100644
--- a/app/soapbox/features/backups/index.js
+++ b/app/soapbox/features/backups/index.js
@@ -3,13 +3,13 @@ import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
-import Column from '../ui/components/better_column';
+import classNames from 'classnames';
import {
fetchBackups,
createBackup,
} from 'soapbox/actions/backups';
import ScrollableList from 'soapbox/components/scrollable_list';
-import classNames from 'classnames';
+import Column from '../ui/components/better_column';
const messages = defineMessages({
heading: { id: 'column.backups', defaultMessage: 'Backups' },
diff --git a/app/soapbox/features/bookmarks/index.js b/app/soapbox/features/bookmarks/index.js
index ec4185f96..7fb19f2fc 100644
--- a/app/soapbox/features/bookmarks/index.js
+++ b/app/soapbox/features/bookmarks/index.js
@@ -2,13 +2,13 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from 'soapbox/components/column';
-import SubNavigation from 'soapbox/components/sub_navigation';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { debounce } from 'lodash';
+import Column from 'soapbox/components/column';
+import SubNavigation from 'soapbox/components/sub_navigation';
import StatusList from '../../components/status_list';
import { fetchBookmarkedStatuses, expandBookmarkedStatuses } from '../../actions/bookmarks';
-import { debounce } from 'lodash';
const messages = defineMessages({
heading: { id: 'column.bookmarks', defaultMessage: 'Bookmarks' },
diff --git a/app/soapbox/features/chats/chat_room.js b/app/soapbox/features/chats/chat_room.js
index 73d9a32a1..a3d54838a 100644
--- a/app/soapbox/features/chats/chat_room.js
+++ b/app/soapbox/features/chats/chat_room.js
@@ -5,15 +5,15 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { Map as ImmutableMap } from 'immutable';
import Avatar from 'soapbox/components/avatar';
import { getAcct } from 'soapbox/utils/accounts';
import { fetchChat, markChatRead } from 'soapbox/actions/chats';
-import ChatBox from './components/chat_box';
import Column from 'soapbox/components/column';
import ColumnBackButton from 'soapbox/components/column_back_button';
-import { Map as ImmutableMap } from 'immutable';
import { makeGetChat } from 'soapbox/selectors';
import { displayFqn } from 'soapbox/utils/state';
+import ChatBox from './components/chat_box';
const mapStateToProps = (state, { params }) => {
const getChat = makeGetChat();
diff --git a/app/soapbox/features/chats/components/audio_toggle.js b/app/soapbox/features/chats/components/audio_toggle.js
index daf1eae0c..c0754f5f9 100644
--- a/app/soapbox/features/chats/components/audio_toggle.js
+++ b/app/soapbox/features/chats/components/audio_toggle.js
@@ -2,9 +2,9 @@ import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { injectIntl, defineMessages } from 'react-intl';
+import Toggle from 'react-toggle';
import Icon from 'soapbox/components/icon';
import { changeSetting, getSettings } from 'soapbox/actions/settings';
-import Toggle from 'react-toggle';
const messages = defineMessages({
switchOn: { id: 'chats.audio_toggle_on', defaultMessage: 'Audio notification on' },
diff --git a/app/soapbox/features/chats/components/chat.js b/app/soapbox/features/chats/components/chat.js
index 462bc7fe4..0fed18c77 100644
--- a/app/soapbox/features/chats/components/chat.js
+++ b/app/soapbox/features/chats/components/chat.js
@@ -3,13 +3,13 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
-import Avatar from '../../../components/avatar';
-import DisplayName from '../../../components/display_name';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { shortNumberFormat } from 'soapbox/utils/numbers';
import emojify from 'soapbox/features/emoji/emoji';
import { makeGetChat } from 'soapbox/selectors';
import Icon from 'soapbox/components/icon';
+import DisplayName from '../../../components/display_name';
+import Avatar from '../../../components/avatar';
const makeMapStateToProps = () => {
const getChat = makeGetChat();
diff --git a/app/soapbox/features/chats/components/chat_box.js b/app/soapbox/features/chats/components/chat_box.js
index a2c79a0a1..c7d79211e 100644
--- a/app/soapbox/features/chats/components/chat_box.js
+++ b/app/soapbox/features/chats/components/chat_box.js
@@ -4,17 +4,17 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { OrderedSet as ImmutableOrderedSet } from 'immutable';
import {
sendChatMessage,
markChatRead,
} from 'soapbox/actions/chats';
-import { OrderedSet as ImmutableOrderedSet } from 'immutable';
-import ChatMessageList from './chat_message_list';
import UploadButton from 'soapbox/features/compose/components/upload_button';
import { uploadMedia } from 'soapbox/actions/media';
import UploadProgress from 'soapbox/features/compose/components/upload_progress';
import { truncateFilename } from 'soapbox/utils/media';
import IconButton from 'soapbox/components/icon_button';
+import ChatMessageList from './chat_message_list';
const messages = defineMessages({
placeholder: { id: 'chat_box.input.placeholder', defaultMessage: 'Send a message…' },
diff --git a/app/soapbox/features/chats/components/chat_list.js b/app/soapbox/features/chats/components/chat_list.js
index 35394174e..eae3476eb 100644
--- a/app/soapbox/features/chats/components/chat_list.js
+++ b/app/soapbox/features/chats/components/chat_list.js
@@ -5,11 +5,11 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { debounce } from 'lodash';
+import { createSelector } from 'reselect';
import { expandChats } from 'soapbox/actions/chats';
import ScrollableList from 'soapbox/components/scrollable_list';
import PlaceholderChat from 'soapbox/features/placeholder/components/placeholder_chat';
import Chat from './chat';
-import { createSelector } from 'reselect';
const messages = defineMessages({
emptyMessage: { id: 'chat_panels.main_window.empty', defaultMessage: 'No chats found. To start a chat, visit a user\'s profile' },
diff --git a/app/soapbox/features/chats/components/chat_message_list.js b/app/soapbox/features/chats/components/chat_message_list.js
index 3c7db735a..9b5607f3a 100644
--- a/app/soapbox/features/chats/components/chat_message_list.js
+++ b/app/soapbox/features/chats/components/chat_message_list.js
@@ -5,16 +5,16 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import classNames from 'classnames';
+import { escape, throttle } from 'lodash';
+import { createSelector } from 'reselect';
import { fetchChatMessages, deleteChatMessage } from 'soapbox/actions/chats';
import emojify from 'soapbox/features/emoji/emoji';
-import classNames from 'classnames';
import { openModal } from 'soapbox/actions/modal';
-import { escape, throttle } from 'lodash';
import { MediaGallery } from 'soapbox/features/ui/util/async-components';
import Bundle from 'soapbox/features/ui/components/bundle';
import DropdownMenuContainer from 'soapbox/containers/dropdown_menu_container';
import { initReportById } from 'soapbox/actions/reports';
-import { createSelector } from 'reselect';
import { onlyEmoji } from 'soapbox/utils/rich_content';
const BIG_EMOJI_LIMIT = 1;
diff --git a/app/soapbox/features/chats/components/chat_panes.js b/app/soapbox/features/chats/components/chat_panes.js
index f8c9151cf..b8550237a 100644
--- a/app/soapbox/features/chats/components/chat_panes.js
+++ b/app/soapbox/features/chats/components/chat_panes.js
@@ -3,17 +3,17 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { getSettings } from 'soapbox/actions/settings';
-import ChatList from './chat_list';
import { FormattedMessage } from 'react-intl';
-import { openChat, launchChat, toggleMainWindow } from 'soapbox/actions/chats';
-import ChatWindow from './chat_window';
-import { shortNumberFormat } from 'soapbox/utils/numbers';
-import AudioToggle from 'soapbox/features/chats/components/audio_toggle';
import { List as ImmutableList } from 'immutable';
import { createSelector } from 'reselect';
-import AccountSearch from 'soapbox/components/account_search';
import { injectIntl, defineMessages } from 'react-intl';
+import { shortNumberFormat } from 'soapbox/utils/numbers';
+import AudioToggle from 'soapbox/features/chats/components/audio_toggle';
+import AccountSearch from 'soapbox/components/account_search';
+import { openChat, launchChat, toggleMainWindow } from 'soapbox/actions/chats';
+import { getSettings } from 'soapbox/actions/settings';
+import ChatWindow from './chat_window';
+import ChatList from './chat_list';
const messages = defineMessages({
searchPlaceholder: { id: 'chats.search_placeholder', defaultMessage: 'Start a chat with…' },
diff --git a/app/soapbox/features/chats/components/chat_window.js b/app/soapbox/features/chats/components/chat_window.js
index 4f1409755..f25d27fb0 100644
--- a/app/soapbox/features/chats/components/chat_window.js
+++ b/app/soapbox/features/chats/components/chat_window.js
@@ -12,11 +12,11 @@ import {
closeChat,
toggleChat,
} from 'soapbox/actions/chats';
-import ChatBox from './chat_box';
import { shortNumberFormat } from 'soapbox/utils/numbers';
import { displayFqn } from 'soapbox/utils/state';
import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
import { makeGetChat } from 'soapbox/selectors';
+import ChatBox from './chat_box';
const makeMapStateToProps = () => {
const getChat = makeGetChat();
diff --git a/app/soapbox/features/chats/index.js b/app/soapbox/features/chats/index.js
index 930f55a22..842fa4187 100644
--- a/app/soapbox/features/chats/index.js
+++ b/app/soapbox/features/chats/index.js
@@ -1,13 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
-import Column from '../../components/column';
-import ColumnHeader from '../../components/column_header';
-import { fetchChats, launchChat } from 'soapbox/actions/chats';
import { defineMessages, injectIntl } from 'react-intl';
-import ChatList from './components/chat_list';
+import { fetchChats, launchChat } from 'soapbox/actions/chats';
import AudioToggle from 'soapbox/features/chats/components/audio_toggle';
import AccountSearch from 'soapbox/components/account_search';
+import Column from '../../components/column';
+import ColumnHeader from '../../components/column_header';
+import ChatList from './components/chat_list';
const messages = defineMessages({
title: { id: 'column.chats', defaultMessage: 'Chats' },
diff --git a/app/soapbox/features/community_timeline/index.js b/app/soapbox/features/community_timeline/index.js
index 44ee6d45f..045626ea3 100644
--- a/app/soapbox/features/community_timeline/index.js
+++ b/app/soapbox/features/community_timeline/index.js
@@ -2,13 +2,13 @@ import React from 'react';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
-import StatusListContainer from '../ui/containers/status_list_container';
-import Column from '../../components/column';
-import ColumnSettings from './containers/column_settings_container';
-import { expandCommunityTimeline } from '../../actions/timelines';
-import { connectCommunityStream } from '../../actions/streaming';
import { getSettings } from 'soapbox/actions/settings';
import SubNavigation from 'soapbox/components/sub_navigation';
+import StatusListContainer from '../ui/containers/status_list_container';
+import Column from '../../components/column';
+import { expandCommunityTimeline } from '../../actions/timelines';
+import { connectCommunityStream } from '../../actions/streaming';
+import ColumnSettings from './containers/column_settings_container';
const messages = defineMessages({
title: { id: 'column.community', defaultMessage: 'Local timeline' },
diff --git a/app/soapbox/features/compose/components/autosuggest_account.js b/app/soapbox/features/compose/components/autosuggest_account.js
index 16c769b87..a3c40b128 100644
--- a/app/soapbox/features/compose/components/autosuggest_account.js
+++ b/app/soapbox/features/compose/components/autosuggest_account.js
@@ -1,8 +1,8 @@
import React from 'react';
-import Avatar from '../../../components/avatar';
-import DisplayName from '../../../components/display_name';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import Avatar from '../../../components/avatar';
+import DisplayName from '../../../components/display_name';
export default class AutosuggestAccount extends ImmutablePureComponent {
diff --git a/app/soapbox/features/compose/components/compose_form.js b/app/soapbox/features/compose/components/compose_form.js
index 6698d2232..028d933a1 100644
--- a/app/soapbox/features/compose/components/compose_form.js
+++ b/app/soapbox/features/compose/components/compose_form.js
@@ -1,18 +1,21 @@
import React from 'react';
// import TextCharacterCounter from './text_character_counter';
-import VisualCharacterCounter from './visual_character_counter';
-import Button from '../../../components/button';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { Link } from 'react-router-dom';
+import { defineMessages, FormattedMessage } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { length } from 'stringz';
+import { get } from 'lodash';
+import Icon from 'soapbox/components/icon';
+import Button from '../../../components/button';
import ReplyIndicatorContainer from '../containers/reply_indicator_container';
import ReplyMentions from '../containers/reply_mentions_container';
import AutosuggestTextarea from '../../../components/autosuggest_textarea';
import AutosuggestInput from '../../../components/autosuggest_input';
import PollButtonContainer from '../containers/poll_button_container';
import UploadButtonContainer from '../containers/upload_button_container';
-import { defineMessages, FormattedMessage } from 'react-intl';
import SpoilerButtonContainer from '../containers/spoiler_button_container';
import MarkdownButtonContainer from '../containers/markdown_button_container';
import ScheduleFormContainer from '../containers/schedule_form_container';
@@ -23,12 +26,9 @@ import PollFormContainer from '../containers/poll_form_container';
import UploadFormContainer from '../containers/upload_form_container';
import WarningContainer from '../containers/warning_container';
import { isMobile } from '../../../is_mobile';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { length } from 'stringz';
import { countableText } from '../util/counter';
-import Icon from 'soapbox/components/icon';
-import { get } from 'lodash';
import Warning from '../components/warning';
+import VisualCharacterCounter from './visual_character_counter';
const allowedAroundShortCode = '><\u0085\u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\u0009\u000a\u000b\u000c\u000d';
diff --git a/app/soapbox/features/compose/components/emoji_picker_dropdown.js b/app/soapbox/features/compose/components/emoji_picker_dropdown.js
index 29d3270c9..1e841400a 100644
--- a/app/soapbox/features/compose/components/emoji_picker_dropdown.js
+++ b/app/soapbox/features/compose/components/emoji_picker_dropdown.js
@@ -1,13 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
-import { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components';
import Overlay from 'react-overlays/lib/Overlay';
import classNames from 'classnames';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { supportsPassiveEvents } from 'detect-passive-events';
-import { buildCustomEmojis } from '../../emoji/emoji';
import { joinPublicPath } from 'soapbox/utils/static';
+import { buildCustomEmojis } from '../../emoji/emoji';
+import { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components';
const messages = defineMessages({
emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' },
diff --git a/app/soapbox/features/compose/components/markdown_button.js b/app/soapbox/features/compose/components/markdown_button.js
index f8443e249..7220b9618 100644
--- a/app/soapbox/features/compose/components/markdown_button.js
+++ b/app/soapbox/features/compose/components/markdown_button.js
@@ -1,8 +1,8 @@
import React from 'react';
-import IconButton from '../../../components/icon_button';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import IconButton from '../../../components/icon_button';
const messages = defineMessages({
marked: { id: 'compose_form.markdown.marked', defaultMessage: 'Post markdown enabled' },
diff --git a/app/soapbox/features/compose/components/poll_button.js b/app/soapbox/features/compose/components/poll_button.js
index 5a2f20769..ea74de373 100644
--- a/app/soapbox/features/compose/components/poll_button.js
+++ b/app/soapbox/features/compose/components/poll_button.js
@@ -1,7 +1,7 @@
import React from 'react';
-import IconButton from '../../../components/icon_button';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
+import IconButton from '../../../components/icon_button';
const messages = defineMessages({
add_poll: { id: 'poll_button.add_poll', defaultMessage: 'Add a poll' },
diff --git a/app/soapbox/features/compose/components/poll_form.js b/app/soapbox/features/compose/components/poll_form.js
index 8b8edc9fa..10c0edd19 100644
--- a/app/soapbox/features/compose/components/poll_form.js
+++ b/app/soapbox/features/compose/components/poll_form.js
@@ -6,10 +6,10 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import classNames from 'classnames';
import IconButton from 'soapbox/components/icon_button';
import Icon from 'soapbox/components/icon';
import AutosuggestInput from 'soapbox/components/autosuggest_input';
-import classNames from 'classnames';
const messages = defineMessages({
option_placeholder: { id: 'compose_form.poll.option_placeholder', defaultMessage: 'Choice {number}' },
diff --git a/app/soapbox/features/compose/components/privacy_dropdown.js b/app/soapbox/features/compose/components/privacy_dropdown.js
index ae65a84ed..f9ec6307a 100644
--- a/app/soapbox/features/compose/components/privacy_dropdown.js
+++ b/app/soapbox/features/compose/components/privacy_dropdown.js
@@ -1,13 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { injectIntl, defineMessages } from 'react-intl';
-import IconButton from '../../../components/icon_button';
import Overlay from 'react-overlays/lib/Overlay';
-import Motion from '../../ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import { supportsPassiveEvents } from 'detect-passive-events';
import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
+import Motion from '../../ui/util/optional_motion';
+import IconButton from '../../../components/icon_button';
const messages = defineMessages({
public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
diff --git a/app/soapbox/features/compose/components/reply_indicator.js b/app/soapbox/features/compose/components/reply_indicator.js
index 1e45dad80..63e602226 100644
--- a/app/soapbox/features/compose/components/reply_indicator.js
+++ b/app/soapbox/features/compose/components/reply_indicator.js
@@ -1,14 +1,14 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import { defineMessages, injectIntl } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { NavLink } from 'react-router-dom';
+import AttachmentThumbs from 'soapbox/components/attachment_thumbs';
import Avatar from '../../../components/avatar';
import IconButton from '../../../components/icon_button';
import DisplayName from '../../../components/display_name';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import { isRtl } from '../../../rtl';
-import AttachmentThumbs from 'soapbox/components/attachment_thumbs';
-import { NavLink } from 'react-router-dom';
const messages = defineMessages({
cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' },
diff --git a/app/soapbox/features/compose/components/schedule_button.js b/app/soapbox/features/compose/components/schedule_button.js
index 5744509ee..e0072e08c 100644
--- a/app/soapbox/features/compose/components/schedule_button.js
+++ b/app/soapbox/features/compose/components/schedule_button.js
@@ -1,8 +1,8 @@
import React from 'react';
-import IconButton from '../../../components/icon_button';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import IconButton from '../../../components/icon_button';
const messages = defineMessages({
add_schedule: { id: 'schedule_button.add_schedule', defaultMessage: 'Schedule post for later' },
diff --git a/app/soapbox/features/compose/components/schedule_form.js b/app/soapbox/features/compose/components/schedule_form.js
index fbbcb4856..b3730e7cb 100644
--- a/app/soapbox/features/compose/components/schedule_form.js
+++ b/app/soapbox/features/compose/components/schedule_form.js
@@ -4,11 +4,11 @@ import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { setSchedule, removeSchedule } from '../../../actions/compose';
import DatePicker from 'react-datepicker';
import 'react-datepicker/dist/react-datepicker.css';
-import IconButton from 'soapbox/components/icon_button';
import classNames from 'classnames';
+import IconButton from 'soapbox/components/icon_button';
+import { setSchedule, removeSchedule } from '../../../actions/compose';
const messages = defineMessages({
schedule: { id: 'schedule.post_time', defaultMessage: 'Post Date/Time' },
diff --git a/app/soapbox/features/compose/components/search.js b/app/soapbox/features/compose/components/search.js
index f14f79a84..4fe840152 100644
--- a/app/soapbox/features/compose/components/search.js
+++ b/app/soapbox/features/compose/components/search.js
@@ -1,9 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
+import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import AutosuggestAccountInput from 'soapbox/components/autosuggest_account_input';
-import classNames from 'classnames';
const messages = defineMessages({
placeholder: { id: 'search.placeholder', defaultMessage: 'Search' },
diff --git a/app/soapbox/features/compose/components/search_results.js b/app/soapbox/features/compose/components/search_results.js
index 13487887b..31aff5e24 100644
--- a/app/soapbox/features/compose/components/search_results.js
+++ b/app/soapbox/features/compose/components/search_results.js
@@ -3,16 +3,16 @@ import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl } from 'react-intl';
-import AccountContainer from '../../../containers/account_container';
-import StatusContainer from '../../../containers/status_container';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Hashtag from '../../../components/hashtag';
import ScrollableList from 'soapbox/components/scrollable_list';
import PlaceholderAccount from 'soapbox/features/placeholder/components/placeholder_account';
import PlaceholderHashtag from 'soapbox/features/placeholder/components/placeholder_hashtag';
import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder_status';
import Pullable from 'soapbox/components/pullable';
import FilterBar from 'soapbox/components/filter_bar';
+import Hashtag from '../../../components/hashtag';
+import StatusContainer from '../../../containers/status_container';
+import AccountContainer from '../../../containers/account_container';
const messages = defineMessages({
accounts: { id: 'search_results.accounts', defaultMessage: 'People' },
diff --git a/app/soapbox/features/compose/components/spoiler_button.js b/app/soapbox/features/compose/components/spoiler_button.js
index 4f0b8fb64..abfa972c5 100644
--- a/app/soapbox/features/compose/components/spoiler_button.js
+++ b/app/soapbox/features/compose/components/spoiler_button.js
@@ -1,8 +1,8 @@
import React from 'react';
-import IconButton from '../../../components/icon_button';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import IconButton from '../../../components/icon_button';
const messages = defineMessages({
marked: { id: 'compose_form.spoiler.marked', defaultMessage: 'Text is hidden behind warning' },
diff --git a/app/soapbox/features/compose/components/upload.js b/app/soapbox/features/compose/components/upload.js
index d0d150ca7..dc23fa5b9 100644
--- a/app/soapbox/features/compose/components/upload.js
+++ b/app/soapbox/features/compose/components/upload.js
@@ -1,7 +1,6 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import Motion from '../../ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
@@ -9,6 +8,7 @@ import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import IconButton from 'soapbox/components/icon_button';
import Blurhash from 'soapbox/components/blurhash';
+import Motion from '../../ui/util/optional_motion';
const MIMETYPE_ICONS = {
'application/x-freearc': 'file-archive-o',
diff --git a/app/soapbox/features/compose/components/upload_button.js b/app/soapbox/features/compose/components/upload_button.js
index 811b7d9a4..89f328343 100644
--- a/app/soapbox/features/compose/components/upload_button.js
+++ b/app/soapbox/features/compose/components/upload_button.js
@@ -1,10 +1,10 @@
import React from 'react';
-import IconButton from '../../../components/icon_button';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import IconButton from '../../../components/icon_button';
const messages = defineMessages({
upload: { id: 'upload_button.label', defaultMessage: 'Add media attachment' },
diff --git a/app/soapbox/features/compose/components/upload_form.js b/app/soapbox/features/compose/components/upload_form.js
index 111bd0fb2..a9a2740f5 100644
--- a/app/soapbox/features/compose/components/upload_form.js
+++ b/app/soapbox/features/compose/components/upload_form.js
@@ -1,8 +1,8 @@
import React from 'react';
import classNames from 'classnames';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import UploadProgressContainer from '../containers/upload_progress_container';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import UploadProgressContainer from '../containers/upload_progress_container';
import UploadContainer from '../containers/upload_container';
import SensitiveButtonContainer from '../containers/sensitive_button_container';
diff --git a/app/soapbox/features/compose/components/upload_progress.js b/app/soapbox/features/compose/components/upload_progress.js
index ef084c63c..cd70b5506 100644
--- a/app/soapbox/features/compose/components/upload_progress.js
+++ b/app/soapbox/features/compose/components/upload_progress.js
@@ -1,9 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
-import Motion from '../../ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import { FormattedMessage } from 'react-intl';
import Icon from 'soapbox/components/icon';
+import Motion from '../../ui/util/optional_motion';
export default class UploadProgress extends React.PureComponent {
diff --git a/app/soapbox/features/compose/components/warning.js b/app/soapbox/features/compose/components/warning.js
index 28502c7c5..cf495aba8 100644
--- a/app/soapbox/features/compose/components/warning.js
+++ b/app/soapbox/features/compose/components/warning.js
@@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
-import Motion from '../../ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
+import Motion from '../../ui/util/optional_motion';
export default class Warning extends React.PureComponent {
diff --git a/app/soapbox/features/compose/containers/emoji_picker_dropdown_container.js b/app/soapbox/features/compose/containers/emoji_picker_dropdown_container.js
index b633165c2..eb4ff7b45 100644
--- a/app/soapbox/features/compose/containers/emoji_picker_dropdown_container.js
+++ b/app/soapbox/features/compose/containers/emoji_picker_dropdown_container.js
@@ -1,8 +1,8 @@
import { connect } from 'react-redux';
-import EmojiPickerDropdown from '../components/emoji_picker_dropdown';
-import { getSettings, changeSetting } from '../../../actions/settings';
import { createSelector } from 'reselect';
import { Map as ImmutableMap } from 'immutable';
+import EmojiPickerDropdown from '../components/emoji_picker_dropdown';
+import { getSettings, changeSetting } from '../../../actions/settings';
import { useEmoji } from '../../../actions/emojis';
const perLine = 8;
diff --git a/app/soapbox/features/compose/containers/markdown_button_container.js b/app/soapbox/features/compose/containers/markdown_button_container.js
index 05fd5c111..788d0692d 100644
--- a/app/soapbox/features/compose/containers/markdown_button_container.js
+++ b/app/soapbox/features/compose/containers/markdown_button_container.js
@@ -1,7 +1,7 @@
import { connect } from 'react-redux';
+import { getFeatures } from 'soapbox/utils/features';
import MarkdownButton from '../components/markdown_button';
import { changeComposeContentType } from '../../../actions/compose';
-import { getFeatures } from 'soapbox/utils/features';
const mapStateToProps = (state, { intl }) => {
const instance = state.get('instance');
diff --git a/app/soapbox/features/compose/containers/search_container.js b/app/soapbox/features/compose/containers/search_container.js
index f11a6af05..f13206fb1 100644
--- a/app/soapbox/features/compose/containers/search_container.js
+++ b/app/soapbox/features/compose/containers/search_container.js
@@ -1,4 +1,5 @@
import { connect } from 'react-redux';
+import { debounce } from 'lodash';
import {
changeSearch,
clearSearch,
@@ -6,7 +7,6 @@ import {
showSearch,
} from '../../../actions/search';
import Search from '../components/search';
-import { debounce } from 'lodash';
const mapStateToProps = state => ({
value: state.getIn(['search', 'value']),
diff --git a/app/soapbox/features/compose/containers/search_results_container.js b/app/soapbox/features/compose/containers/search_results_container.js
index bad0f94a9..869bd40c0 100644
--- a/app/soapbox/features/compose/containers/search_results_container.js
+++ b/app/soapbox/features/compose/containers/search_results_container.js
@@ -1,8 +1,8 @@
import { connect } from 'react-redux';
+import { getFeatures } from 'soapbox/utils/features';
import SearchResults from '../components/search_results';
import { fetchSuggestions, dismissSuggestion } from '../../../actions/suggestions';
import { expandSearch, setFilter } from '../../../actions/search';
-import { getFeatures } from 'soapbox/utils/features';
const mapStateToProps = state => {
const instance = state.get('instance');
diff --git a/app/soapbox/features/compose/containers/sensitive_button_container.js b/app/soapbox/features/compose/containers/sensitive_button_container.js
index 3497c0009..fb3a195b1 100644
--- a/app/soapbox/features/compose/containers/sensitive_button_container.js
+++ b/app/soapbox/features/compose/containers/sensitive_button_container.js
@@ -2,8 +2,8 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import classNames from 'classnames';
-import { changeComposeSensitivity } from 'soapbox/actions/compose';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
+import { changeComposeSensitivity } from 'soapbox/actions/compose';
const messages = defineMessages({
marked: { id: 'compose_form.sensitive.marked', defaultMessage: 'Media is marked as sensitive' },
diff --git a/app/soapbox/features/compose/containers/upload_container.js b/app/soapbox/features/compose/containers/upload_container.js
index 08ee41667..73caec8b4 100644
--- a/app/soapbox/features/compose/containers/upload_container.js
+++ b/app/soapbox/features/compose/containers/upload_container.js
@@ -1,9 +1,9 @@
import { connect } from 'react-redux';
+import { List as ImmutableList } from 'immutable';
import Upload from '../components/upload';
import { undoUploadCompose, changeUploadCompose } from '../../../actions/compose';
import { openModal } from '../../../actions/modal';
import { submitCompose } from '../../../actions/compose';
-import { List as ImmutableList } from 'immutable';
const mapStateToProps = (state, { id }) => ({
media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),
diff --git a/app/soapbox/features/compose/containers/warning_container.js b/app/soapbox/features/compose/containers/warning_container.js
index 8db910db8..aa3455989 100644
--- a/app/soapbox/features/compose/containers/warning_container.js
+++ b/app/soapbox/features/compose/containers/warning_container.js
@@ -1,9 +1,9 @@
import React from 'react';
import { connect } from 'react-redux';
-import Warning from '../components/warning';
import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Link } from 'react-router-dom';
+import Warning from '../components/warning';
const APPROX_HASHTAG_RE = /(?:^|[^\/\)\w])#(\w*[a-zA-Z·]\w*)/i;
diff --git a/app/soapbox/features/conversations/components/conversations_list.js b/app/soapbox/features/conversations/components/conversations_list.js
index 31822dbba..ba0936fd0 100644
--- a/app/soapbox/features/conversations/components/conversations_list.js
+++ b/app/soapbox/features/conversations/components/conversations_list.js
@@ -2,9 +2,9 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { debounce } from 'lodash';
import ConversationContainer from '../containers/conversation_container';
import ScrollableList from '../../../components/scrollable_list';
-import { debounce } from 'lodash';
export default class ConversationsList extends ImmutablePureComponent {
diff --git a/app/soapbox/features/conversations/index.js b/app/soapbox/features/conversations/index.js
index 69f054c86..1531b37e9 100644
--- a/app/soapbox/features/conversations/index.js
+++ b/app/soapbox/features/conversations/index.js
@@ -1,14 +1,14 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { directComposeById } from 'soapbox/actions/compose';
+import AccountSearch from 'soapbox/components/account_search';
import Column from '../../components/column';
import ColumnHeader from '../../components/column_header';
import { mountConversations, unmountConversations, expandConversations } from '../../actions/conversations';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { connectDirectStream } from '../../actions/streaming';
import ConversationsListContainer from './containers/conversations_list_container';
-import { directComposeById } from 'soapbox/actions/compose';
-import AccountSearch from 'soapbox/components/account_search';
const messages = defineMessages({
title: { id: 'column.direct', defaultMessage: 'Direct messages' },
diff --git a/app/soapbox/features/crypto_donate/components/crypto_address.js b/app/soapbox/features/crypto_donate/components/crypto_address.js
index 73294b8f3..698050cc2 100644
--- a/app/soapbox/features/crypto_donate/components/crypto_address.js
+++ b/app/soapbox/features/crypto_donate/components/crypto_address.js
@@ -3,11 +3,11 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Icon from 'soapbox/components/icon';
-import CoinDB from '../utils/coin_db';
-import CryptoIcon from './crypto_icon';
import { openModal } from 'soapbox/actions/modal';
import { CopyableInput } from 'soapbox/features/forms';
+import CoinDB from '../utils/coin_db';
import { getExplorerUrl } from '../utils/block_explorer';
+import CryptoIcon from './crypto_icon';
export default @connect()
class CryptoAddress extends ImmutablePureComponent {
diff --git a/app/soapbox/features/crypto_donate/components/crypto_donate_panel.js b/app/soapbox/features/crypto_donate/components/crypto_donate_panel.js
index d17f421bb..40256ce86 100644
--- a/app/soapbox/features/crypto_donate/components/crypto_donate_panel.js
+++ b/app/soapbox/features/crypto_donate/components/crypto_donate_panel.js
@@ -4,10 +4,10 @@ import PropTypes from 'prop-types';
import { Link } from 'react-router-dom';
import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Icon from 'soapbox/components/icon';
-import SiteWallet from './site_wallet';
import { List as ImmutableList } from 'immutable';
import classNames from 'classnames';
+import Icon from 'soapbox/components/icon';
+import SiteWallet from './site_wallet';
const mapStateToProps = state => {
const addresses = state.getIn(['soapbox', 'cryptoAddresses'], ImmutableList());
diff --git a/app/soapbox/features/crypto_donate/components/detailed_crypto_address.js b/app/soapbox/features/crypto_donate/components/detailed_crypto_address.js
index 2542f6ea5..195a3a146 100644
--- a/app/soapbox/features/crypto_donate/components/detailed_crypto_address.js
+++ b/app/soapbox/features/crypto_donate/components/detailed_crypto_address.js
@@ -1,12 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Icon from 'soapbox/components/icon';
import QRCode from 'qrcode.react';
-import CoinDB from '../utils/coin_db';
-import CryptoIcon from './crypto_icon';
+import Icon from 'soapbox/components/icon';
import { CopyableInput } from 'soapbox/features/forms';
+import CoinDB from '../utils/coin_db';
import { getExplorerUrl } from '../utils/block_explorer';
+import CryptoIcon from './crypto_icon';
export default class DetailedCryptoAddress extends ImmutablePureComponent {
diff --git a/app/soapbox/features/crypto_donate/components/site_wallet.js b/app/soapbox/features/crypto_donate/components/site_wallet.js
index eafb0e5c8..bd9ba7e99 100644
--- a/app/soapbox/features/crypto_donate/components/site_wallet.js
+++ b/app/soapbox/features/crypto_donate/components/site_wallet.js
@@ -3,9 +3,9 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import CryptoAddress from './crypto_address';
import { createSelector } from 'reselect';
import { trimStart } from 'lodash';
+import CryptoAddress from './crypto_address';
const normalizeAddress = address => {
return address.update('ticker', '', ticker => {
diff --git a/app/soapbox/features/crypto_donate/index.js b/app/soapbox/features/crypto_donate/index.js
index 74487fab6..f3c5d751b 100644
--- a/app/soapbox/features/crypto_donate/index.js
+++ b/app/soapbox/features/crypto_donate/index.js
@@ -3,8 +3,8 @@ import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Column from '../ui/components/column';
import Accordion from 'soapbox/features/ui/components/accordion';
+import Column from '../ui/components/column';
import SiteWallet from './components/site_wallet';
const messages = defineMessages({
diff --git a/app/soapbox/features/developers/apps/create.js b/app/soapbox/features/developers/apps/create.js
index 7d68b7a79..028d1ffc8 100644
--- a/app/soapbox/features/developers/apps/create.js
+++ b/app/soapbox/features/developers/apps/create.js
@@ -4,6 +4,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
+import { Map as ImmutableMap } from 'immutable';
import Column from 'soapbox/features/ui/components/column';
import {
SimpleForm,
@@ -13,7 +14,6 @@ import {
} from 'soapbox/features/forms';
import { createApp } from 'soapbox/actions/apps';
import { obtainOAuthToken } from 'soapbox/actions/oauth';
-import { Map as ImmutableMap } from 'immutable';
import { getBaseURL } from 'soapbox/utils/accounts';
import { getFeatures } from 'soapbox/utils/features';
import Accordion from 'soapbox/features/ui/components/accordion';
diff --git a/app/soapbox/features/developers/developers_challenge.js b/app/soapbox/features/developers/developers_challenge.js
index fe150e2ea..d4f7e397a 100644
--- a/app/soapbox/features/developers/developers_challenge.js
+++ b/app/soapbox/features/developers/developers_challenge.js
@@ -2,10 +2,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
-import Column from '../ui/components/column';
import { SimpleForm, TextInput } from 'soapbox/features/forms';
import { changeSetting } from 'soapbox/actions/settings';
import snackbar from 'soapbox/actions/snackbar';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.developers', defaultMessage: 'Developers' },
diff --git a/app/soapbox/features/developers/developers_menu.js b/app/soapbox/features/developers/developers_menu.js
index 3caa036d8..d04cd80eb 100644
--- a/app/soapbox/features/developers/developers_menu.js
+++ b/app/soapbox/features/developers/developers_menu.js
@@ -3,10 +3,10 @@ import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
import { Link } from 'react-router-dom';
-import Column from '../ui/components/column';
import Icon from 'soapbox/components/icon';
import { changeSetting } from 'soapbox/actions/settings';
import snackbar from 'soapbox/actions/snackbar';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.developers', defaultMessage: 'Developers' },
diff --git a/app/soapbox/features/direct_timeline/index.js b/app/soapbox/features/direct_timeline/index.js
index 946a29ad3..6e009c656 100644
--- a/app/soapbox/features/direct_timeline/index.js
+++ b/app/soapbox/features/direct_timeline/index.js
@@ -1,14 +1,14 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { directComposeById } from 'soapbox/actions/compose';
+import AccountSearch from 'soapbox/components/account_search';
import StatusListContainer from '../ui/containers/status_list_container';
import Column from '../../components/column';
import ColumnHeader from '../../components/column_header';
import { expandDirectTimeline } from '../../actions/timelines';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { connectDirectStream } from '../../actions/streaming';
-import { directComposeById } from 'soapbox/actions/compose';
-import AccountSearch from 'soapbox/components/account_search';
const messages = defineMessages({
title: { id: 'column.direct', defaultMessage: 'Direct messages' },
diff --git a/app/soapbox/features/directory/components/account_card.js b/app/soapbox/features/directory/components/account_card.js
index 05975ed8f..a4022e8ad 100644
--- a/app/soapbox/features/directory/components/account_card.js
+++ b/app/soapbox/features/directory/components/account_card.js
@@ -2,15 +2,15 @@ import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { connect } from 'react-redux';
import classNames from 'classnames';
+import { FormattedMessage, injectIntl } from 'react-intl';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { makeGetAccount } from 'soapbox/selectors';
import Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
import Permalink from 'soapbox/components/permalink';
import RelativeTimestamp from 'soapbox/components/relative_timestamp';
-import { FormattedMessage, injectIntl } from 'react-intl';
import { getSettings } from 'soapbox/actions/settings';
import { shortNumberFormat } from 'soapbox/utils/numbers';
import ActionButton from 'soapbox/features/ui/components/action_button';
diff --git a/app/soapbox/features/directory/index.js b/app/soapbox/features/directory/index.js
index 52209e9f1..6a9bfa52b 100644
--- a/app/soapbox/features/directory/index.js
+++ b/app/soapbox/features/directory/index.js
@@ -3,14 +3,14 @@ import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from 'soapbox/features/ui/components/column';
-import { fetchDirectory, expandDirectory } from 'soapbox/actions/directory';
import { List as ImmutableList } from 'immutable';
-import AccountCard from './components/account_card';
-import RadioButton from 'soapbox/components/radio_button';
import classNames from 'classnames';
+import RadioButton from 'soapbox/components/radio_button';
+import { fetchDirectory, expandDirectory } from 'soapbox/actions/directory';
+import Column from 'soapbox/features/ui/components/column';
import LoadMore from 'soapbox/components/load_more';
import { getFeatures } from 'soapbox/utils/features';
+import AccountCard from './components/account_card';
const messages = defineMessages({
title: { id: 'column.directory', defaultMessage: 'Browse profiles' },
diff --git a/app/soapbox/features/edit_profile/index.js b/app/soapbox/features/edit_profile/index.js
index 64f99a000..059f6ae51 100644
--- a/app/soapbox/features/edit_profile/index.js
+++ b/app/soapbox/features/edit_profile/index.js
@@ -4,8 +4,14 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import snackbar from 'soapbox/actions/snackbar';
-import Column from '../ui/components/column';
+import {
+ Map as ImmutableMap,
+ List as ImmutableList,
+} from 'immutable';
+import { unescape } from 'lodash';
+import { patchMe } from 'soapbox/actions/me';
+import { updateNotificationSettings } from 'soapbox/actions/accounts';
+import Icon from 'soapbox/components/icon';
import {
SimpleForm,
FieldsGroup,
@@ -14,20 +20,14 @@ import {
FileChooser,
SimpleTextarea,
} from 'soapbox/features/forms';
-import ProfilePreview from './components/profile_preview';
-import {
- Map as ImmutableMap,
- List as ImmutableList,
-} from 'immutable';
-import { patchMe } from 'soapbox/actions/me';
-import { updateNotificationSettings } from 'soapbox/actions/accounts';
-import Icon from 'soapbox/components/icon';
-import { unescape } from 'lodash';
+import snackbar from 'soapbox/actions/snackbar';
import { isVerified } from 'soapbox/utils/accounts';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { getFeatures } from 'soapbox/utils/features';
import { makeGetAccount } from 'soapbox/selectors';
import resizeImage from 'soapbox/utils/resize_image';
+import Column from '../ui/components/column';
+import ProfilePreview from './components/profile_preview';
const hidesNetwork = account => {
const pleroma = account.get('pleroma');
diff --git a/app/soapbox/features/emoji/emoji.js b/app/soapbox/features/emoji/emoji.js
index e43f67ac7..cf40deb9b 100644
--- a/app/soapbox/features/emoji/emoji.js
+++ b/app/soapbox/features/emoji/emoji.js
@@ -1,6 +1,6 @@
-import unicodeMapping from './emoji_unicode_mapping_light';
import Trie from 'substring-trie';
import { joinPublicPath } from 'soapbox/utils/static';
+import unicodeMapping from './emoji_unicode_mapping_light';
const trie = new Trie(Object.keys(unicodeMapping));
diff --git a/app/soapbox/features/emoji/emoji_compressed.js b/app/soapbox/features/emoji/emoji_compressed.js
index 4fb51ed0a..9a4329807 100644
--- a/app/soapbox/features/emoji/emoji_compressed.js
+++ b/app/soapbox/features/emoji/emoji_compressed.js
@@ -5,13 +5,13 @@
// It's designed to be emitted in an array format to take up less space
// over the wire.
+const { emojiIndex } = require('emoji-mart');
+const { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data');
+let data = require('emoji-mart/data/all.json');
const { unicodeToFilename } = require('./unicode_to_filename');
const { unicodeToUnifiedName } = require('./unicode_to_unified_name');
const emojiMap = require('./emoji_map.json');
-const { emojiIndex } = require('emoji-mart');
-const { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data');
-let data = require('emoji-mart/data/all.json');
if(data.compressed) {
data = emojiMartUncompress(data);
diff --git a/app/soapbox/features/export_data/index.js b/app/soapbox/features/export_data/index.js
index 1c472edce..4dccb8a19 100644
--- a/app/soapbox/features/export_data/index.js
+++ b/app/soapbox/features/export_data/index.js
@@ -3,14 +3,14 @@ import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
-import Column from '../ui/components/column';
import {
exportFollows,
exportBlocks,
exportMutes,
} from 'soapbox/actions/export_data';
-import CSVExporter from './components/csv_exporter';
import { getFeatures } from 'soapbox/utils/features';
+import Column from '../ui/components/column';
+import CSVExporter from './components/csv_exporter';
const messages = defineMessages({
heading: { id: 'column.export_data', defaultMessage: 'Export data' },
diff --git a/app/soapbox/features/favourited_statuses/index.js b/app/soapbox/features/favourited_statuses/index.js
index e70f24634..bdbbe1c01 100644
--- a/app/soapbox/features/favourited_statuses/index.js
+++ b/app/soapbox/features/favourited_statuses/index.js
@@ -2,16 +2,16 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { fetchFavouritedStatuses, expandFavouritedStatuses, fetchAccountFavouritedStatuses, expandAccountFavouritedStatuses } from '../../actions/favourites';
-import Column from '../ui/components/column';
-import StatusList from '../../components/status_list';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { debounce } from 'lodash';
import MissingIndicator from 'soapbox/components/missing_indicator';
+import { findAccountByUsername } from 'soapbox/selectors';
+import { fetchFavouritedStatuses, expandFavouritedStatuses, fetchAccountFavouritedStatuses, expandAccountFavouritedStatuses } from '../../actions/favourites';
+import Column from '../ui/components/column';
+import StatusList from '../../components/status_list';
import { fetchAccount, fetchAccountByUsername } from '../../actions/accounts';
import LoadingIndicator from '../../components/loading_indicator';
-import { findAccountByUsername } from 'soapbox/selectors';
const messages = defineMessages({
heading: { id: 'column.favourited_statuses', defaultMessage: 'Liked posts' },
diff --git a/app/soapbox/features/federation_restrictions/components/restricted_instance.js b/app/soapbox/features/federation_restrictions/components/restricted_instance.js
index a725aacfb..baf6b1b46 100644
--- a/app/soapbox/features/federation_restrictions/components/restricted_instance.js
+++ b/app/soapbox/features/federation_restrictions/components/restricted_instance.js
@@ -2,10 +2,10 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { makeGetRemoteInstance } from 'soapbox/selectors';
import classNames from 'classnames';
-import InstanceRestrictions from './instance_restrictions';
+import { makeGetRemoteInstance } from 'soapbox/selectors';
import Icon from 'soapbox/components/icon';
+import InstanceRestrictions from './instance_restrictions';
const getRemoteInstance = makeGetRemoteInstance();
diff --git a/app/soapbox/features/federation_restrictions/index.js b/app/soapbox/features/federation_restrictions/index.js
index 1332218e8..301323217 100644
--- a/app/soapbox/features/federation_restrictions/index.js
+++ b/app/soapbox/features/federation_restrictions/index.js
@@ -3,12 +3,12 @@ import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Column from '../ui/components/column';
-import RestrictedInstance from './components/restricted_instance';
import Accordion from 'soapbox/features/ui/components/accordion';
import ScrollableList from 'soapbox/components/scrollable_list';
import { federationRestrictionsDisclosed } from 'soapbox/utils/state';
import { makeGetHosts } from 'soapbox/selectors';
+import Column from '../ui/components/column';
+import RestrictedInstance from './components/restricted_instance';
const messages = defineMessages({
heading: { id: 'column.federation_restrictions', defaultMessage: 'Federation Restrictions' },
diff --git a/app/soapbox/features/filters/index.js b/app/soapbox/features/filters/index.js
index abd497fa5..8848bd116 100644
--- a/app/soapbox/features/filters/index.js
+++ b/app/soapbox/features/filters/index.js
@@ -3,9 +3,6 @@ import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
-import Column from '../ui/components/column';
-import { fetchFilters, createFilter, deleteFilter } from '../../actions/filters';
-import ScrollableList from '../../components/scrollable_list';
import Button from 'soapbox/components/button';
import {
SimpleForm,
@@ -16,6 +13,9 @@ import {
} from 'soapbox/features/forms';
import snackbar from 'soapbox/actions/snackbar';
import Icon from 'soapbox/components/icon';
+import ScrollableList from '../../components/scrollable_list';
+import { fetchFilters, createFilter, deleteFilter } from '../../actions/filters';
+import Column from '../ui/components/column';
import ColumnSubheading from '../ui/components/column_subheading';
const messages = defineMessages({
diff --git a/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js b/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js
index 7eab96bc7..963ff52d4 100644
--- a/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js
+++ b/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js
@@ -5,8 +5,8 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage } from 'react-intl';
import { fetchSuggestions } from 'soapbox/actions/suggestions';
-import Account from './account';
import LoadingIndicator from 'soapbox/components/loading_indicator';
+import Account from './account';
const mapStateToProps = state => ({
suggestions: state.getIn(['suggestions', 'items']),
diff --git a/app/soapbox/features/follow_requests/components/account_authorize.js b/app/soapbox/features/follow_requests/components/account_authorize.js
index ba8606690..39f7f0526 100644
--- a/app/soapbox/features/follow_requests/components/account_authorize.js
+++ b/app/soapbox/features/follow_requests/components/account_authorize.js
@@ -1,12 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { defineMessages, injectIntl } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import Permalink from '../../../components/permalink';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
const messages = defineMessages({
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
diff --git a/app/soapbox/features/follow_requests/index.js b/app/soapbox/features/follow_requests/index.js
index 74b2ac7fb..54afdea78 100644
--- a/app/soapbox/features/follow_requests/index.js
+++ b/app/soapbox/features/follow_requests/index.js
@@ -7,9 +7,9 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import LoadingIndicator from '../../components/loading_indicator';
import Column from '../ui/components/column';
-import AccountAuthorizeContainer from './containers/account_authorize_container';
import { fetchFollowRequests, expandFollowRequests } from '../../actions/accounts';
import ScrollableList from '../../components/scrollable_list';
+import AccountAuthorizeContainer from './containers/account_authorize_container';
const messages = defineMessages({
heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' },
diff --git a/app/soapbox/features/followers/index.js b/app/soapbox/features/followers/index.js
index ef760cef5..a9a2f7abd 100644
--- a/app/soapbox/features/followers/index.js
+++ b/app/soapbox/features/followers/index.js
@@ -4,6 +4,10 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import MissingIndicator from 'soapbox/components/missing_indicator';
+import { getFollowDifference } from 'soapbox/utils/accounts';
+import { findAccountByUsername } from 'soapbox/selectors';
import LoadingIndicator from '../../components/loading_indicator';
import {
fetchAccount,
@@ -11,13 +15,9 @@ import {
expandFollowers,
fetchAccountByUsername,
} from '../../actions/accounts';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
import ScrollableList from '../../components/scrollable_list';
-import MissingIndicator from 'soapbox/components/missing_indicator';
-import { getFollowDifference } from 'soapbox/utils/accounts';
-import { findAccountByUsername } from 'soapbox/selectors';
const messages = defineMessages({
heading: { id: 'column.followers', defaultMessage: 'Followers' },
diff --git a/app/soapbox/features/following/index.js b/app/soapbox/features/following/index.js
index acf17f3e3..48bad4e07 100644
--- a/app/soapbox/features/following/index.js
+++ b/app/soapbox/features/following/index.js
@@ -4,6 +4,10 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import MissingIndicator from 'soapbox/components/missing_indicator';
+import { getFollowDifference } from 'soapbox/utils/accounts';
+import { findAccountByUsername } from 'soapbox/selectors';
import LoadingIndicator from '../../components/loading_indicator';
import {
fetchAccount,
@@ -11,13 +15,9 @@ import {
expandFollowing,
fetchAccountByUsername,
} from '../../actions/accounts';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
import ScrollableList from '../../components/scrollable_list';
-import MissingIndicator from 'soapbox/components/missing_indicator';
-import { getFollowDifference } from 'soapbox/utils/accounts';
-import { findAccountByUsername } from 'soapbox/selectors';
const messages = defineMessages({
heading: { id: 'column.following', defaultMessage: 'Following' },
diff --git a/app/soapbox/features/groups/create/index.js b/app/soapbox/features/groups/create/index.js
index cba67711b..a8ed653bf 100644
--- a/app/soapbox/features/groups/create/index.js
+++ b/app/soapbox/features/groups/create/index.js
@@ -1,9 +1,9 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
-import { changeValue, submit, reset } from '../../../actions/group_editor';
import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import { changeValue, submit, reset } from '../../../actions/group_editor';
const messages = defineMessages({
title: { id: 'groups.form.title', defaultMessage: 'Enter a new group title' },
diff --git a/app/soapbox/features/groups/edit/index.js b/app/soapbox/features/groups/edit/index.js
index 756b2640f..4ff477fa6 100644
--- a/app/soapbox/features/groups/edit/index.js
+++ b/app/soapbox/features/groups/edit/index.js
@@ -2,12 +2,12 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { changeValue, submit, setUp } from '../../../actions/group_editor';
import { defineMessages, injectIntl } from 'react-intl';
-import LoadingIndicator from '../../../components/loading_indicator';
-import MissingIndicator from 'soapbox/components/missing_indicator';
-import Column from '../../../components/column';
import classNames from 'classnames';
+import MissingIndicator from 'soapbox/components/missing_indicator';
+import { changeValue, submit, setUp } from '../../../actions/group_editor';
+import LoadingIndicator from '../../../components/loading_indicator';
+import Column from '../../../components/column';
const messages = defineMessages({
title: { id: 'groups.form.title', defaultMessage: 'Title' },
diff --git a/app/soapbox/features/groups/index/card.js b/app/soapbox/features/groups/index/card.js
index 880f8a8a7..e1f76e0ad 100644
--- a/app/soapbox/features/groups/index/card.js
+++ b/app/soapbox/features/groups/index/card.js
@@ -3,8 +3,8 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
-import { shortNumberFormat } from '../../../utils/numbers';
import { connect } from 'react-redux';
+import { shortNumberFormat } from '../../../utils/numbers';
const messages = defineMessages({
members: { id: 'groups.card.members', defaultMessage: 'Members' },
diff --git a/app/soapbox/features/groups/index/index.js b/app/soapbox/features/groups/index/index.js
index 36269b08a..b432f185a 100644
--- a/app/soapbox/features/groups/index/index.js
+++ b/app/soapbox/features/groups/index/index.js
@@ -2,13 +2,13 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { fetchGroups } from '../../../actions/groups';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { Link } from 'react-router-dom';
import classNames from 'classnames';
-import GroupCard from './card';
+import { fetchGroups } from '../../../actions/groups';
import GroupCreate from '../create';
+import GroupCard from './card';
const messages = defineMessages({
heading: { id: 'column.groups', defaultMessage: 'Groups' },
diff --git a/app/soapbox/features/groups/members/index.js b/app/soapbox/features/groups/members/index.js
index 5629dcfcd..4e5731502 100644
--- a/app/soapbox/features/groups/members/index.js
+++ b/app/soapbox/features/groups/members/index.js
@@ -4,12 +4,12 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
+import { FormattedMessage } from 'react-intl';
import LoadingIndicator from '../../../components/loading_indicator';
import {
fetchMembers,
expandMembers,
} from '../../../actions/groups';
-import { FormattedMessage } from 'react-intl';
import AccountContainer from '../../../containers/account_container';
import Column from '../../ui/components/column';
import ScrollableList from '../../../components/scrollable_list';
diff --git a/app/soapbox/features/groups/removed_accounts/index.js b/app/soapbox/features/groups/removed_accounts/index.js
index d4d77a0fb..9bfe11b86 100644
--- a/app/soapbox/features/groups/removed_accounts/index.js
+++ b/app/soapbox/features/groups/removed_accounts/index.js
@@ -4,17 +4,17 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
+import { FormattedMessage } from 'react-intl';
+import { defineMessages, injectIntl } from 'react-intl';
import LoadingIndicator from '../../../components/loading_indicator';
import {
fetchRemovedAccounts,
expandRemovedAccounts,
removeRemovedAccount,
} from '../../../actions/groups';
-import { FormattedMessage } from 'react-intl';
import AccountContainer from '../../../containers/account_container';
import Column from '../../ui/components/column';
import ScrollableList from '../../../components/scrollable_list';
-import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
remove: { id: 'groups.removed_accounts', defaultMessage: 'Allow joining' },
diff --git a/app/soapbox/features/groups/sidebar_panel/index.js b/app/soapbox/features/groups/sidebar_panel/index.js
index a091d876f..5d692f7ae 100644
--- a/app/soapbox/features/groups/sidebar_panel/index.js
+++ b/app/soapbox/features/groups/sidebar_panel/index.js
@@ -3,9 +3,9 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import Item from './item';
-import Icon from 'soapbox/components/icon';
import { Link } from 'react-router-dom';
+import Icon from 'soapbox/components/icon';
+import Item from './item';
const messages = defineMessages({
title: { id: 'groups.sidebar-panel.title', defaultMessage: 'Groups You\'re In' },
diff --git a/app/soapbox/features/groups/sidebar_panel/item.js b/app/soapbox/features/groups/sidebar_panel/item.js
index 98b3fc92c..995371ef8 100644
--- a/app/soapbox/features/groups/sidebar_panel/item.js
+++ b/app/soapbox/features/groups/sidebar_panel/item.js
@@ -3,8 +3,8 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
-import { shortNumberFormat } from '../../../utils/numbers';
import { connect } from 'react-redux';
+import { shortNumberFormat } from '../../../utils/numbers';
const messages = defineMessages({
new_statuses: { id: 'groups.sidebar-panel.item.view', defaultMessage: 'new posts' },
diff --git a/app/soapbox/features/groups/timeline/components/header.js b/app/soapbox/features/groups/timeline/components/header.js
index 3dcf522a2..6ff1a8e84 100644
--- a/app/soapbox/features/groups/timeline/components/header.js
+++ b/app/soapbox/features/groups/timeline/components/header.js
@@ -1,10 +1,10 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import Button from 'soapbox/components/button';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
import { NavLink } from 'react-router-dom';
+import Button from 'soapbox/components/button';
import DropdownMenuContainer from '../../../../containers/dropdown_menu_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/groups/timeline/index.js b/app/soapbox/features/groups/timeline/index.js
index c9f7d08cd..4e89e4961 100644
--- a/app/soapbox/features/groups/timeline/index.js
+++ b/app/soapbox/features/groups/timeline/index.js
@@ -3,9 +3,9 @@ import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { FormattedMessage, injectIntl } from 'react-intl';
import StatusListContainer from '../../ui/containers/status_list_container';
import Column from '../../../components/column';
-import { FormattedMessage, injectIntl } from 'react-intl';
import { connectGroupStream } from '../../../actions/streaming';
import { expandGroupTimeline } from '../../../actions/timelines';
import MissingIndicator from '../../../components/missing_indicator';
diff --git a/app/soapbox/features/hashtag_timeline/index.js b/app/soapbox/features/hashtag_timeline/index.js
index a489c669e..860313ab1 100644
--- a/app/soapbox/features/hashtag_timeline/index.js
+++ b/app/soapbox/features/hashtag_timeline/index.js
@@ -1,13 +1,13 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import { FormattedMessage } from 'react-intl';
+import { isEqual } from 'lodash';
import StatusListContainer from '../ui/containers/status_list_container';
import Column from '../../components/column';
import ColumnHeader from '../../components/column_header';
import { expandHashtagTimeline, clearTimeline } from '../../actions/timelines';
-import { FormattedMessage } from 'react-intl';
import { connectHashtagStream } from '../../actions/streaming';
-import { isEqual } from 'lodash';
const mapStateToProps = (state, props) => ({
hasUnread: state.getIn(['timelines', `hashtag:${props.params.id}`, 'unread']) > 0,
diff --git a/app/soapbox/features/home_timeline/components/column_settings.js b/app/soapbox/features/home_timeline/components/column_settings.js
index 892d4d813..990f84fa5 100644
--- a/app/soapbox/features/home_timeline/components/column_settings.js
+++ b/app/soapbox/features/home_timeline/components/column_settings.js
@@ -2,8 +2,8 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
-import SettingToggle from '../../notifications/components/setting_toggle';
import IconButton from 'soapbox/components/icon_button';
+import SettingToggle from '../../notifications/components/setting_toggle';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/home_timeline/index.js b/app/soapbox/features/home_timeline/index.js
index 51d96beb5..3fa52fac7 100644
--- a/app/soapbox/features/home_timeline/index.js
+++ b/app/soapbox/features/home_timeline/index.js
@@ -1,14 +1,14 @@
import React from 'react';
import { connect } from 'react-redux';
-import { expandHomeTimeline } from '../../actions/timelines';
import PropTypes from 'prop-types';
-import StatusListContainer from '../ui/containers/status_list_container';
-import Column from '../../components/column';
-import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { Link } from 'react-router-dom';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
+import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import { getFeatures } from 'soapbox/utils/features';
+import Column from '../../components/column';
+import StatusListContainer from '../ui/containers/status_list_container';
+import { expandHomeTimeline } from '../../actions/timelines';
function FollowRecommendationsContainer() {
return import(/* webpackChunkName: "features/follow_recommendations" */'soapbox/features/follow_recommendations/components/follow_recommendations_container');
diff --git a/app/soapbox/features/import_data/index.js b/app/soapbox/features/import_data/index.js
index 106c41cc0..3b6a48b9c 100644
--- a/app/soapbox/features/import_data/index.js
+++ b/app/soapbox/features/import_data/index.js
@@ -3,14 +3,14 @@ import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
-import Column from '../ui/components/column';
import {
importFollows,
importBlocks,
importMutes,
} from 'soapbox/actions/import_data';
-import CSVImporter from './components/csv_importer';
import { getFeatures } from 'soapbox/utils/features';
+import Column from '../ui/components/column';
+import CSVImporter from './components/csv_importer';
const messages = defineMessages({
heading: { id: 'column.import_data', defaultMessage: 'Import data' },
diff --git a/app/soapbox/features/list_adder/components/account.js b/app/soapbox/features/list_adder/components/account.js
index 770e81e30..737afc6a4 100644
--- a/app/soapbox/features/list_adder/components/account.js
+++ b/app/soapbox/features/list_adder/components/account.js
@@ -1,11 +1,11 @@
import React from 'react';
import { connect } from 'react-redux';
-import { makeGetAccount } from '../../../selectors';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { injectIntl } from 'react-intl';
+import { makeGetAccount } from '../../../selectors';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
-import { injectIntl } from 'react-intl';
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
diff --git a/app/soapbox/features/list_adder/components/list.js b/app/soapbox/features/list_adder/components/list.js
index 159e9a01e..fe7b6eca0 100644
--- a/app/soapbox/features/list_adder/components/list.js
+++ b/app/soapbox/features/list_adder/components/list.js
@@ -3,10 +3,10 @@ import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import IconButton from '../../../components/icon_button';
import { defineMessages, injectIntl } from 'react-intl';
-import { removeFromListAdder, addToListAdder } from '../../../actions/lists';
import Icon from 'soapbox/components/icon';
+import IconButton from '../../../components/icon_button';
+import { removeFromListAdder, addToListAdder } from '../../../actions/lists';
const messages = defineMessages({
remove: { id: 'lists.account.remove', defaultMessage: 'Remove from list' },
diff --git a/app/soapbox/features/list_adder/index.js b/app/soapbox/features/list_adder/index.js
index 0c159bc90..e8c456e44 100644
--- a/app/soapbox/features/list_adder/index.js
+++ b/app/soapbox/features/list_adder/index.js
@@ -4,13 +4,13 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { setupListAdder, resetListAdder } from '../../actions/lists';
import { createSelector } from 'reselect';
-import List from './components/list';
-import Account from './components/account';
import IconButton from 'soapbox/components/icon_button';
+import { setupListAdder, resetListAdder } from '../../actions/lists';
import NewListForm from '../lists/components/new_list_form';
import ColumnSubheading from '../ui/components/column_subheading';
+import Account from './components/account';
+import List from './components/list';
// hack
const getOrderedLists = createSelector([state => state.get('lists')], lists => {
diff --git a/app/soapbox/features/list_editor/components/account.js b/app/soapbox/features/list_editor/components/account.js
index 2ef3ed097..332244b14 100644
--- a/app/soapbox/features/list_editor/components/account.js
+++ b/app/soapbox/features/list_editor/components/account.js
@@ -1,13 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
-import { makeGetAccount } from '../../../selectors';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { defineMessages, injectIntl } from 'react-intl';
+import { makeGetAccount } from '../../../selectors';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
import { removeFromListEditor, addToListEditor } from '../../../actions/lists';
const messages = defineMessages({
diff --git a/app/soapbox/features/list_editor/components/edit_list_form.js b/app/soapbox/features/list_editor/components/edit_list_form.js
index a3694508f..10e43e0d8 100644
--- a/app/soapbox/features/list_editor/components/edit_list_form.js
+++ b/app/soapbox/features/list_editor/components/edit_list_form.js
@@ -1,9 +1,9 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import { defineMessages, injectIntl } from 'react-intl';
import { changeListEditorTitle, submitListEditor } from '../../../actions/lists';
import Button from '../../../components/button';
-import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
title: { id: 'lists.edit.submit', defaultMessage: 'Change title' },
diff --git a/app/soapbox/features/list_editor/components/search.js b/app/soapbox/features/list_editor/components/search.js
index c3d883745..d3dd6a653 100644
--- a/app/soapbox/features/list_editor/components/search.js
+++ b/app/soapbox/features/list_editor/components/search.js
@@ -2,10 +2,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
-import { fetchListSuggestions, clearListSuggestions, changeListSuggestions } from '../../../actions/lists';
import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import Button from 'soapbox/components/button';
+import { fetchListSuggestions, clearListSuggestions, changeListSuggestions } from '../../../actions/lists';
const messages = defineMessages({
search: { id: 'lists.search', defaultMessage: 'Search among people you follow' },
diff --git a/app/soapbox/features/list_editor/index.js b/app/soapbox/features/list_editor/index.js
index 1e07ce853..203c194ca 100644
--- a/app/soapbox/features/list_editor/index.js
+++ b/app/soapbox/features/list_editor/index.js
@@ -4,12 +4,12 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { injectIntl, defineMessages } from 'react-intl';
+import IconButton from 'soapbox/components/icon_button';
import { setupListEditor, clearListSuggestions, resetListEditor } from '../../actions/lists';
+import ColumnSubheading from '../ui/components/column_subheading';
import Account from './components/account';
import Search from './components/search';
import EditListForm from './components/edit_list_form';
-import ColumnSubheading from '../ui/components/column_subheading';
-import IconButton from 'soapbox/components/icon_button';
const mapStateToProps = state => ({
accountIds: state.getIn(['listEditor', 'accounts', 'items']),
diff --git a/app/soapbox/features/list_timeline/index.js b/app/soapbox/features/list_timeline/index.js
index b1fa3c16b..3305d8ecf 100644
--- a/app/soapbox/features/list_timeline/index.js
+++ b/app/soapbox/features/list_timeline/index.js
@@ -2,16 +2,16 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import StatusListContainer from '../ui/containers/status_list_container';
-import Column from 'soapbox/features/ui/components/column';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
+import Column from 'soapbox/features/ui/components/column';
+import Button from 'soapbox/components/button';
+import StatusListContainer from '../ui/containers/status_list_container';
import { connectListStream } from '../../actions/streaming';
import { expandListTimeline } from '../../actions/timelines';
import { fetchList, deleteList } from '../../actions/lists';
import { openModal } from '../../actions/modal';
import MissingIndicator from '../../components/missing_indicator';
import LoadingIndicator from '../../components/loading_indicator';
-import Button from 'soapbox/components/button';
const messages = defineMessages({
deleteHeading: { id: 'confirmations.delete_list.heading', defaultMessage: 'Delete list' },
diff --git a/app/soapbox/features/lists/components/new_list_form.js b/app/soapbox/features/lists/components/new_list_form.js
index dd6075783..427967ea3 100644
--- a/app/soapbox/features/lists/components/new_list_form.js
+++ b/app/soapbox/features/lists/components/new_list_form.js
@@ -1,9 +1,9 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import { defineMessages, injectIntl } from 'react-intl';
import { changeListEditorTitle, submitListEditor } from '../../../actions/lists';
import Button from '../../../components/button';
-import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
label: { id: 'lists.new.title_placeholder', defaultMessage: 'New list title' },
diff --git a/app/soapbox/features/lists/index.js b/app/soapbox/features/lists/index.js
index 0fa072551..3ce26212a 100644
--- a/app/soapbox/features/lists/index.js
+++ b/app/soapbox/features/lists/index.js
@@ -2,16 +2,16 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { createSelector } from 'reselect';
import LoadingIndicator from '../../components/loading_indicator';
import Column from '../ui/components/column';
import { fetchLists } from '../../actions/lists';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import ColumnLink from '../ui/components/column_link';
import ColumnSubheading from '../ui/components/column_subheading';
-import NewListForm from './components/new_list_form';
-import { createSelector } from 'reselect';
import ScrollableList from '../../components/scrollable_list';
+import NewListForm from './components/new_list_form';
const messages = defineMessages({
heading: { id: 'column.lists', defaultMessage: 'Lists' },
diff --git a/app/soapbox/features/notifications/components/column_settings.js b/app/soapbox/features/notifications/components/column_settings.js
index aa55f5296..06cba25df 100644
--- a/app/soapbox/features/notifications/components/column_settings.js
+++ b/app/soapbox/features/notifications/components/column_settings.js
@@ -2,10 +2,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
+import IconButton from 'soapbox/components/icon_button';
import ClearColumnButton from './clear_column_button';
import SettingToggle from './setting_toggle';
import MultiSettingToggle from './multi_setting_toggle';
-import IconButton from 'soapbox/components/icon_button';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/notifications/components/follow_request.js b/app/soapbox/features/notifications/components/follow_request.js
index d1c9c6402..430f6f21b 100644
--- a/app/soapbox/features/notifications/components/follow_request.js
+++ b/app/soapbox/features/notifications/components/follow_request.js
@@ -1,12 +1,12 @@
import React, { Fragment } from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import { defineMessages, injectIntl } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
import Permalink from 'soapbox/components/permalink';
import IconButton from 'soapbox/components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
const messages = defineMessages({
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
diff --git a/app/soapbox/features/notifications/components/notification.js b/app/soapbox/features/notifications/components/notification.js
index b16d0b542..cdf0432a9 100644
--- a/app/soapbox/features/notifications/components/notification.js
+++ b/app/soapbox/features/notifications/components/notification.js
@@ -1,16 +1,16 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import StatusContainer from '../../../containers/status_container';
-import AccountContainer from '../../../containers/account_container';
import { injectIntl, FormattedMessage } from 'react-intl';
-import Permalink from '../../../components/permalink';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { HotKeys } from 'react-hotkeys';
-import FollowRequestContainer from '../containers/follow_request_container';
+import classNames from 'classnames';
import Icon from 'soapbox/components/icon';
import emojify from 'soapbox/features/emoji/emoji';
-import classNames from 'classnames';
+import StatusContainer from '../../../containers/status_container';
+import AccountContainer from '../../../containers/account_container';
+import Permalink from '../../../components/permalink';
+import FollowRequestContainer from '../containers/follow_request_container';
const notificationForScreenReader = (intl, message, timestamp) => {
const output = [message];
diff --git a/app/soapbox/features/notifications/containers/column_settings_container.js b/app/soapbox/features/notifications/containers/column_settings_container.js
index 7d44486c2..e9c2e2d3d 100644
--- a/app/soapbox/features/notifications/containers/column_settings_container.js
+++ b/app/soapbox/features/notifications/containers/column_settings_container.js
@@ -1,12 +1,12 @@
import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
+import { getFeatures } from 'soapbox/utils/features';
import ColumnSettings from '../components/column_settings';
import { getSettings, changeSetting } from '../../../actions/settings';
import { setFilter } from '../../../actions/notifications';
import { clearNotifications } from '../../../actions/notifications';
import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications';
import { openModal } from '../../../actions/modal';
-import { getFeatures } from 'soapbox/utils/features';
const messages = defineMessages({
clearHeading: { id: 'notifications.clear_heading', defaultMessage: 'Clear notifications' },
diff --git a/app/soapbox/features/notifications/containers/filter_bar_container.js b/app/soapbox/features/notifications/containers/filter_bar_container.js
index 231795c6f..61e0785b0 100644
--- a/app/soapbox/features/notifications/containers/filter_bar_container.js
+++ b/app/soapbox/features/notifications/containers/filter_bar_container.js
@@ -1,8 +1,8 @@
import { connect } from 'react-redux';
-import FilterBar from '../components/filter_bar';
-import { setFilter } from '../../../actions/notifications';
import { getSettings } from 'soapbox/actions/settings';
import { getFeatures } from 'soapbox/utils/features';
+import FilterBar from '../components/filter_bar';
+import { setFilter } from '../../../actions/notifications';
const makeMapStateToProps = state => {
const settings = getSettings(state);
diff --git a/app/soapbox/features/notifications/containers/follow_request_container.js b/app/soapbox/features/notifications/containers/follow_request_container.js
index a539fc08c..a929cad16 100644
--- a/app/soapbox/features/notifications/containers/follow_request_container.js
+++ b/app/soapbox/features/notifications/containers/follow_request_container.js
@@ -1,7 +1,7 @@
import { connect } from 'react-redux';
import { makeGetAccount } from 'soapbox/selectors';
-import FollowRequest from '../components/follow_request';
import { authorizeFollowRequest, rejectFollowRequest } from 'soapbox/actions/accounts';
+import FollowRequest from '../components/follow_request';
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
diff --git a/app/soapbox/features/notifications/containers/notification_container.js b/app/soapbox/features/notifications/containers/notification_container.js
index fb407263a..14be8faf6 100644
--- a/app/soapbox/features/notifications/containers/notification_container.js
+++ b/app/soapbox/features/notifications/containers/notification_container.js
@@ -1,4 +1,5 @@
import { connect } from 'react-redux';
+import { getSettings } from 'soapbox/actions/settings';
import { makeGetNotification } from '../../../selectors';
import Notification from '../components/notification';
import { openModal } from '../../../actions/modal';
@@ -13,7 +14,6 @@ import {
hideStatus,
revealStatus,
} from '../../../actions/statuses';
-import { getSettings } from 'soapbox/actions/settings';
const makeMapStateToProps = () => {
const getNotification = makeGetNotification();
diff --git a/app/soapbox/features/notifications/index.js b/app/soapbox/features/notifications/index.js
index 58f567f7d..c98c83565 100644
--- a/app/soapbox/features/notifications/index.js
+++ b/app/soapbox/features/notifications/index.js
@@ -2,25 +2,25 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from '../../components/column';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { createSelector } from 'reselect';
+import { List as ImmutableList } from 'immutable';
+import { debounce } from 'lodash';
+import { getSettings } from 'soapbox/actions/settings';
+import PlaceholderNotification from 'soapbox/features/placeholder/components/placeholder_notification';
+import SubNavigation from 'soapbox/components/sub_navigation';
+import ScrollableList from '../../components/scrollable_list';
+import LoadGap from '../../components/load_gap';
+import TimelineQueueButtonHeader from '../../components/timeline_queue_button_header';
import {
expandNotifications,
scrollTopNotifications,
dequeueNotifications,
} from '../../actions/notifications';
-import NotificationContainer from './containers/notification_container';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ColumnSettingsContainer from './containers/column_settings_container';
+import Column from '../../components/column';
import FilterBarContainer from './containers/filter_bar_container';
-import { createSelector } from 'reselect';
-import { List as ImmutableList } from 'immutable';
-import { debounce } from 'lodash';
-import ScrollableList from '../../components/scrollable_list';
-import LoadGap from '../../components/load_gap';
-import TimelineQueueButtonHeader from '../../components/timeline_queue_button_header';
-import { getSettings } from 'soapbox/actions/settings';
-import PlaceholderNotification from 'soapbox/features/placeholder/components/placeholder_notification';
-import SubNavigation from 'soapbox/components/sub_navigation';
+import ColumnSettingsContainer from './containers/column_settings_container';
+import NotificationContainer from './containers/notification_container';
const messages = defineMessages({
title: { id: 'column.notifications', defaultMessage: 'Notifications' },
diff --git a/app/soapbox/features/pinned_statuses/index.js b/app/soapbox/features/pinned_statuses/index.js
index 5221d5c9b..6570ebd65 100644
--- a/app/soapbox/features/pinned_statuses/index.js
+++ b/app/soapbox/features/pinned_statuses/index.js
@@ -2,12 +2,12 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { fetchPinnedStatuses } from '../../actions/pin_statuses';
-import Column from '../ui/components/column';
-import StatusList from '../../components/status_list';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import MissingIndicator from 'soapbox/components/missing_indicator';
+import { fetchPinnedStatuses } from '../../actions/pin_statuses';
+import Column from '../ui/components/column';
+import StatusList from '../../components/status_list';
const messages = defineMessages({
heading: { id: 'column.pins', defaultMessage: 'Pinned posts' },
diff --git a/app/soapbox/features/placeholder/components/placeholder_chat.js b/app/soapbox/features/placeholder/components/placeholder_chat.js
index 062cfee26..c96c5fa15 100644
--- a/app/soapbox/features/placeholder/components/placeholder_chat.js
+++ b/app/soapbox/features/placeholder/components/placeholder_chat.js
@@ -1,7 +1,7 @@
import React from 'react';
+import { randomIntFromInterval, generateText } from '../utils';
import PlaceholderAvatar from './placeholder_avatar';
import PlaceholderDisplayName from './placeholder_display_name';
-import { randomIntFromInterval, generateText } from '../utils';
export default class PlaceholderAccount extends React.Component {
diff --git a/app/soapbox/features/placeholder/components/placeholder_notification.js b/app/soapbox/features/placeholder/components/placeholder_notification.js
index 813124e0e..b6a918eb9 100644
--- a/app/soapbox/features/placeholder/components/placeholder_notification.js
+++ b/app/soapbox/features/placeholder/components/placeholder_notification.js
@@ -1,6 +1,6 @@
import React from 'react';
-import PlaceholderAccount from './placeholder_account';
import { randomIntFromInterval, generateText } from '../utils';
+import PlaceholderAccount from './placeholder_account';
export default class PlaceholderNotification extends React.Component {
diff --git a/app/soapbox/features/preferences/index.js b/app/soapbox/features/preferences/index.js
index 39a394d2f..f806879e1 100644
--- a/app/soapbox/features/preferences/index.js
+++ b/app/soapbox/features/preferences/index.js
@@ -6,7 +6,6 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { getSettings, changeSetting } from 'soapbox/actions/settings';
import { getFeatures } from 'soapbox/utils/features';
-import Column from '../ui/components/column';
import {
SimpleForm,
FieldsGroup,
@@ -16,6 +15,7 @@ import {
} from 'soapbox/features/forms';
import SettingsCheckbox from 'soapbox/components/settings_checkbox';
import SettingToggle from 'soapbox/features/notifications/components/setting_toggle';
+import Column from '../ui/components/column';
export const languages = {
en: 'English',
diff --git a/app/soapbox/features/public_layout/components/header.js b/app/soapbox/features/public_layout/components/header.js
index 5f7d065e2..2c155a13e 100644
--- a/app/soapbox/features/public_layout/components/header.js
+++ b/app/soapbox/features/public_layout/components/header.js
@@ -3,15 +3,15 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { Link } from 'react-router-dom';
-import LoginForm from 'soapbox/features/auth_login/components/login_form';
-import SiteLogo from './site_logo';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { defineMessages, injectIntl } from 'react-intl';
import PropTypes from 'prop-types';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
+import LoginForm from 'soapbox/features/auth_login/components/login_form';
import { logIn, verifyCredentials } from 'soapbox/actions/auth';
import { fetchInstance } from 'soapbox/actions/instance';
import OtpAuthForm from 'soapbox/features/auth_login/components/otp_auth_form';
import IconButton from 'soapbox/components/icon_button';
+import SiteLogo from './site_logo';
const messages = defineMessages({
home: { id: 'header.home.label', defaultMessage: 'Home' },
diff --git a/app/soapbox/features/public_layout/index.js b/app/soapbox/features/public_layout/index.js
index fa33ef48a..61dd21331 100644
--- a/app/soapbox/features/public_layout/index.js
+++ b/app/soapbox/features/public_layout/index.js
@@ -1,18 +1,18 @@
import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import { Switch, Route, Redirect } from 'react-router-dom';
+import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import {
NotificationsContainer,
ModalContainer,
} from 'soapbox/features/ui/util/async-components';
-import Header from './components/header';
-import Footer from './components/footer';
-import LandingPage from '../landing_page';
-import AboutPage from '../about';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { isStandalone } from 'soapbox/utils/state';
+import LandingPage from '../landing_page';
+import AboutPage from '../about';
+import Header from './components/header';
+import Footer from './components/footer';
const mapStateToProps = (state, props) => ({
soapbox: getSoapboxConfig(state),
diff --git a/app/soapbox/features/public_timeline/index.js b/app/soapbox/features/public_timeline/index.js
index 1b3b0e358..616eb3a6f 100644
--- a/app/soapbox/features/public_timeline/index.js
+++ b/app/soapbox/features/public_timeline/index.js
@@ -2,16 +2,16 @@ import React from 'react';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
+import { Link } from 'react-router-dom';
+import Accordion from 'soapbox/features/ui/components/accordion';
+import { changeSetting, getSettings } from 'soapbox/actions/settings';
+import SubNavigation from 'soapbox/components/sub_navigation';
import StatusListContainer from '../ui/containers/status_list_container';
import Column from '../../components/column';
-import ColumnSettings from './containers/column_settings_container';
-import Accordion from 'soapbox/features/ui/components/accordion';
import PinnedHostsPicker from '../remote_timeline/components/pinned_hosts_picker';
import { expandPublicTimeline } from '../../actions/timelines';
import { connectPublicStream } from '../../actions/streaming';
-import { Link } from 'react-router-dom';
-import { changeSetting, getSettings } from 'soapbox/actions/settings';
-import SubNavigation from 'soapbox/components/sub_navigation';
+import ColumnSettings from './containers/column_settings_container';
const messages = defineMessages({
title: { id: 'column.public', defaultMessage: 'Fediverse timeline' },
diff --git a/app/soapbox/features/remote_timeline/index.js b/app/soapbox/features/remote_timeline/index.js
index 4aa515661..6c123154f 100644
--- a/app/soapbox/features/remote_timeline/index.js
+++ b/app/soapbox/features/remote_timeline/index.js
@@ -2,13 +2,13 @@ import React from 'react';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
-import StatusListContainer from '../ui/containers/status_list_container';
import Column from 'soapbox/features/ui/components/column';
-import PinnedHostsPicker from './components/pinned_hosts_picker';
import IconButton from 'soapbox/components/icon_button';
+import { getSettings } from 'soapbox/actions/settings';
import { expandRemoteTimeline } from '../../actions/timelines';
import { connectRemoteStream } from '../../actions/streaming';
-import { getSettings } from 'soapbox/actions/settings';
+import StatusListContainer from '../ui/containers/status_list_container';
+import PinnedHostsPicker from './components/pinned_hosts_picker';
const messages = defineMessages({
title: { id: 'column.remote', defaultMessage: 'Federated timeline' },
diff --git a/app/soapbox/features/reply_mentions/account.js b/app/soapbox/features/reply_mentions/account.js
index c9da9b6a4..a8c23152e 100644
--- a/app/soapbox/features/reply_mentions/account.js
+++ b/app/soapbox/features/reply_mentions/account.js
@@ -1,12 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
-import { makeGetAccount } from 'soapbox/selectors';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl } from 'react-intl';
+import { makeGetAccount } from 'soapbox/selectors';
import Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
import IconButton from 'soapbox/components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
import { addToMentions, removeFromMentions } from 'soapbox/actions/compose';
import { fetchAccount } from 'soapbox/actions/accounts';
diff --git a/app/soapbox/features/report/containers/status_check_box_container.js b/app/soapbox/features/report/containers/status_check_box_container.js
index b3ef4cbd6..16fbf9c68 100644
--- a/app/soapbox/features/report/containers/status_check_box_container.js
+++ b/app/soapbox/features/report/containers/status_check_box_container.js
@@ -1,7 +1,7 @@
import { connect } from 'react-redux';
+import { Set as ImmutableSet } from 'immutable';
import StatusCheckBox from '../components/status_check_box';
import { toggleStatusReport } from '../../../actions/reports';
-import { Set as ImmutableSet } from 'immutable';
const mapStateToProps = (state, { id }) => ({
status: state.getIn(['statuses', id]),
diff --git a/app/soapbox/features/scheduled_statuses/components/scheduled_status.js b/app/soapbox/features/scheduled_statuses/components/scheduled_status.js
index f7d6a8151..014572e18 100644
--- a/app/soapbox/features/scheduled_statuses/components/scheduled_status.js
+++ b/app/soapbox/features/scheduled_statuses/components/scheduled_status.js
@@ -1,16 +1,16 @@
import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import StatusContent from 'soapbox/components/status_content';
-import { buildStatus } from '../builder';
import classNames from 'classnames';
-import RelativeTimestamp from 'soapbox/components/relative_timestamp';
import { Link, NavLink } from 'react-router-dom';
+import RelativeTimestamp from 'soapbox/components/relative_timestamp';
+import StatusContent from 'soapbox/components/status_content';
import { getDomain } from 'soapbox/utils/accounts';
import Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
import AttachmentThumbs from 'soapbox/components/attachment_thumbs';
import PollPreview from 'soapbox/features/ui/components/poll_preview';
+import { buildStatus } from '../builder';
import ScheduledStatusActionBar from './scheduled_status_action_bar';
const mapStateToProps = (state, props) => {
diff --git a/app/soapbox/features/scheduled_statuses/components/scheduled_status_action_bar.js b/app/soapbox/features/scheduled_statuses/components/scheduled_status_action_bar.js
index 780c46797..3fcb65e10 100644
--- a/app/soapbox/features/scheduled_statuses/components/scheduled_status_action_bar.js
+++ b/app/soapbox/features/scheduled_statuses/components/scheduled_status_action_bar.js
@@ -2,10 +2,10 @@ import React from 'react';
import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import IconButton from 'soapbox/components/icon_button';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
+import IconButton from 'soapbox/components/icon_button';
import { openModal } from 'soapbox/actions/modal';
import { cancelScheduledStatus } from 'soapbox/actions/scheduled_statuses';
import { getSettings } from 'soapbox/actions/settings';
diff --git a/app/soapbox/features/scheduled_statuses/index.js b/app/soapbox/features/scheduled_statuses/index.js
index 03a4496ca..fd72e59b7 100644
--- a/app/soapbox/features/scheduled_statuses/index.js
+++ b/app/soapbox/features/scheduled_statuses/index.js
@@ -2,13 +2,13 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from '../ui/components/column';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { debounce } from 'lodash';
import ScrollableList from 'soapbox/components/scrollable_list';
+import Column from '../ui/components/column';
import { fetchScheduledStatuses, expandScheduledStatuses } from '../../actions/scheduled_statuses';
import ScheduledStatus from './components/scheduled_status';
-import { debounce } from 'lodash';
const messages = defineMessages({
heading: { id: 'column.scheduled_statuses', defaultMessage: 'Scheduled Posts' },
diff --git a/app/soapbox/features/security/index.js b/app/soapbox/features/security/index.js
index 22ab8b729..35149341a 100644
--- a/app/soapbox/features/security/index.js
+++ b/app/soapbox/features/security/index.js
@@ -4,7 +4,6 @@ import { defineMessages, injectIntl, FormattedDate } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from '../ui/components/column';
import Button from 'soapbox/components/button';
import ShowablePassword from 'soapbox/components/showable_password';
import {
@@ -18,9 +17,10 @@ import {
deleteAccount,
} from 'soapbox/actions/security';
import { fetchOAuthTokens, revokeOAuthTokenById } from 'soapbox/actions/security';
-import { fetchMfa } from '../../actions/mfa';
import snackbar from 'soapbox/actions/snackbar';
import { getSettings } from 'soapbox/actions/settings';
+import { fetchMfa } from '../../actions/mfa';
+import Column from '../ui/components/column';
/*
Security settings page for user account
diff --git a/app/soapbox/features/security/mfa_form.js b/app/soapbox/features/security/mfa_form.js
index d8a6aa864..9a5374d93 100644
--- a/app/soapbox/features/security/mfa_form.js
+++ b/app/soapbox/features/security/mfa_form.js
@@ -5,8 +5,6 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import QRCode from 'qrcode.react';
-import Column from '../ui/components/column';
-import ColumnSubheading from '../ui/components/column_subheading';
import LoadingIndicator from 'soapbox/components/loading_indicator';
import Button from 'soapbox/components/button';
import snackbar from 'soapbox/actions/snackbar';
@@ -16,6 +14,8 @@ import {
FieldsGroup,
TextInput,
} from 'soapbox/features/forms';
+import ColumnSubheading from '../ui/components/column_subheading';
+import Column from '../ui/components/column';
import {
fetchMfa,
fetchBackupCodes,
diff --git a/app/soapbox/features/soapbox_config/index.js b/app/soapbox/features/soapbox_config/index.js
index e3e8d93b6..7f1a1ad2f 100644
--- a/app/soapbox/features/soapbox_config/index.js
+++ b/app/soapbox/features/soapbox_config/index.js
@@ -4,7 +4,10 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from '../ui/components/column';
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
+import { SketchPicker } from 'react-color';
+import Overlay from 'react-overlays/lib/Overlay';
+import { supportsPassiveEvents } from 'detect-passive-events';
import {
SimpleForm,
FieldsGroup,
@@ -15,21 +18,18 @@ import {
FormPropTypes,
Checkbox,
} from 'soapbox/features/forms';
-import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
import { updateConfig } from 'soapbox/actions/admin';
import Icon from 'soapbox/components/icon';
import { makeDefaultConfig } from 'soapbox/actions/soapbox';
import { getFeatures } from 'soapbox/utils/features';
import { uploadMedia } from 'soapbox/actions/media';
-import { SketchPicker } from 'react-color';
-import Overlay from 'react-overlays/lib/Overlay';
import { isMobile } from 'soapbox/is_mobile';
-import { supportsPassiveEvents } from 'detect-passive-events';
-import Accordion from '../ui/components/accordion';
-import SitePreview from './components/site_preview';
import ThemeToggle from 'soapbox/features/ui/components/theme_toggle';
-import IconPickerDropdown from './components/icon_picker_dropdown';
import snackbar from 'soapbox/actions/snackbar';
+import Accordion from '../ui/components/accordion';
+import Column from '../ui/components/column';
+import SitePreview from './components/site_preview';
+import IconPickerDropdown from './components/icon_picker_dropdown';
const messages = defineMessages({
heading: { id: 'column.soapbox_config', defaultMessage: 'Soapbox config' },
diff --git a/app/soapbox/features/status/components/action_bar.js b/app/soapbox/features/status/components/action_bar.js
index a3f42adb9..658d782f1 100644
--- a/app/soapbox/features/status/components/action_bar.js
+++ b/app/soapbox/features/status/components/action_bar.js
@@ -1,17 +1,17 @@
import React from 'react';
import { connect } from 'react-redux';
-import { openModal } from '../../../actions/modal';
import PropTypes from 'prop-types';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import IconButton from '../../../components/icon_button';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
import { defineMessages, injectIntl } from 'react-intl';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { isStaff, isAdmin } from 'soapbox/utils/accounts';
import { isUserTouching } from 'soapbox/is_mobile';
import EmojiSelector from 'soapbox/components/emoji_selector';
import { getReactForStatus } from 'soapbox/utils/emoji_reacts';
import { getFeatures } from 'soapbox/utils/features';
+import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
+import IconButton from '../../../components/icon_button';
+import { openModal } from '../../../actions/modal';
const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
diff --git a/app/soapbox/features/status/components/card.js b/app/soapbox/features/status/components/card.js
index 2653f9304..608fab7e8 100644
--- a/app/soapbox/features/status/components/card.js
+++ b/app/soapbox/features/status/components/card.js
@@ -1,8 +1,8 @@
+import punycode from 'punycode';
import React from 'react';
import PropTypes from 'prop-types';
import { is, fromJS } from 'immutable';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import punycode from 'punycode';
import classnames from 'classnames';
import Icon from 'soapbox/components/icon';
diff --git a/app/soapbox/features/status/components/detailed_status.js b/app/soapbox/features/status/components/detailed_status.js
index 2e8d0944e..c62d71055 100644
--- a/app/soapbox/features/status/components/detailed_status.js
+++ b/app/soapbox/features/status/components/detailed_status.js
@@ -2,23 +2,23 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl } from 'react-intl';
+import { Link, NavLink } from 'react-router-dom';
+import { FormattedDate } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import classNames from 'classnames';
+import Icon from 'soapbox/components/icon';
+import { getDomain } from 'soapbox/utils/accounts';
+import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import StatusContent from '../../../components/status_content';
import StatusReplyMentions from '../../../components/status_reply_mentions';
import MediaGallery from '../../../components/media_gallery';
-import { Link, NavLink } from 'react-router-dom';
-import { FormattedDate } from 'react-intl';
-import Card from './card';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import Video from '../../video';
import Audio from '../../audio';
import scheduleIdleTask from '../../ui/util/schedule_idle_task';
-import classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
+import Card from './card';
import StatusInteractionBar from './status_interaction_bar';
-import { getDomain } from 'soapbox/utils/accounts';
-import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
export default @injectIntl
class DetailedStatus extends ImmutablePureComponent {
diff --git a/app/soapbox/features/status/components/thread_status.js b/app/soapbox/features/status/components/thread_status.js
index 91ba4bfad..5f1f0cf83 100644
--- a/app/soapbox/features/status/components/thread_status.js
+++ b/app/soapbox/features/status/components/thread_status.js
@@ -1,10 +1,10 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
-import StatusContainer from 'soapbox/containers/status_container';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
-import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder_status';
import classNames from 'classnames';
+import StatusContainer from 'soapbox/containers/status_container';
+import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder_status';
const mapStateToProps = (state, { id }) => {
return {
diff --git a/app/soapbox/features/status/containers/detailed_status_container.js b/app/soapbox/features/status/containers/detailed_status_container.js
index 3e01fdb81..8c07eba07 100644
--- a/app/soapbox/features/status/containers/detailed_status_container.js
+++ b/app/soapbox/features/status/containers/detailed_status_container.js
@@ -1,5 +1,9 @@
import React from 'react';
import { connect } from 'react-redux';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { getSettings } from 'soapbox/actions/settings';
+import { deactivateUserModal, deleteUserModal, deleteStatusModal, toggleStatusSensitivityModal } from 'soapbox/actions/moderation';
+import { launchChat } from 'soapbox/actions/chats';
import DetailedStatus from '../components/detailed_status';
import { makeGetStatus } from '../../../selectors';
import {
@@ -28,11 +32,7 @@ import {
import { initMuteModal } from '../../../actions/mutes';
import { initReport } from '../../../actions/reports';
import { openModal } from '../../../actions/modal';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { showAlertForError } from '../../../actions/alerts';
-import { getSettings } from 'soapbox/actions/settings';
-import { deactivateUserModal, deleteUserModal, deleteStatusModal, toggleStatusSensitivityModal } from 'soapbox/actions/moderation';
-import { launchChat } from 'soapbox/actions/chats';
const messages = defineMessages({
deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
diff --git a/app/soapbox/features/status/index.js b/app/soapbox/features/status/index.js
index a74a2ee7e..b7294db50 100644
--- a/app/soapbox/features/status/index.js
+++ b/app/soapbox/features/status/index.js
@@ -4,11 +4,23 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { fetchStatusWithContext } from '../../actions/statuses';
-import MissingIndicator from '../../components/missing_indicator';
-import DetailedStatus from './components/detailed_status';
-import ActionBar from './components/action_bar';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { createSelector } from 'reselect';
+import { HotKeys } from 'react-hotkeys';
import Column from 'soapbox/components/column';
+import { getSettings } from 'soapbox/actions/settings';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import {
+ deactivateUserModal,
+ deleteUserModal,
+ deleteStatusModal,
+ toggleStatusSensitivityModal,
+} from 'soapbox/actions/moderation';
+import PendingStatus from 'soapbox/features/ui/components/pending_status';
+import SubNavigation from 'soapbox/components/sub_navigation';
+import { launchChat } from 'soapbox/actions/chats';
+import PullToRefresh from 'soapbox/components/pull_to_refresh';
import {
favourite,
unfavourite,
@@ -36,23 +48,14 @@ import {
import { initMuteModal } from '../../actions/mutes';
import { initReport } from '../../actions/reports';
import { makeGetStatus } from '../../selectors';
-// import ColumnHeader from '../../components/column_header';
import { openModal } from '../../actions/modal';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { createSelector } from 'reselect';
-import { HotKeys } from 'react-hotkeys';
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen';
import { textForScreenReader, defaultMediaVisibility } from '../../components/status';
-// import Icon from 'soapbox/components/icon';
-import { getSettings } from 'soapbox/actions/settings';
-import { getSoapboxConfig } from 'soapbox/actions/soapbox';
-import { deactivateUserModal, deleteUserModal, deleteStatusModal, toggleStatusSensitivityModal } from 'soapbox/actions/moderation';
+import MissingIndicator from '../../components/missing_indicator';
+import { fetchStatusWithContext } from '../../actions/statuses';
import ThreadStatus from './components/thread_status';
-import PendingStatus from 'soapbox/features/ui/components/pending_status';
-import SubNavigation from 'soapbox/components/sub_navigation';
-import { launchChat } from 'soapbox/actions/chats';
-import PullToRefresh from 'soapbox/components/pull_to_refresh';
+import ActionBar from './components/action_bar';
+import DetailedStatus from './components/detailed_status';
const messages = defineMessages({
title: { id: 'status.title', defaultMessage: 'Post' },
diff --git a/app/soapbox/features/ui/components/account_list_panel.js b/app/soapbox/features/ui/components/account_list_panel.js
index 80353ce96..1ca90c40f 100644
--- a/app/soapbox/features/ui/components/account_list_panel.js
+++ b/app/soapbox/features/ui/components/account_list_panel.js
@@ -2,9 +2,9 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { Link } from 'react-router-dom';
import Icon from 'soapbox/components/icon';
import AccountContainer from '../../../containers/account_container';
-import { Link } from 'react-router-dom';
export default class AccountListPanel extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/action_button.js b/app/soapbox/features/ui/components/action_button.js
index 152f6f467..61aa16471 100644
--- a/app/soapbox/features/ui/components/action_button.js
+++ b/app/soapbox/features/ui/components/action_button.js
@@ -3,10 +3,10 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
-import Icon from 'soapbox/components/icon';
-import Button from 'soapbox/components/button';
import ImmutablePureComponent from 'react-immutable-pure-component';
import classNames from 'classnames';
+import Icon from 'soapbox/components/icon';
+import Button from 'soapbox/components/button';
import {
followAccount,
unfollowAccount,
diff --git a/app/soapbox/features/ui/components/actions_modal.js b/app/soapbox/features/ui/components/actions_modal.js
index 982ee7122..046bd9519 100644
--- a/app/soapbox/features/ui/components/actions_modal.js
+++ b/app/soapbox/features/ui/components/actions_modal.js
@@ -4,6 +4,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage, injectIntl } from 'react-intl';
import spring from 'react-motion/lib/spring';
+import classNames from 'classnames';
import StatusContent from '../../../components/status_content';
import Avatar from '../../../components/avatar';
import RelativeTimestamp from '../../../components/relative_timestamp';
@@ -11,7 +12,6 @@ import DisplayName from '../../../components/display_name';
import Icon from '../../../components/icon';
import Button from '../../../components/button';
import Motion from '../util/optional_motion';
-import classNames from 'classnames';
export default @injectIntl
class ActionsModal extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/better_column.js b/app/soapbox/features/ui/components/better_column.js
index 6d7e6e609..2c02bd223 100644
--- a/app/soapbox/features/ui/components/better_column.js
+++ b/app/soapbox/features/ui/components/better_column.js
@@ -1,8 +1,8 @@
import React from 'react';
-import ColumnHeader from './column_header';
import PropTypes from 'prop-types';
import Column from 'soapbox/components/column';
import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
+import ColumnHeader from './column_header';
// Yes, there are 3 types of columns at this point, but this one is better, I swear
export default class BetterColumn extends React.PureComponent {
diff --git a/app/soapbox/features/ui/components/boost_modal.js b/app/soapbox/features/ui/components/boost_modal.js
index 97c9e0631..ec3872808 100644
--- a/app/soapbox/features/ui/components/boost_modal.js
+++ b/app/soapbox/features/ui/components/boost_modal.js
@@ -2,14 +2,14 @@ import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import Icon from 'soapbox/components/icon';
+import AttachmentThumbs from 'soapbox/components/attachment_thumbs';
import Button from '../../../components/button';
import StatusContent from '../../../components/status_content';
import Avatar from '../../../components/avatar';
import RelativeTimestamp from '../../../components/relative_timestamp';
import DisplayName from '../../../components/display_name';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import Icon from 'soapbox/components/icon';
-import AttachmentThumbs from 'soapbox/components/attachment_thumbs';
const messages = defineMessages({
cancel_reblog: { id: 'status.cancel_reblog_private', defaultMessage: 'Un-repost' },
diff --git a/app/soapbox/features/ui/components/bundle_column_error.js b/app/soapbox/features/ui/components/bundle_column_error.js
index 5a36ad6f1..28867edb5 100644
--- a/app/soapbox/features/ui/components/bundle_column_error.js
+++ b/app/soapbox/features/ui/components/bundle_column_error.js
@@ -2,9 +2,9 @@ import React from 'react';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl';
+import IconButton from '../../../components/icon_button';
import Column from './column';
import ColumnHeader from './column_header';
-import IconButton from '../../../components/icon_button';
const messages = defineMessages({
title: { id: 'bundle_column_error.title', defaultMessage: 'Network error' },
diff --git a/app/soapbox/features/ui/components/column.js b/app/soapbox/features/ui/components/column.js
index c4a1be2dc..328fe7a3b 100644
--- a/app/soapbox/features/ui/components/column.js
+++ b/app/soapbox/features/ui/components/column.js
@@ -1,8 +1,8 @@
import React from 'react';
-import ColumnHeader from './column_header';
import PropTypes from 'prop-types';
import Column from 'soapbox/components/column';
import Pullable from 'soapbox/components/pullable';
+import ColumnHeader from './column_header';
export default class UIColumn extends React.PureComponent {
diff --git a/app/soapbox/features/ui/components/column_loading.js b/app/soapbox/features/ui/components/column_loading.js
index 7ade977e2..ca26c258e 100644
--- a/app/soapbox/features/ui/components/column_loading.js
+++ b/app/soapbox/features/ui/components/column_loading.js
@@ -1,9 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
-import Column from 'soapbox/components/column';
-import ColumnHeader from '../../../components/column_header';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import Column from 'soapbox/components/column';
import LoadingIndicator from 'soapbox/components/loading_indicator';
+import ColumnHeader from '../../../components/column_header';
export default class ColumnLoading extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/compose_modal.js b/app/soapbox/features/ui/components/compose_modal.js
index ad119a628..7468383c7 100644
--- a/app/soapbox/features/ui/components/compose_modal.js
+++ b/app/soapbox/features/ui/components/compose_modal.js
@@ -4,8 +4,8 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import ComposeFormContainer from '../../compose/containers/compose_form_container';
import IconButton from 'soapbox/components/icon_button';
+import ComposeFormContainer from '../../compose/containers/compose_form_container';
import { openModal } from '../../../actions/modal';
import { cancelReplyCompose } from '../../../actions/compose';
diff --git a/app/soapbox/features/ui/components/confirmation_modal.js b/app/soapbox/features/ui/components/confirmation_modal.js
index 3df0939e9..6e576d612 100644
--- a/app/soapbox/features/ui/components/confirmation_modal.js
+++ b/app/soapbox/features/ui/components/confirmation_modal.js
@@ -1,8 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { injectIntl, FormattedMessage } from 'react-intl';
-import Button from '../../../components/button';
import { SimpleForm, FieldsGroup, Checkbox } from 'soapbox/features/forms';
+import Button from '../../../components/button';
import Icon from '../../../components/icon';
export default @injectIntl
diff --git a/app/soapbox/features/ui/components/edit_federation_modal.js b/app/soapbox/features/ui/components/edit_federation_modal.js
index ff284316d..e6f0bc4f9 100644
--- a/app/soapbox/features/ui/components/edit_federation_modal.js
+++ b/app/soapbox/features/ui/components/edit_federation_modal.js
@@ -4,9 +4,9 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
+import { Map as ImmutableMap, is } from 'immutable';
import { SimpleForm, Checkbox } from 'soapbox/features/forms';
import { makeGetRemoteInstance } from 'soapbox/selectors';
-import { Map as ImmutableMap, is } from 'immutable';
import { updateMrf } from 'soapbox/actions/mrf';
import snackbar from 'soapbox/actions/snackbar';
diff --git a/app/soapbox/features/ui/components/features_panel.js b/app/soapbox/features/ui/components/features_panel.js
index 2704344ff..dcb0b5b5e 100644
--- a/app/soapbox/features/ui/components/features_panel.js
+++ b/app/soapbox/features/ui/components/features_panel.js
@@ -1,11 +1,11 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
-import Icon from 'soapbox/components/icon';
-import IconWithCounter from 'soapbox/components/icon_with_counter';
import { NavLink } from 'react-router-dom';
import { injectIntl, defineMessages } from 'react-intl';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
+import IconWithCounter from 'soapbox/components/icon_with_counter';
+import Icon from 'soapbox/components/icon';
import { getFeatures } from 'soapbox/utils/features';
import { getBaseURL } from 'soapbox/utils/accounts';
diff --git a/app/soapbox/features/ui/components/focal_point_modal.js b/app/soapbox/features/ui/components/focal_point_modal.js
index 189c051fd..b919af6c4 100644
--- a/app/soapbox/features/ui/components/focal_point_modal.js
+++ b/app/soapbox/features/ui/components/focal_point_modal.js
@@ -2,10 +2,10 @@ import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
-import ImageLoader from './image_loader';
import classNames from 'classnames';
import { changeUploadCompose } from '../../../actions/compose';
import { getPointerPosition } from '../../video';
+import ImageLoader from './image_loader';
const mapStateToProps = (state, { id }) => ({
media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),
diff --git a/app/soapbox/features/ui/components/funding_panel.js b/app/soapbox/features/ui/components/funding_panel.js
index dfcb31a75..cd3e893f3 100644
--- a/app/soapbox/features/ui/components/funding_panel.js
+++ b/app/soapbox/features/ui/components/funding_panel.js
@@ -2,10 +2,10 @@ import React from 'react';
import { connect } from 'react-redux';
import { injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import ProgressBar from '../../../components/progress_bar';
-import { fetchPatronInstance } from 'soapbox/actions/patron';
import { Map as ImmutableMap } from 'immutable';
+import { fetchPatronInstance } from 'soapbox/actions/patron';
import Icon from 'soapbox/components/icon';
+import ProgressBar from '../../../components/progress_bar';
const moneyFormat = amount => (
new Intl
diff --git a/app/soapbox/features/ui/components/link_footer.js b/app/soapbox/features/ui/components/link_footer.js
index 5f7dc87c9..838a5795e 100644
--- a/app/soapbox/features/ui/components/link_footer.js
+++ b/app/soapbox/features/ui/components/link_footer.js
@@ -4,11 +4,11 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
import { connect } from 'react-redux';
-import { openModal } from '../../../actions/modal';
import { logOut } from 'soapbox/actions/auth';
import { getBaseURL, isAdmin } from 'soapbox/utils/accounts';
import sourceCode from 'soapbox/utils/code';
import { getFeatures } from 'soapbox/utils/features';
+import { openModal } from '../../../actions/modal';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/features/ui/components/list_panel.js b/app/soapbox/features/ui/components/list_panel.js
index 74ce8a889..adc25d23d 100644
--- a/app/soapbox/features/ui/components/list_panel.js
+++ b/app/soapbox/features/ui/components/list_panel.js
@@ -2,10 +2,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { fetchLists } from 'soapbox/actions/lists';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { NavLink, withRouter } from 'react-router-dom';
+import { fetchLists } from 'soapbox/actions/lists';
import Icon from 'soapbox/components/icon';
const getOrderedLists = createSelector([state => state.get('lists')], lists => {
diff --git a/app/soapbox/features/ui/components/media_modal.js b/app/soapbox/features/ui/components/media_modal.js
index 603681161..7e9780c9b 100644
--- a/app/soapbox/features/ui/components/media_modal.js
+++ b/app/soapbox/features/ui/components/media_modal.js
@@ -2,15 +2,15 @@ import React from 'react';
import ReactSwipeableViews from 'react-swipeable-views';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import classNames from 'classnames';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import Video from 'soapbox/features/video';
import Audio from 'soapbox/features/audio';
import ExtendedVideoPlayer from 'soapbox/components/extended_video_player';
-import classNames from 'classnames';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import IconButton from 'soapbox/components/icon_button';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ImageLoader from './image_loader';
import Icon from 'soapbox/components/icon';
+import ImageLoader from './image_loader';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/ui/components/modal_root.js b/app/soapbox/features/ui/components/modal_root.js
index b1e1714a8..d898dec3c 100644
--- a/app/soapbox/features/ui/components/modal_root.js
+++ b/app/soapbox/features/ui/components/modal_root.js
@@ -2,9 +2,6 @@ import React from 'react';
import PropTypes from 'prop-types';
import Base from '../../../components/modal_root';
import BundleContainer from '../containers/bundle_container';
-import BundleModalError from './bundle_modal_error';
-import ModalLoading from './modal_loading';
-
import {
MediaModal,
VideoModal,
@@ -30,6 +27,9 @@ import {
ReblogsModal,
MentionsModal,
} from '../../../features/ui/util/async-components';
+import BundleModalError from './bundle_modal_error';
+import ModalLoading from './modal_loading';
+
const MODAL_COMPONENTS = {
'MEDIA': MediaModal,
diff --git a/app/soapbox/features/ui/components/pending_status.js b/app/soapbox/features/ui/components/pending_status.js
index 44830822a..15d36cbb0 100644
--- a/app/soapbox/features/ui/components/pending_status.js
+++ b/app/soapbox/features/ui/components/pending_status.js
@@ -1,17 +1,17 @@
import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import StatusContent from 'soapbox/components/status_content';
-import { buildStatus } from '../util/pending_status_builder';
import classNames from 'classnames';
-import RelativeTimestamp from 'soapbox/components/relative_timestamp';
import { Link, NavLink } from 'react-router-dom';
+import RelativeTimestamp from 'soapbox/components/relative_timestamp';
+import StatusContent from 'soapbox/components/status_content';
import { getDomain } from 'soapbox/utils/accounts';
import Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
-import PollPreview from './poll_preview';
import PlaceholderCard from 'soapbox/features/placeholder/components/placeholder_card';
+import { buildStatus } from '../util/pending_status_builder';
import PlaceholderMediaGallery from '../../placeholder/components/placeholder_media_gallery';
+import PollPreview from './poll_preview';
const shouldHaveCard = pendingStatus => {
return Boolean(pendingStatus.get('content').match(/https?:\/\/\S*/));
diff --git a/app/soapbox/features/ui/components/profile_dropdown.js b/app/soapbox/features/ui/components/profile_dropdown.js
index 355e4f226..8df508d3c 100644
--- a/app/soapbox/features/ui/components/profile_dropdown.js
+++ b/app/soapbox/features/ui/components/profile_dropdown.js
@@ -1,17 +1,17 @@
import React from 'react';
import { connect } from 'react-redux';
-import { fetchOwnAccounts } from 'soapbox/actions/auth';
import { throttle } from 'lodash';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
-import { isStaff } from 'soapbox/utils/accounts';
import { defineMessages, injectIntl } from 'react-intl';
-import { logOut, switchAccount } from 'soapbox/actions/auth';
import { is as ImmutableIs } from 'immutable';
+import { isStaff } from 'soapbox/utils/accounts';
+import { logOut, switchAccount } from 'soapbox/actions/auth';
+import { fetchOwnAccounts } from 'soapbox/actions/auth';
import Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
import { makeGetOtherAccounts } from 'soapbox/selectors';
+import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
const messages = defineMessages({
add: { id: 'profile_dropdown.add_account', defaultMessage: 'Add an existing account' },
diff --git a/app/soapbox/features/ui/components/profile_info_panel.js b/app/soapbox/features/ui/components/profile_info_panel.js
index 9a42a9a27..af408087b 100644
--- a/app/soapbox/features/ui/components/profile_info_panel.js
+++ b/app/soapbox/features/ui/components/profile_info_panel.js
@@ -5,15 +5,15 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { List as ImmutableList } from 'immutable';
+import classNames from 'classnames';
+import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import Icon from 'soapbox/components/icon';
import VerificationBadge from 'soapbox/components/verification_badge';
import Badge from 'soapbox/components/badge';
-import { List as ImmutableList } from 'immutable';
import { getAcct, isAdmin, isModerator, isLocal, isVerified } from 'soapbox/utils/accounts';
import { displayFqn } from 'soapbox/utils/state';
-import classNames from 'classnames';
import { CryptoAddress } from 'soapbox/features/ui/util/async-components';
import ProfileStats from './profile_stats';
diff --git a/app/soapbox/features/ui/components/profile_media_panel.js b/app/soapbox/features/ui/components/profile_media_panel.js
index 7f41e976d..cbbb6eaa5 100644
--- a/app/soapbox/features/ui/components/profile_media_panel.js
+++ b/app/soapbox/features/ui/components/profile_media_panel.js
@@ -2,14 +2,14 @@ import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import { getAccountGallery } from 'soapbox/selectors';
-import { openModal } from 'soapbox/actions/modal';
-import { expandAccountMediaTimeline } from '../../../actions/timelines';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import MediaItem from '../../account_gallery/components/media_item';
+import { getAccountGallery } from 'soapbox/selectors';
+import { openModal } from 'soapbox/actions/modal';
import Icon from 'soapbox/components/icon';
import LoadingIndicator from 'soapbox/components/loading_indicator';
+import { expandAccountMediaTimeline } from '../../../actions/timelines';
+import MediaItem from '../../account_gallery/components/media_item';
class ProfileMediaPanel extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/profile_stats.js b/app/soapbox/features/ui/components/profile_stats.js
index f74ab153d..2b0cf0120 100644
--- a/app/soapbox/features/ui/components/profile_stats.js
+++ b/app/soapbox/features/ui/components/profile_stats.js
@@ -2,9 +2,9 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { NavLink } from 'react-router-dom';
-import { shortNumberFormat } from 'soapbox/utils/numbers';
import { injectIntl, defineMessages } from 'react-intl';
import classNames from 'classnames';
+import { shortNumberFormat } from 'soapbox/utils/numbers';
const messages = defineMessages({
followers: { id: 'account.followers', defaultMessage: 'Followers' },
diff --git a/app/soapbox/features/ui/components/promo_panel.js b/app/soapbox/features/ui/components/promo_panel.js
index 38b242738..fa7b71752 100644
--- a/app/soapbox/features/ui/components/promo_panel.js
+++ b/app/soapbox/features/ui/components/promo_panel.js
@@ -1,8 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Icon from 'soapbox/components/icon';
import { connect } from 'react-redux';
+import Icon from 'soapbox/components/icon';
import { getSettings } from 'soapbox/actions/settings';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
diff --git a/app/soapbox/features/ui/components/report_modal.js b/app/soapbox/features/ui/components/report_modal.js
index 25fe49e31..76845c60e 100644
--- a/app/soapbox/features/ui/components/report_modal.js
+++ b/app/soapbox/features/ui/components/report_modal.js
@@ -1,20 +1,20 @@
import React from 'react';
import { connect } from 'react-redux';
-import { changeReportComment, changeReportForward, changeReportBlock, submitReport } from '../../../actions/reports';
-import { blockAccount } from '../../../actions/accounts';
-import { expandAccountTimeline } from '../../../actions/timelines';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { makeGetAccount } from '../../../selectors';
import { defineMessages, FormattedMessage, injectIntl } from 'react-intl';
-import StatusCheckBox from '../../report/containers/status_check_box_container';
import { OrderedSet } from 'immutable';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Button from '../../../components/button';
import Toggle from 'react-toggle';
-import IconButton from '../../../components/icon_button';
import { isRemote, getDomain } from 'soapbox/utils/accounts';
import { getFeatures } from 'soapbox/utils/features';
+import IconButton from '../../../components/icon_button';
+import Button from '../../../components/button';
+import StatusCheckBox from '../../report/containers/status_check_box_container';
+import { makeGetAccount } from '../../../selectors';
+import { expandAccountTimeline } from '../../../actions/timelines';
+import { blockAccount } from '../../../actions/accounts';
+import { changeReportComment, changeReportForward, changeReportBlock, submitReport } from '../../../actions/reports';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/ui/components/sign_up_panel.js b/app/soapbox/features/ui/components/sign_up_panel.js
index c9497b9e0..e8f19b0fb 100644
--- a/app/soapbox/features/ui/components/sign_up_panel.js
+++ b/app/soapbox/features/ui/components/sign_up_panel.js
@@ -1,8 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { connect } from 'react-redux';
import { FormattedMessage, injectIntl } from 'react-intl';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
const mapStateToProps = state => {
return {
diff --git a/app/soapbox/features/ui/components/subscription_button.js b/app/soapbox/features/ui/components/subscription_button.js
index 131f55b9a..238ea0729 100644
--- a/app/soapbox/features/ui/components/subscription_button.js
+++ b/app/soapbox/features/ui/components/subscription_button.js
@@ -3,9 +3,9 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import Button from 'soapbox/components/button';
import Icon from 'soapbox/components/icon';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import {
subscribeAccount,
unsubscribeAccount,
diff --git a/app/soapbox/features/ui/components/tabs_bar.js b/app/soapbox/features/ui/components/tabs_bar.js
index 474e65cca..e74c46373 100644
--- a/app/soapbox/features/ui/components/tabs_bar.js
+++ b/app/soapbox/features/ui/components/tabs_bar.js
@@ -7,15 +7,15 @@ import { connect } from 'react-redux';
import classNames from 'classnames';
import IconWithCounter from 'soapbox/components/icon_with_counter';
import SearchContainer from 'soapbox/features/compose/containers/search_container';
-import Avatar from '../../../components/avatar';
import Icon from 'soapbox/components/icon';
-import ProfileDropdown from './profile_dropdown';
-import { openModal } from '../../../actions/modal';
-import { openSidebar } from '../../../actions/sidebar';
-import ThemeToggle from '../../ui/components/theme_toggle_container';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { isStaff } from 'soapbox/utils/accounts';
import { getFeatures } from 'soapbox/utils/features';
+import { openModal } from '../../../actions/modal';
+import { openSidebar } from '../../../actions/sidebar';
+import ThemeToggle from '../../ui/components/theme_toggle_container';
+import Avatar from '../../../components/avatar';
+import ProfileDropdown from './profile_dropdown';
const messages = defineMessages({
post: { id: 'tabs_bar.post', defaultMessage: 'Post' },
diff --git a/app/soapbox/features/ui/components/theme_toggle.js b/app/soapbox/features/ui/components/theme_toggle.js
index 4eb54f588..addcf6135 100644
--- a/app/soapbox/features/ui/components/theme_toggle.js
+++ b/app/soapbox/features/ui/components/theme_toggle.js
@@ -2,8 +2,8 @@ import React from 'react';
import PropTypes from 'prop-types';
import { defineMessages } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Icon from '../../../components/icon';
import Toggle from 'react-toggle';
+import Icon from '../../../components/icon';
const messages = defineMessages({
switchToLight: { id: 'tabs_bar.theme_toggle_light', defaultMessage: 'Switch to light theme' },
diff --git a/app/soapbox/features/ui/components/theme_toggle_container.js b/app/soapbox/features/ui/components/theme_toggle_container.js
index f9b1d5b73..6cf6352b2 100644
--- a/app/soapbox/features/ui/components/theme_toggle_container.js
+++ b/app/soapbox/features/ui/components/theme_toggle_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import { changeSetting, getSettings } from 'soapbox/actions/settings';
import { injectIntl } from 'react-intl';
+import { changeSetting, getSettings } from 'soapbox/actions/settings';
import ThemeToggle from './theme_toggle';
const mapStateToProps = state => {
diff --git a/app/soapbox/features/ui/components/trends_panel.js b/app/soapbox/features/ui/components/trends_panel.js
index 72af6480a..26913093b 100644
--- a/app/soapbox/features/ui/components/trends_panel.js
+++ b/app/soapbox/features/ui/components/trends_panel.js
@@ -2,10 +2,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import { fetchTrends } from '../../../actions/trends';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
import Icon from 'soapbox/components/icon';
+import { fetchTrends } from '../../../actions/trends';
import Hashtag from '../../../components/hashtag';
class TrendsPanel extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/upload_area.js b/app/soapbox/features/ui/components/upload_area.js
index 4491135a3..0c2cb79d7 100644
--- a/app/soapbox/features/ui/components/upload_area.js
+++ b/app/soapbox/features/ui/components/upload_area.js
@@ -1,8 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
-import Motion from '../../ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import { FormattedMessage } from 'react-intl';
+import Motion from '../../ui/util/optional_motion';
export default class UploadArea extends React.PureComponent {
diff --git a/app/soapbox/features/ui/components/user_panel.js b/app/soapbox/features/ui/components/user_panel.js
index f7b3bcd31..ffeecc9a4 100644
--- a/app/soapbox/features/ui/components/user_panel.js
+++ b/app/soapbox/features/ui/components/user_panel.js
@@ -3,7 +3,6 @@ import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
import { injectIntl, FormattedMessage } from 'react-intl';
-import { makeGetAccount } from '../../../selectors';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Avatar from 'soapbox/components/avatar';
@@ -12,6 +11,7 @@ import { getAcct, isVerified } from 'soapbox/utils/accounts';
import { displayFqn } from 'soapbox/utils/state';
import StillImage from 'soapbox/components/still_image';
import VerificationBadge from 'soapbox/components/verification_badge';
+import { makeGetAccount } from '../../../selectors';
class UserPanel extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/video_modal.js b/app/soapbox/features/ui/components/video_modal.js
index 086d843b9..f7397f628 100644
--- a/app/soapbox/features/ui/components/video_modal.js
+++ b/app/soapbox/features/ui/components/video_modal.js
@@ -1,9 +1,9 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import Video from 'soapbox/features/video';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
+import Video from 'soapbox/features/video';
export default class VideoModal extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/who_to_follow_panel.js b/app/soapbox/features/ui/components/who_to_follow_panel.js
index 34bac9e81..248a97fd3 100644
--- a/app/soapbox/features/ui/components/who_to_follow_panel.js
+++ b/app/soapbox/features/ui/components/who_to_follow_panel.js
@@ -2,10 +2,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import { fetchSuggestions, dismissSuggestion } from '../../../actions/suggestions';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
import Icon from 'soapbox/components/icon';
+import { fetchSuggestions, dismissSuggestion } from '../../../actions/suggestions';
import AccountContainer from '../../../containers/account_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/containers/columns_area_container.js b/app/soapbox/features/ui/containers/columns_area_container.js
index 05f99cc75..91b53e81b 100644
--- a/app/soapbox/features/ui/containers/columns_area_container.js
+++ b/app/soapbox/features/ui/containers/columns_area_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import ColumnsArea from '../components/columns_area';
import { getSettings } from 'soapbox/actions/settings';
+import ColumnsArea from '../components/columns_area';
const mapStateToProps = state => ({
columns: getSettings(state).get('columns'),
diff --git a/app/soapbox/features/ui/containers/status_list_container.js b/app/soapbox/features/ui/containers/status_list_container.js
index c5afed275..a1e0454c4 100644
--- a/app/soapbox/features/ui/containers/status_list_container.js
+++ b/app/soapbox/features/ui/containers/status_list_container.js
@@ -1,9 +1,9 @@
import { connect } from 'react-redux';
-import StatusList from '../../../components/status_list';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
-import { makeGetStatusIds } from 'soapbox/selectors';
import { debounce } from 'lodash';
+import { makeGetStatusIds } from 'soapbox/selectors';
import { dequeueTimeline } from 'soapbox/actions/timelines';
+import StatusList from '../../../components/status_list';
import { scrollTopTimeline } from '../../../actions/timelines';
const makeMapStateToProps = () => {
diff --git a/app/soapbox/features/ui/index.js b/app/soapbox/features/ui/index.js
index a8c2d4475..1a5e5429d 100644
--- a/app/soapbox/features/ui/index.js
+++ b/app/soapbox/features/ui/index.js
@@ -8,35 +8,21 @@ import { connect } from 'react-redux';
import { Switch, withRouter } from 'react-router-dom';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { debounce } from 'lodash';
-import { uploadCompose, resetCompose } from '../../actions/compose';
-import { expandHomeTimeline } from '../../actions/timelines';
-import { expandNotifications } from '../../actions/notifications';
+import { Redirect } from 'react-router-dom';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { fetchMarker } from 'soapbox/actions/markers';
-import { fetchReports, fetchUsers, fetchConfig } from '../../actions/admin';
-import { fetchFilters } from '../../actions/filters';
import { fetchChats } from 'soapbox/actions/chats';
-import { clearHeight } from '../../actions/height_cache';
-import { openModal } from '../../actions/modal';
-import { fetchFollowRequests } from '../../actions/accounts';
-import { fetchScheduledStatuses } from '../../actions/scheduled_statuses';
-import { WrappedRoute } from './util/react_router_helpers';
-import BundleContainer from './containers/bundle_container';
-import TabsBar from './components/tabs_bar';
import ProfilePage from 'soapbox/pages/profile_page';
// import GroupsPage from 'soapbox/pages/groups_page';
// import GroupPage from 'soapbox/pages/group_page';
-// import GroupSidebarPanel from '../groups/sidebar_panel';
import HomePage from 'soapbox/pages/home_page';
import DefaultPage from 'soapbox/pages/default_page';
import StatusPage from 'soapbox/pages/status_page';
import EmptyPage from 'soapbox/pages/default_page';
import AdminPage from 'soapbox/pages/admin_page';
import RemoteInstancePage from 'soapbox/pages/remote_instance_page';
-import { connectUserStream } from '../../actions/streaming';
import { register as registerPushNotifications } from 'soapbox/actions/push_notifications';
-import { Redirect } from 'react-router-dom';
import Icon from 'soapbox/components/icon';
import { isStaff, isAdmin } from 'soapbox/utils/accounts';
import { getAccessToken } from 'soapbox/utils/auth';
@@ -45,6 +31,20 @@ import { fetchCustomEmojis } from 'soapbox/actions/custom_emojis';
import ThumbNavigation from 'soapbox/components/thumb_navigation';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { getVapidKey } from 'soapbox/utils/auth';
+import { fetchScheduledStatuses } from '../../actions/scheduled_statuses';
+import { connectUserStream } from '../../actions/streaming';
+import { fetchFollowRequests } from '../../actions/accounts';
+import { openModal } from '../../actions/modal';
+import { clearHeight } from '../../actions/height_cache';
+import { fetchFilters } from '../../actions/filters';
+import { fetchReports, fetchUsers, fetchConfig } from '../../actions/admin';
+import { expandNotifications } from '../../actions/notifications';
+import { expandHomeTimeline } from '../../actions/timelines';
+import { uploadCompose, resetCompose } from '../../actions/compose';
+// import GroupSidebarPanel from '../groups/sidebar_panel';
+import { WrappedRoute } from './util/react_router_helpers';
+import BundleContainer from './containers/bundle_container';
+import TabsBar from './components/tabs_bar';
import {
Status,
diff --git a/app/soapbox/features/ui/util/optional_motion.js b/app/soapbox/features/ui/util/optional_motion.js
index b1e7355d2..b2acbfea4 100644
--- a/app/soapbox/features/ui/util/optional_motion.js
+++ b/app/soapbox/features/ui/util/optional_motion.js
@@ -1,9 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
-import ReducedMotion from './reduced_motion';
import Motion from 'react-motion/lib/Motion';
import { getSettings } from 'soapbox/actions/settings';
+import ReducedMotion from './reduced_motion';
const mapStateToProps = state => ({
reduceMotion: getSettings(state).get('reduceMotion'),
diff --git a/app/soapbox/features/ui/util/react_router_helpers.js b/app/soapbox/features/ui/util/react_router_helpers.js
index 337f62e4e..521022706 100644
--- a/app/soapbox/features/ui/util/react_router_helpers.js
+++ b/app/soapbox/features/ui/util/react_router_helpers.js
@@ -3,13 +3,13 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { Redirect, Route } from 'react-router-dom';
+import { getSettings } from 'soapbox/actions/settings';
+import { isStaff, isAdmin } from 'soapbox/utils/accounts';
import ColumnsAreaContainer from '../containers/columns_area_container';
import ColumnLoading from '../components/column_loading';
import ColumnForbidden from '../components/column_forbidden';
import BundleColumnError from '../components/bundle_column_error';
import BundleContainer from '../containers/bundle_container';
-import { getSettings } from 'soapbox/actions/settings';
-import { isStaff, isAdmin } from 'soapbox/utils/accounts';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/features/video/index.js b/app/soapbox/features/video/index.js
index 9fc3831bb..ece4e135b 100644
--- a/app/soapbox/features/video/index.js
+++ b/app/soapbox/features/video/index.js
@@ -5,11 +5,11 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { fromJS, is } from 'immutable';
import { throttle, debounce } from 'lodash';
import classNames from 'classnames';
-import { isFullscreen, requestFullscreen, exitFullscreen } from '../ui/util/fullscreen';
import Icon from 'soapbox/components/icon';
import Blurhash from 'soapbox/components/blurhash';
-import { isPanoramic, isPortrait, minimumAspectRatio, maximumAspectRatio } from '../../utils/media_aspect_ratio';
import { getSettings } from 'soapbox/actions/settings';
+import { isPanoramic, isPortrait, minimumAspectRatio, maximumAspectRatio } from '../../utils/media_aspect_ratio';
+import { isFullscreen, requestFullscreen, exitFullscreen } from '../ui/util/fullscreen';
const messages = defineMessages({
play: { id: 'video.play', defaultMessage: 'Play' },
diff --git a/app/soapbox/main.js b/app/soapbox/main.js
index 4828f996e..dc3b1241f 100644
--- a/app/soapbox/main.js
+++ b/app/soapbox/main.js
@@ -1,14 +1,14 @@
'use strict';
import './precheck';
-import { default as Soapbox } from './containers/soapbox';
import React from 'react';
import ReactDOM from 'react-dom';
import * as OfflinePluginRuntime from '@lcdp/offline-plugin/runtime';
+import { NODE_ENV } from 'soapbox/build_config';
+import { default as Soapbox } from './containers/soapbox';
import * as perf from './performance';
import * as monitoring from './monitoring';
import ready from './ready';
-import { NODE_ENV } from 'soapbox/build_config';
function main() {
perf.start('main()');
diff --git a/app/soapbox/pages/admin_page.js b/app/soapbox/pages/admin_page.js
index 09fa0d81a..0c331fc26 100644
--- a/app/soapbox/pages/admin_page.js
+++ b/app/soapbox/pages/admin_page.js
@@ -1,11 +1,11 @@
import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import LinkFooter from '../features/ui/components/link_footer';
import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import {
AdminNav,
LatestAccountsPanel,
} from 'soapbox/features/ui/util/async-components';
+import LinkFooter from '../features/ui/components/link_footer';
export default
class AdminPage extends ImmutablePureComponent {
diff --git a/app/soapbox/pages/home_page.js b/app/soapbox/pages/home_page.js
index 96493e5ac..aad8e8192 100644
--- a/app/soapbox/pages/home_page.js
+++ b/app/soapbox/pages/home_page.js
@@ -3,9 +3,6 @@ import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Sticky from 'react-stickynode';
-import BundleContainer from '../features/ui/containers/bundle_container';
-import ComposeFormContainer from '../features/compose/containers/compose_form_container';
-import Avatar from '../components/avatar';
import PrimaryNavigation from 'soapbox/components/primary_navigation';
import {
WhoToFollowPanel,
@@ -21,6 +18,9 @@ import {
import LinkFooter from 'soapbox/features/ui/components/link_footer';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { getFeatures } from 'soapbox/utils/features';
+import Avatar from '../components/avatar';
+import ComposeFormContainer from '../features/compose/containers/compose_form_container';
+import BundleContainer from '../features/ui/containers/bundle_container';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/pages/profile_page.js b/app/soapbox/pages/profile_page.js
index 1f4bdbc49..1a5fa738c 100644
--- a/app/soapbox/pages/profile_page.js
+++ b/app/soapbox/pages/profile_page.js
@@ -4,8 +4,8 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Sticky from 'react-stickynode';
+import { Redirect } from 'react-router-dom';
import Helmet from 'soapbox/components/helmet';
-import HeaderContainer from '../features/account_timeline/containers/header_container';
import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import {
WhoToFollowPanel,
@@ -13,13 +13,13 @@ import {
ProfileInfoPanel,
ProfileMediaPanel,
} from 'soapbox/features/ui/util/async-components';
-import LinkFooter from '../features/ui/components/link_footer';
import { getAcct } from 'soapbox/utils/accounts';
import { displayFqn } from 'soapbox/utils/state';
import { getFeatures } from 'soapbox/utils/features';
-import { makeGetAccount } from '../selectors';
-import { Redirect } from 'react-router-dom';
import { findAccountByUsername } from 'soapbox/selectors';
+import { makeGetAccount } from '../selectors';
+import LinkFooter from '../features/ui/components/link_footer';
+import HeaderContainer from '../features/account_timeline/containers/header_container';
const mapStateToProps = (state, { params, withReplies = false }) => {
const username = params.username || '';
diff --git a/app/soapbox/pages/status_page.js b/app/soapbox/pages/status_page.js
index c20ea91d3..1bc44fee4 100644
--- a/app/soapbox/pages/status_page.js
+++ b/app/soapbox/pages/status_page.js
@@ -2,7 +2,6 @@ import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Sticky from 'react-stickynode';
-import BundleContainer from '../features/ui/containers/bundle_container';
import PrimaryNavigation from 'soapbox/components/primary_navigation';
import {
WhoToFollowPanel,
@@ -14,6 +13,7 @@ import {
// import GroupSidebarPanel from '../features/groups/sidebar_panel';
import LinkFooter from 'soapbox/features/ui/components/link_footer';
import { getFeatures } from 'soapbox/utils/features';
+import BundleContainer from '../features/ui/containers/bundle_container';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/reducers/__tests__/accounts-test.js b/app/soapbox/reducers/__tests__/accounts-test.js
index 10cefb3fd..83a5b26ed 100644
--- a/app/soapbox/reducers/__tests__/accounts-test.js
+++ b/app/soapbox/reducers/__tests__/accounts-test.js
@@ -1,5 +1,5 @@
-import reducer from '../accounts';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../accounts';
// import * as actions from 'soapbox/actions/importer';
// import { take } from 'lodash';
// import accounts from 'soapbox/__fixtures__/accounts.json';
diff --git a/app/soapbox/reducers/__tests__/accounts_counters-test.js b/app/soapbox/reducers/__tests__/accounts_counters-test.js
index e708e9deb..e635b0dff 100644
--- a/app/soapbox/reducers/__tests__/accounts_counters-test.js
+++ b/app/soapbox/reducers/__tests__/accounts_counters-test.js
@@ -1,5 +1,5 @@
-import reducer from '../accounts_counters';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../accounts_counters';
// import { ACCOUNT_FOLLOW_SUCCESS, ACCOUNT_UNFOLLOW_SUCCESS } from 'soapbox/actions/accounts';
// import relationship from 'soapbox/__fixtures__/relationship.json';
// import accounts_counter_initial from 'soapbox/__fixtures__/accounts_counter_initial.json';
diff --git a/app/soapbox/reducers/__tests__/admin-test.js b/app/soapbox/reducers/__tests__/admin-test.js
index e56eff6e9..e92e0bb4b 100644
--- a/app/soapbox/reducers/__tests__/admin-test.js
+++ b/app/soapbox/reducers/__tests__/admin-test.js
@@ -1,9 +1,9 @@
-import reducer from '../admin';
import {
Map as ImmutableMap,
List as ImmutableList,
OrderedSet as ImmutableOrderedSet,
} from 'immutable';
+import reducer from '../admin';
describe('admin reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/alerts-test.js b/app/soapbox/reducers/__tests__/alerts-test.js
index ab935b45c..e0e9a1a2c 100644
--- a/app/soapbox/reducers/__tests__/alerts-test.js
+++ b/app/soapbox/reducers/__tests__/alerts-test.js
@@ -1,6 +1,6 @@
-import reducer from '../alerts';
import { List as ImmutableList } from 'immutable';
import * as actions from 'soapbox/actions/alerts';
+import reducer from '../alerts';
describe('alerts reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/auth-test.js b/app/soapbox/reducers/__tests__/auth-test.js
index f138ebe90..0ec4a4ab7 100644
--- a/app/soapbox/reducers/__tests__/auth-test.js
+++ b/app/soapbox/reducers/__tests__/auth-test.js
@@ -1,4 +1,3 @@
-import reducer from '../auth';
import { Map as ImmutableMap, fromJS } from 'immutable';
import {
AUTH_APP_CREATED,
@@ -10,6 +9,7 @@ import {
} from 'soapbox/actions/auth';
import { ME_FETCH_SKIP } from 'soapbox/actions/me';
import { MASTODON_PRELOAD_IMPORT } from 'soapbox/actions/preload';
+import reducer from '../auth';
describe('auth reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/compose-test.js b/app/soapbox/reducers/__tests__/compose-test.js
index a3b1781e4..28e497015 100644
--- a/app/soapbox/reducers/__tests__/compose-test.js
+++ b/app/soapbox/reducers/__tests__/compose-test.js
@@ -1,10 +1,10 @@
-import reducer from '../compose';
import { Map as ImmutableMap } from 'immutable';
import { ME_FETCH_SUCCESS, ME_PATCH_SUCCESS } from 'soapbox/actions/me';
import { SETTING_CHANGE } from 'soapbox/actions/settings';
import * as actions from 'soapbox/actions/compose';
//import { REDRAFT } from 'soapbox/actions/statuses';
import { TIMELINE_DELETE } from 'soapbox/actions/timelines';
+import reducer from '../compose';
describe('compose reducer', () => {
it('returns the initial state by default', () => {
diff --git a/app/soapbox/reducers/__tests__/contexts-test.js b/app/soapbox/reducers/__tests__/contexts-test.js
index 054888cec..231de1286 100644
--- a/app/soapbox/reducers/__tests__/contexts-test.js
+++ b/app/soapbox/reducers/__tests__/contexts-test.js
@@ -1,13 +1,13 @@
-import reducer from '../contexts';
-import { CONTEXT_FETCH_SUCCESS } from 'soapbox/actions/statuses';
-import { TIMELINE_DELETE } from 'soapbox/actions/timelines';
import {
Map as ImmutableMap,
OrderedSet as ImmutableOrderedSet,
fromJS,
} from 'immutable';
+import { CONTEXT_FETCH_SUCCESS } from 'soapbox/actions/statuses';
+import { TIMELINE_DELETE } from 'soapbox/actions/timelines';
import context1 from 'soapbox/__fixtures__/context_1.json';
import context2 from 'soapbox/__fixtures__/context_2.json';
+import reducer from '../contexts';
describe('contexts reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/conversations-test.js b/app/soapbox/reducers/__tests__/conversations-test.js
index c8379d59e..cac121161 100644
--- a/app/soapbox/reducers/__tests__/conversations-test.js
+++ b/app/soapbox/reducers/__tests__/conversations-test.js
@@ -1,6 +1,6 @@
-import reducer from '../conversations';
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import * as actions from 'soapbox/actions/conversations';
+import reducer from '../conversations';
describe('conversations reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/custom_emojis-test.js b/app/soapbox/reducers/__tests__/custom_emojis-test.js
index 17cd1248f..c747adbb7 100644
--- a/app/soapbox/reducers/__tests__/custom_emojis-test.js
+++ b/app/soapbox/reducers/__tests__/custom_emojis-test.js
@@ -1,5 +1,5 @@
-import reducer from '../custom_emojis';
import { List as ImmutableList } from 'immutable';
+import reducer from '../custom_emojis';
describe('custom_emojis reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/domain_lists-test.js b/app/soapbox/reducers/__tests__/domain_lists-test.js
index 94003121c..4121f0b00 100644
--- a/app/soapbox/reducers/__tests__/domain_lists-test.js
+++ b/app/soapbox/reducers/__tests__/domain_lists-test.js
@@ -1,5 +1,5 @@
-import reducer from '../domain_lists';
import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
+import reducer from '../domain_lists';
describe('domain_lists reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/dropdown_menu-test.js b/app/soapbox/reducers/__tests__/dropdown_menu-test.js
index c618adf52..7634360d2 100644
--- a/app/soapbox/reducers/__tests__/dropdown_menu-test.js
+++ b/app/soapbox/reducers/__tests__/dropdown_menu-test.js
@@ -1,5 +1,5 @@
-import reducer from '../dropdown_menu';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../dropdown_menu';
describe('dropdown_menu reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/filters-test.js b/app/soapbox/reducers/__tests__/filters-test.js
index 1d0eab250..79295301d 100644
--- a/app/soapbox/reducers/__tests__/filters-test.js
+++ b/app/soapbox/reducers/__tests__/filters-test.js
@@ -1,5 +1,5 @@
-import reducer from '../filters';
import { List as ImmutableList } from 'immutable';
+import reducer from '../filters';
describe('filters reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/group_editor-test.js b/app/soapbox/reducers/__tests__/group_editor-test.js
index 2008d6fd9..1c5f1c6b7 100644
--- a/app/soapbox/reducers/__tests__/group_editor-test.js
+++ b/app/soapbox/reducers/__tests__/group_editor-test.js
@@ -1,5 +1,5 @@
-import reducer from '../group_editor';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../group_editor';
describe('group_editor reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/group_lists-test.js b/app/soapbox/reducers/__tests__/group_lists-test.js
index 802c394ce..18a165cf3 100644
--- a/app/soapbox/reducers/__tests__/group_lists-test.js
+++ b/app/soapbox/reducers/__tests__/group_lists-test.js
@@ -1,5 +1,5 @@
-import reducer from '../group_lists';
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import reducer from '../group_lists';
describe('group_lists reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/group_relationships-test.js b/app/soapbox/reducers/__tests__/group_relationships-test.js
index d0fead807..381303d8f 100644
--- a/app/soapbox/reducers/__tests__/group_relationships-test.js
+++ b/app/soapbox/reducers/__tests__/group_relationships-test.js
@@ -1,5 +1,5 @@
-import reducer from '../group_relationships';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../group_relationships';
describe('group_relationships reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/groups-test.js b/app/soapbox/reducers/__tests__/groups-test.js
index 933d7cf0e..1e6216224 100644
--- a/app/soapbox/reducers/__tests__/groups-test.js
+++ b/app/soapbox/reducers/__tests__/groups-test.js
@@ -1,5 +1,5 @@
-import reducer from '../groups';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../groups';
describe('groups reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/height_cache-test.js b/app/soapbox/reducers/__tests__/height_cache-test.js
index c964bfb62..15dc40896 100644
--- a/app/soapbox/reducers/__tests__/height_cache-test.js
+++ b/app/soapbox/reducers/__tests__/height_cache-test.js
@@ -1,5 +1,5 @@
-import reducer from '../height_cache';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../height_cache';
import { HEIGHT_CACHE_CLEAR } from '../height_cache';
describe('height_cache reducer', () => {
diff --git a/app/soapbox/reducers/__tests__/identity_proofs-test.js b/app/soapbox/reducers/__tests__/identity_proofs-test.js
index 6284b41d3..bdae2cdeb 100644
--- a/app/soapbox/reducers/__tests__/identity_proofs-test.js
+++ b/app/soapbox/reducers/__tests__/identity_proofs-test.js
@@ -1,6 +1,6 @@
-import reducer from '../identity_proofs';
import { Map as ImmutableMap } from 'immutable';
import * as actions from 'soapbox/actions/identity_proofs';
+import reducer from '../identity_proofs';
describe('identity_proofs reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/instance-test.js b/app/soapbox/reducers/__tests__/instance-test.js
index a2ed8545b..60eb9dcfd 100644
--- a/app/soapbox/reducers/__tests__/instance-test.js
+++ b/app/soapbox/reducers/__tests__/instance-test.js
@@ -1,5 +1,5 @@
-import reducer from '../instance';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../instance';
describe('instance reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/list_adder-test.js b/app/soapbox/reducers/__tests__/list_adder-test.js
index 9c34cee17..6b4aee509 100644
--- a/app/soapbox/reducers/__tests__/list_adder-test.js
+++ b/app/soapbox/reducers/__tests__/list_adder-test.js
@@ -1,6 +1,6 @@
-import reducer from '../list_adder';
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import * as actions from 'soapbox/actions/lists';
+import reducer from '../list_adder';
describe('list_adder reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/list_editor-test.js b/app/soapbox/reducers/__tests__/list_editor-test.js
index 09ec6ab02..3cf94a17b 100644
--- a/app/soapbox/reducers/__tests__/list_editor-test.js
+++ b/app/soapbox/reducers/__tests__/list_editor-test.js
@@ -1,6 +1,6 @@
-import reducer from '../list_editor';
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import * as actions from 'soapbox/actions/lists';
+import reducer from '../list_editor';
describe('list_editor reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/lists-test.js b/app/soapbox/reducers/__tests__/lists-test.js
index 52a7d28f0..a7cf46333 100644
--- a/app/soapbox/reducers/__tests__/lists-test.js
+++ b/app/soapbox/reducers/__tests__/lists-test.js
@@ -1,5 +1,5 @@
-import reducer from '../lists';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../lists';
describe('lists reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/meta-test.js b/app/soapbox/reducers/__tests__/meta-test.js
index 59542cba5..341411380 100644
--- a/app/soapbox/reducers/__tests__/meta-test.js
+++ b/app/soapbox/reducers/__tests__/meta-test.js
@@ -1,5 +1,5 @@
-import reducer from '../meta';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../meta';
describe('meta reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/modal-test.js b/app/soapbox/reducers/__tests__/modal-test.js
index 3b0a054e8..46f68b6f8 100644
--- a/app/soapbox/reducers/__tests__/modal-test.js
+++ b/app/soapbox/reducers/__tests__/modal-test.js
@@ -1,5 +1,5 @@
-import reducer from '../modal';
import { MODAL_OPEN, MODAL_CLOSE } from 'soapbox/actions/modal';
+import reducer from '../modal';
describe('modal reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/mutes-test.js b/app/soapbox/reducers/__tests__/mutes-test.js
index bdf58bba4..af6dcafc3 100644
--- a/app/soapbox/reducers/__tests__/mutes-test.js
+++ b/app/soapbox/reducers/__tests__/mutes-test.js
@@ -1,9 +1,9 @@
-import reducer from '../mutes';
import { Map as ImmutableMap } from 'immutable';
import {
MUTES_INIT_MODAL,
MUTES_TOGGLE_HIDE_NOTIFICATIONS,
} from 'soapbox/actions/mutes';
+import reducer from '../mutes';
describe('mutes reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/notifications-test.js b/app/soapbox/reducers/__tests__/notifications-test.js
index dbaeff40a..8707d1c87 100644
--- a/app/soapbox/reducers/__tests__/notifications-test.js
+++ b/app/soapbox/reducers/__tests__/notifications-test.js
@@ -1,3 +1,6 @@
+import { Map as ImmutableMap, OrderedMap as ImmutableOrderedMap, fromJS } from 'immutable';
+import { take } from 'lodash';
+import notifications from 'soapbox/__fixtures__/notifications.json';
import {
NOTIFICATIONS_EXPAND_SUCCESS,
NOTIFICATIONS_EXPAND_REQUEST,
@@ -10,10 +13,6 @@ import {
NOTIFICATIONS_CLEAR,
NOTIFICATIONS_MARK_READ_REQUEST,
} from 'soapbox/actions/notifications';
-import reducer from '../notifications';
-import notifications from 'soapbox/__fixtures__/notifications.json';
-import { Map as ImmutableMap, OrderedMap as ImmutableOrderedMap, fromJS } from 'immutable';
-import { take } from 'lodash';
import { ACCOUNT_BLOCK_SUCCESS, ACCOUNT_MUTE_SUCCESS } from 'soapbox/actions/accounts';
import notification from 'soapbox/__fixtures__/notification.json';
import intlMessages from 'soapbox/__fixtures__/intlMessages.json';
@@ -24,6 +23,7 @@ import {
MARKER_SAVE_REQUEST,
MARKER_SAVE_SUCCESS,
} from 'soapbox/actions/markers';
+import reducer from '../notifications';
describe('notifications reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/patron-test.js b/app/soapbox/reducers/__tests__/patron-test.js
index 8a6001913..c3e4f7569 100644
--- a/app/soapbox/reducers/__tests__/patron-test.js
+++ b/app/soapbox/reducers/__tests__/patron-test.js
@@ -1,6 +1,6 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import reducer from '../patron';
import { PATRON_ACCOUNT_FETCH_SUCCESS } from '../../actions/patron';
-import { Map as ImmutableMap, fromJS } from 'immutable';
describe('patron reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/polls-test.js b/app/soapbox/reducers/__tests__/polls-test.js
index d78698b93..ef5ff1f1e 100644
--- a/app/soapbox/reducers/__tests__/polls-test.js
+++ b/app/soapbox/reducers/__tests__/polls-test.js
@@ -1,5 +1,5 @@
-import reducer from '../polls';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../polls';
describe('polls reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/push_notifications-test.js b/app/soapbox/reducers/__tests__/push_notifications-test.js
index 8a7b63925..ab5a7dc29 100644
--- a/app/soapbox/reducers/__tests__/push_notifications-test.js
+++ b/app/soapbox/reducers/__tests__/push_notifications-test.js
@@ -1,5 +1,5 @@
-import reducer from '../push_notifications';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../push_notifications';
describe('push_notifications reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/relationships-test.js b/app/soapbox/reducers/__tests__/relationships-test.js
index 657a94c44..c7939d2fd 100644
--- a/app/soapbox/reducers/__tests__/relationships-test.js
+++ b/app/soapbox/reducers/__tests__/relationships-test.js
@@ -1,9 +1,9 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
+import lain from 'soapbox/__fixtures__/lain.json';
import reducer from '../relationships';
import {
ACCOUNT_IMPORT,
} from '../../actions/importer';
-import lain from 'soapbox/__fixtures__/lain.json';
-import { Map as ImmutableMap, fromJS } from 'immutable';
describe('relationships reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/reports-test.js b/app/soapbox/reducers/__tests__/reports-test.js
index 761128786..66a158221 100644
--- a/app/soapbox/reducers/__tests__/reports-test.js
+++ b/app/soapbox/reducers/__tests__/reports-test.js
@@ -1,5 +1,5 @@
-import reducer from '../reports';
import { Map as ImmutableMap, Set as ImmutableSet } from 'immutable';
+import reducer from '../reports';
describe('reports reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/search-test.js b/app/soapbox/reducers/__tests__/search-test.js
index 6a872ab07..8aefe8885 100644
--- a/app/soapbox/reducers/__tests__/search-test.js
+++ b/app/soapbox/reducers/__tests__/search-test.js
@@ -1,9 +1,9 @@
-import reducer from '../search';
+import { Map as ImmutableMap } from 'immutable';
import {
SEARCH_CHANGE,
SEARCH_CLEAR,
} from 'soapbox/actions/search';
-import { Map as ImmutableMap } from 'immutable';
+import reducer from '../search';
describe('search reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/settings-test.js b/app/soapbox/reducers/__tests__/settings-test.js
index 897dfb556..2e2a4defa 100644
--- a/app/soapbox/reducers/__tests__/settings-test.js
+++ b/app/soapbox/reducers/__tests__/settings-test.js
@@ -1,5 +1,5 @@
-import reducer from '../settings';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../settings';
describe('settings reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/soapbox-test.js b/app/soapbox/reducers/__tests__/soapbox-test.js
index ff06e7c69..0dabe423b 100644
--- a/app/soapbox/reducers/__tests__/soapbox-test.js
+++ b/app/soapbox/reducers/__tests__/soapbox-test.js
@@ -1,9 +1,9 @@
-import reducer from '../soapbox';
import { Map as ImmutableMap } from 'immutable';
import * as actions from 'soapbox/actions/soapbox';
import { ADMIN_CONFIG_UPDATE_SUCCESS } from 'soapbox/actions/admin';
import soapbox from 'soapbox/__fixtures__/soapbox.json';
import soapboxConfig from 'soapbox/__fixtures__/admin_api_frontend_config.json';
+import reducer from '../soapbox';
describe('soapbox reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/status_lists-test.js b/app/soapbox/reducers/__tests__/status_lists-test.js
index e3e6a1971..7914faf24 100644
--- a/app/soapbox/reducers/__tests__/status_lists-test.js
+++ b/app/soapbox/reducers/__tests__/status_lists-test.js
@@ -1,5 +1,5 @@
-import reducer from '../status_lists';
import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
+import reducer from '../status_lists';
describe('status_lists reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/statuses-test.js b/app/soapbox/reducers/__tests__/statuses-test.js
index 525ca50e6..351420ac2 100644
--- a/app/soapbox/reducers/__tests__/statuses-test.js
+++ b/app/soapbox/reducers/__tests__/statuses-test.js
@@ -1,10 +1,10 @@
-import reducer from '../statuses';
import { Map as ImmutableMap, fromJS } from 'immutable';
import {
STATUS_CREATE_REQUEST,
STATUS_CREATE_FAIL,
} from 'soapbox/actions/statuses';
import { STATUS_IMPORT } from 'soapbox/actions/importer';
+import reducer from '../statuses';
describe('statuses reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/suggestions-test.js b/app/soapbox/reducers/__tests__/suggestions-test.js
index 6740bd7ba..003587749 100644
--- a/app/soapbox/reducers/__tests__/suggestions-test.js
+++ b/app/soapbox/reducers/__tests__/suggestions-test.js
@@ -1,6 +1,6 @@
-import reducer from '../suggestions';
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
import { SUGGESTIONS_DISMISS } from 'soapbox/actions/suggestions';
+import reducer from '../suggestions';
describe('suggestions reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/timelines-test.js b/app/soapbox/reducers/__tests__/timelines-test.js
index dfa5a62d4..5d18eb399 100644
--- a/app/soapbox/reducers/__tests__/timelines-test.js
+++ b/app/soapbox/reducers/__tests__/timelines-test.js
@@ -1,10 +1,10 @@
-import reducer from '../timelines';
import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable';
import {
TIMELINE_EXPAND_REQUEST,
TIMELINE_EXPAND_FAIL,
TIMELINE_EXPAND_SUCCESS,
} from 'soapbox/actions/timelines';
+import reducer from '../timelines';
describe('timelines reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/trends-test.js b/app/soapbox/reducers/__tests__/trends-test.js
index 9c14da46b..876a9dacf 100644
--- a/app/soapbox/reducers/__tests__/trends-test.js
+++ b/app/soapbox/reducers/__tests__/trends-test.js
@@ -1,5 +1,5 @@
-import reducer from '../trends';
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import reducer from '../trends';
describe('trends reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/user_lists-test.js b/app/soapbox/reducers/__tests__/user_lists-test.js
index 7d571e208..4fdbb8ca3 100644
--- a/app/soapbox/reducers/__tests__/user_lists-test.js
+++ b/app/soapbox/reducers/__tests__/user_lists-test.js
@@ -1,5 +1,5 @@
-import reducer from '../user_lists';
import { Map as ImmutableMap } from 'immutable';
+import reducer from '../user_lists';
describe('user_lists reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/accounts.js b/app/soapbox/reducers/accounts.js
index 5b7cdd804..dd83e3379 100644
--- a/app/soapbox/reducers/accounts.js
+++ b/app/soapbox/reducers/accounts.js
@@ -1,16 +1,11 @@
-import {
- ACCOUNT_IMPORT,
- ACCOUNTS_IMPORT,
- ACCOUNT_FETCH_FAIL_FOR_USERNAME_LOOKUP,
-} from '../actions/importer';
-import { CHATS_FETCH_SUCCESS, CHATS_EXPAND_SUCCESS, CHAT_FETCH_SUCCESS } from 'soapbox/actions/chats';
-import { STREAMING_CHAT_UPDATE } from 'soapbox/actions/streaming';
-import { normalizeAccount as normalizeAccount2 } from 'soapbox/actions/importer/normalizer';
import {
Map as ImmutableMap,
List as ImmutableList,
fromJS,
} from 'immutable';
+import { CHATS_FETCH_SUCCESS, CHATS_EXPAND_SUCCESS, CHAT_FETCH_SUCCESS } from 'soapbox/actions/chats';
+import { STREAMING_CHAT_UPDATE } from 'soapbox/actions/streaming';
+import { normalizeAccount as normalizeAccount2 } from 'soapbox/actions/importer/normalizer';
import { normalizePleromaUserFields } from 'soapbox/utils/pleroma';
import {
ADMIN_USERS_FETCH_SUCCESS,
@@ -35,6 +30,11 @@ import {
ADMIN_USERS_UNSUGGEST_REQUEST,
ADMIN_USERS_UNSUGGEST_FAIL,
} from 'soapbox/actions/admin';
+import {
+ ACCOUNT_IMPORT,
+ ACCOUNTS_IMPORT,
+ ACCOUNT_FETCH_FAIL_FOR_USERNAME_LOOKUP,
+} from '../actions/importer';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/accounts_counters.js b/app/soapbox/reducers/accounts_counters.js
index 392599244..3af46ecf5 100644
--- a/app/soapbox/reducers/accounts_counters.js
+++ b/app/soapbox/reducers/accounts_counters.js
@@ -1,10 +1,10 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
+import { STREAMING_FOLLOW_RELATIONSHIPS_UPDATE } from 'soapbox/actions/streaming';
import {
ACCOUNT_FOLLOW_SUCCESS,
ACCOUNT_UNFOLLOW_SUCCESS,
} from '../actions/accounts';
import { ACCOUNT_IMPORT, ACCOUNTS_IMPORT } from '../actions/importer';
-import { STREAMING_FOLLOW_RELATIONSHIPS_UPDATE } from 'soapbox/actions/streaming';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const normalizeAccount = (state, account) => state.set(account.id, fromJS({
followers_count: account.followers_count,
diff --git a/app/soapbox/reducers/accounts_meta.js b/app/soapbox/reducers/accounts_meta.js
index 731568313..5fb6f4834 100644
--- a/app/soapbox/reducers/accounts_meta.js
+++ b/app/soapbox/reducers/accounts_meta.js
@@ -3,9 +3,9 @@
* @module soapbox/reducers/accounts_meta
*/
+import { Map as ImmutableMap, fromJS } from 'immutable';
import { ME_FETCH_SUCCESS, ME_PATCH_SUCCESS } from 'soapbox/actions/me';
import { VERIFY_CREDENTIALS_SUCCESS, AUTH_ACCOUNT_REMEMBER_SUCCESS } from 'soapbox/actions/auth';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/admin.js b/app/soapbox/reducers/admin.js
index 98fa3aa8a..1270af09a 100644
--- a/app/soapbox/reducers/admin.js
+++ b/app/soapbox/reducers/admin.js
@@ -1,3 +1,11 @@
+import {
+ Map as ImmutableMap,
+ List as ImmutableList,
+ Set as ImmutableSet,
+ OrderedSet as ImmutableOrderedSet,
+ fromJS,
+ is,
+} from 'immutable';
import {
ADMIN_CONFIG_FETCH_SUCCESS,
ADMIN_CONFIG_UPDATE_SUCCESS,
@@ -10,14 +18,6 @@ import {
ADMIN_USERS_APPROVE_REQUEST,
ADMIN_USERS_APPROVE_SUCCESS,
} from '../actions/admin';
-import {
- Map as ImmutableMap,
- List as ImmutableList,
- Set as ImmutableSet,
- OrderedSet as ImmutableOrderedSet,
- fromJS,
- is,
-} from 'immutable';
const initialState = ImmutableMap({
reports: ImmutableMap(),
diff --git a/app/soapbox/reducers/admin_log.js b/app/soapbox/reducers/admin_log.js
index b8abc39e0..af23c7a71 100644
--- a/app/soapbox/reducers/admin_log.js
+++ b/app/soapbox/reducers/admin_log.js
@@ -1,9 +1,9 @@
-import { ADMIN_LOG_FETCH_SUCCESS } from 'soapbox/actions/admin';
import {
Map as ImmutableMap,
OrderedSet as ImmutableOrderedSet,
fromJS,
} from 'immutable';
+import { ADMIN_LOG_FETCH_SUCCESS } from 'soapbox/actions/admin';
const initialState = ImmutableMap({
items: ImmutableMap(),
diff --git a/app/soapbox/reducers/alerts.js b/app/soapbox/reducers/alerts.js
index f0b3f7968..866c51753 100644
--- a/app/soapbox/reducers/alerts.js
+++ b/app/soapbox/reducers/alerts.js
@@ -1,9 +1,9 @@
+import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import {
ALERT_SHOW,
ALERT_DISMISS,
ALERT_CLEAR,
} from '../actions/alerts';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
const initialState = ImmutableList([]);
diff --git a/app/soapbox/reducers/auth.js b/app/soapbox/reducers/auth.js
index 8a74a90e2..bfc3857ce 100644
--- a/app/soapbox/reducers/auth.js
+++ b/app/soapbox/reducers/auth.js
@@ -1,3 +1,10 @@
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
+import { trim } from 'lodash';
+import { MASTODON_PRELOAD_IMPORT } from 'soapbox/actions/preload';
+import { validId, isURL } from 'soapbox/utils/auth';
+import { FE_SUBDIRECTORY } from 'soapbox/build_config';
+import KVStore from 'soapbox/storage/kv_store';
+import { ME_FETCH_SKIP } from '../actions/me';
import {
AUTH_APP_CREATED,
AUTH_LOGGED_IN,
@@ -7,13 +14,6 @@ import {
VERIFY_CREDENTIALS_SUCCESS,
VERIFY_CREDENTIALS_FAIL,
} from '../actions/auth';
-import { ME_FETCH_SKIP } from '../actions/me';
-import { MASTODON_PRELOAD_IMPORT } from 'soapbox/actions/preload';
-import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
-import { validId, isURL } from 'soapbox/utils/auth';
-import { trim } from 'lodash';
-import { FE_SUBDIRECTORY } from 'soapbox/build_config';
-import KVStore from 'soapbox/storage/kv_store';
const defaultState = ImmutableMap({
app: ImmutableMap(),
diff --git a/app/soapbox/reducers/backups.js b/app/soapbox/reducers/backups.js
index fdfece138..a60d8e9bf 100644
--- a/app/soapbox/reducers/backups.js
+++ b/app/soapbox/reducers/backups.js
@@ -1,8 +1,8 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import {
BACKUPS_FETCH_SUCCESS,
BACKUPS_CREATE_SUCCESS,
} from '../actions/backups';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/chat_message_lists.js b/app/soapbox/reducers/chat_message_lists.js
index 43f40270d..6284b3824 100644
--- a/app/soapbox/reducers/chat_message_lists.js
+++ b/app/soapbox/reducers/chat_message_lists.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
import {
CHATS_FETCH_SUCCESS,
CHATS_EXPAND_SUCCESS,
@@ -7,7 +8,6 @@ import {
CHAT_MESSAGE_DELETE_SUCCESS,
} from 'soapbox/actions/chats';
import { STREAMING_CHAT_UPDATE } from 'soapbox/actions/streaming';
-import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/chat_messages.js b/app/soapbox/reducers/chat_messages.js
index e887f9ed4..26d55b850 100644
--- a/app/soapbox/reducers/chat_messages.js
+++ b/app/soapbox/reducers/chat_messages.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import {
CHATS_FETCH_SUCCESS,
CHATS_EXPAND_SUCCESS,
@@ -8,7 +9,6 @@ import {
CHAT_MESSAGE_DELETE_SUCCESS,
} from 'soapbox/actions/chats';
import { STREAMING_CHAT_UPDATE } from 'soapbox/actions/streaming';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/chats.js b/app/soapbox/reducers/chats.js
index e67c21d12..056676e0a 100644
--- a/app/soapbox/reducers/chats.js
+++ b/app/soapbox/reducers/chats.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import {
CHATS_FETCH_SUCCESS,
CHATS_FETCH_REQUEST,
@@ -9,7 +10,6 @@ import {
} from 'soapbox/actions/chats';
import { STREAMING_CHAT_UPDATE } from 'soapbox/actions/streaming';
import { normalizeChat } from 'soapbox/actions/importer/normalizer';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const importChat = (state, chat) => state.setIn(['items', chat.id], fromJS(normalizeChat(chat)));
diff --git a/app/soapbox/reducers/compose.js b/app/soapbox/reducers/compose.js
index a9b4e4bed..24d7578a0 100644
--- a/app/soapbox/reducers/compose.js
+++ b/app/soapbox/reducers/compose.js
@@ -1,3 +1,5 @@
+import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable';
+import { tagHistory } from 'soapbox/settings';
import {
COMPOSE_MOUNT,
COMPOSE_UNMOUNT,
@@ -46,8 +48,6 @@ import { TIMELINE_DELETE } from '../actions/timelines';
import { REDRAFT } from '../actions/statuses';
import { ME_FETCH_SUCCESS, ME_PATCH_SUCCESS } from '../actions/me';
import { SETTING_CHANGE, FE_NAME } from '../actions/settings';
-import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable';
-import { tagHistory } from 'soapbox/settings';
import uuid from '../uuid';
import { unescapeHTML } from '../utils/html';
diff --git a/app/soapbox/reducers/contexts.js b/app/soapbox/reducers/contexts.js
index d6780c124..dd97c41f3 100644
--- a/app/soapbox/reducers/contexts.js
+++ b/app/soapbox/reducers/contexts.js
@@ -1,3 +1,5 @@
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
+import { STATUS_IMPORT, STATUSES_IMPORT } from 'soapbox/actions/importer';
import {
ACCOUNT_BLOCK_SUCCESS,
ACCOUNT_MUTE_SUCCESS,
@@ -8,8 +10,6 @@ import {
} from '../actions/statuses';
import { CONTEXT_FETCH_SUCCESS } from '../actions/statuses';
import { TIMELINE_DELETE } from '../actions/timelines';
-import { STATUS_IMPORT, STATUSES_IMPORT } from 'soapbox/actions/importer';
-import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
const initialState = ImmutableMap({
inReplyTos: ImmutableMap(),
diff --git a/app/soapbox/reducers/custom_emojis.js b/app/soapbox/reducers/custom_emojis.js
index 17bafe9eb..f1b37a6af 100644
--- a/app/soapbox/reducers/custom_emojis.js
+++ b/app/soapbox/reducers/custom_emojis.js
@@ -1,8 +1,8 @@
import { List as ImmutableList, fromJS } from 'immutable';
-import { CUSTOM_EMOJIS_FETCH_SUCCESS } from '../actions/custom_emojis';
import { addCustomToPool } from 'soapbox/features/emoji/emoji_mart_search_light';
-import { buildCustomEmojis } from '../features/emoji/emoji';
import { emojis as emojiData } from 'soapbox/features/emoji/emoji_mart_data_light';
+import { CUSTOM_EMOJIS_FETCH_SUCCESS } from '../actions/custom_emojis';
+import { buildCustomEmojis } from '../features/emoji/emoji';
const initialState = ImmutableList();
diff --git a/app/soapbox/reducers/domain_lists.js b/app/soapbox/reducers/domain_lists.js
index 6bf8cee68..3ac3b5696 100644
--- a/app/soapbox/reducers/domain_lists.js
+++ b/app/soapbox/reducers/domain_lists.js
@@ -1,9 +1,9 @@
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
import {
DOMAIN_BLOCKS_FETCH_SUCCESS,
DOMAIN_BLOCKS_EXPAND_SUCCESS,
DOMAIN_UNBLOCK_SUCCESS,
} from '../actions/domain_blocks';
-import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
const initialState = ImmutableMap({
blocks: ImmutableMap({
diff --git a/app/soapbox/reducers/filters.js b/app/soapbox/reducers/filters.js
index d0988e05d..c9af1df55 100644
--- a/app/soapbox/reducers/filters.js
+++ b/app/soapbox/reducers/filters.js
@@ -1,5 +1,5 @@
-import { FILTERS_FETCH_SUCCESS } from '../actions/filters';
import { List as ImmutableList, fromJS } from 'immutable';
+import { FILTERS_FETCH_SUCCESS } from '../actions/filters';
export default function filters(state = ImmutableList(), action) {
switch(action.type) {
diff --git a/app/soapbox/reducers/group_relationships.js b/app/soapbox/reducers/group_relationships.js
index e5f28ef30..1735f0150 100644
--- a/app/soapbox/reducers/group_relationships.js
+++ b/app/soapbox/reducers/group_relationships.js
@@ -1,5 +1,5 @@
-import { GROUP_RELATIONSHIPS_FETCH_SUCCESS, GROUP_JOIN_SUCCESS, GROUP_LEAVE_SUCCESS } from '../actions/groups';
import { Map as ImmutableMap, fromJS } from 'immutable';
+import { GROUP_RELATIONSHIPS_FETCH_SUCCESS, GROUP_JOIN_SUCCESS, GROUP_LEAVE_SUCCESS } from '../actions/groups';
const normalizeRelationship = (state, relationship) => state.set(relationship.id, fromJS(relationship));
diff --git a/app/soapbox/reducers/groups.js b/app/soapbox/reducers/groups.js
index 58b4f4237..fe7c158a2 100644
--- a/app/soapbox/reducers/groups.js
+++ b/app/soapbox/reducers/groups.js
@@ -1,10 +1,10 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import {
GROUP_FETCH_SUCCESS,
GROUP_FETCH_FAIL,
GROUPS_FETCH_SUCCESS,
} from '../actions/groups';
import { GROUP_UPDATE_SUCCESS } from '../actions/group_editor';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/instance.js b/app/soapbox/reducers/instance.js
index ff94b5123..14714f771 100644
--- a/app/soapbox/reducers/instance.js
+++ b/app/soapbox/reducers/instance.js
@@ -1,14 +1,14 @@
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
+import { PLEROMA_PRELOAD_IMPORT } from 'soapbox/actions/preload';
+import { ADMIN_CONFIG_UPDATE_REQUEST, ADMIN_CONFIG_UPDATE_SUCCESS } from 'soapbox/actions/admin';
+import { ConfigDB } from 'soapbox/utils/config_db';
+import KVStore from 'soapbox/storage/kv_store';
import {
INSTANCE_REMEMBER_SUCCESS,
INSTANCE_FETCH_SUCCESS,
INSTANCE_FETCH_FAIL,
NODEINFO_FETCH_SUCCESS,
} from '../actions/instance';
-import { PLEROMA_PRELOAD_IMPORT } from 'soapbox/actions/preload';
-import { ADMIN_CONFIG_UPDATE_REQUEST, ADMIN_CONFIG_UPDATE_SUCCESS } from 'soapbox/actions/admin';
-import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
-import { ConfigDB } from 'soapbox/utils/config_db';
-import KVStore from 'soapbox/storage/kv_store';
const nodeinfoToInstance = nodeinfo => {
// Match Pleroma's develop branch
diff --git a/app/soapbox/reducers/lists.js b/app/soapbox/reducers/lists.js
index ba3e2b3cb..6c78cac9e 100644
--- a/app/soapbox/reducers/lists.js
+++ b/app/soapbox/reducers/lists.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import {
LIST_FETCH_SUCCESS,
LIST_FETCH_FAIL,
@@ -6,7 +7,6 @@ import {
LIST_UPDATE_SUCCESS,
LIST_DELETE_SUCCESS,
} from '../actions/lists';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/meta.js b/app/soapbox/reducers/meta.js
index 315a7c030..c2d2dafb3 100644
--- a/app/soapbox/reducers/meta.js
+++ b/app/soapbox/reducers/meta.js
@@ -1,7 +1,7 @@
'use strict';
-import { INSTANCE_FETCH_FAIL } from 'soapbox/actions/instance';
import { Map as ImmutableMap } from 'immutable';
+import { INSTANCE_FETCH_FAIL } from 'soapbox/actions/instance';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/notifications.js b/app/soapbox/reducers/notifications.js
index 56e1bd7c2..35e553599 100644
--- a/app/soapbox/reducers/notifications.js
+++ b/app/soapbox/reducers/notifications.js
@@ -1,3 +1,9 @@
+import { Map as ImmutableMap, OrderedMap as ImmutableOrderedMap, fromJS } from 'immutable';
+import {
+ MARKER_FETCH_SUCCESS,
+ MARKER_SAVE_REQUEST,
+ MARKER_SAVE_SUCCESS,
+} from 'soapbox/actions/markers';
import {
NOTIFICATIONS_UPDATE,
NOTIFICATIONS_EXPAND_SUCCESS,
@@ -18,12 +24,6 @@ import {
FOLLOW_REQUEST_REJECT_SUCCESS,
} from '../actions/accounts';
import { TIMELINE_DELETE } from '../actions/timelines';
-import {
- MARKER_FETCH_SUCCESS,
- MARKER_SAVE_REQUEST,
- MARKER_SAVE_SUCCESS,
-} from 'soapbox/actions/markers';
-import { Map as ImmutableMap, OrderedMap as ImmutableOrderedMap, fromJS } from 'immutable';
const initialState = ImmutableMap({
items: ImmutableOrderedMap(),
diff --git a/app/soapbox/reducers/patron.js b/app/soapbox/reducers/patron.js
index d05b156d7..9c4796cd7 100644
--- a/app/soapbox/reducers/patron.js
+++ b/app/soapbox/reducers/patron.js
@@ -1,8 +1,8 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import {
PATRON_INSTANCE_FETCH_SUCCESS,
PATRON_ACCOUNT_FETCH_SUCCESS,
} from '../actions/patron';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/pending_statuses.js b/app/soapbox/reducers/pending_statuses.js
index 445324ae5..243631745 100644
--- a/app/soapbox/reducers/pending_statuses.js
+++ b/app/soapbox/reducers/pending_statuses.js
@@ -1,8 +1,8 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import {
STATUS_CREATE_REQUEST,
STATUS_CREATE_SUCCESS,
} from 'soapbox/actions/statuses';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const importStatus = (state, params, idempotencyKey) => {
return state.set(idempotencyKey, params);
diff --git a/app/soapbox/reducers/polls.js b/app/soapbox/reducers/polls.js
index 44b7b5308..b8d043fe0 100644
--- a/app/soapbox/reducers/polls.js
+++ b/app/soapbox/reducers/polls.js
@@ -1,5 +1,5 @@
-import { POLLS_IMPORT } from 'soapbox/actions/importer';
import { Map as ImmutableMap, fromJS } from 'immutable';
+import { POLLS_IMPORT } from 'soapbox/actions/importer';
const importPolls = (state, polls) => state.withMutations(map => polls.forEach(poll => map.set(poll.id, fromJS(poll))));
diff --git a/app/soapbox/reducers/profile_hover_card.js b/app/soapbox/reducers/profile_hover_card.js
index 5776a3e87..5cf36a29d 100644
--- a/app/soapbox/reducers/profile_hover_card.js
+++ b/app/soapbox/reducers/profile_hover_card.js
@@ -1,9 +1,9 @@
+import { Map as ImmutableMap } from 'immutable';
import {
PROFILE_HOVER_CARD_OPEN,
PROFILE_HOVER_CARD_CLOSE,
PROFILE_HOVER_CARD_UPDATE,
} from 'soapbox/actions/profile_hover_card';
-import { Map as ImmutableMap } from 'immutable';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/push_notifications.js b/app/soapbox/reducers/push_notifications.js
index a1cc31699..393032d76 100644
--- a/app/soapbox/reducers/push_notifications.js
+++ b/app/soapbox/reducers/push_notifications.js
@@ -1,5 +1,5 @@
-import { SET_BROWSER_SUPPORT, SET_SUBSCRIPTION, CLEAR_SUBSCRIPTION, SET_ALERTS } from '../actions/push_notifications';
import { Map as ImmutableMap } from 'immutable';
+import { SET_BROWSER_SUPPORT, SET_SUBSCRIPTION, CLEAR_SUBSCRIPTION, SET_ALERTS } from '../actions/push_notifications';
const initialState = ImmutableMap({
subscription: null,
diff --git a/app/soapbox/reducers/relationships.js b/app/soapbox/reducers/relationships.js
index ec6ac6c14..1f0068dc8 100644
--- a/app/soapbox/reducers/relationships.js
+++ b/app/soapbox/reducers/relationships.js
@@ -1,3 +1,6 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
+import { get } from 'lodash';
+import { STREAMING_FOLLOW_RELATIONSHIPS_UPDATE } from 'soapbox/actions/streaming';
import {
ACCOUNT_FOLLOW_SUCCESS,
ACCOUNT_FOLLOW_REQUEST,
@@ -23,9 +26,6 @@ import {
DOMAIN_BLOCK_SUCCESS,
DOMAIN_UNBLOCK_SUCCESS,
} from '../actions/domain_blocks';
-import { STREAMING_FOLLOW_RELATIONSHIPS_UPDATE } from 'soapbox/actions/streaming';
-import { Map as ImmutableMap, fromJS } from 'immutable';
-import { get } from 'lodash';
const normalizeRelationship = (state, relationship) => state.set(relationship.id, fromJS(relationship));
diff --git a/app/soapbox/reducers/reports.js b/app/soapbox/reducers/reports.js
index 24d4cdc26..03e29a000 100644
--- a/app/soapbox/reducers/reports.js
+++ b/app/soapbox/reducers/reports.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, Set as ImmutableSet } from 'immutable';
import {
REPORT_INIT,
REPORT_SUBMIT_REQUEST,
@@ -9,7 +10,6 @@ import {
REPORT_FORWARD_CHANGE,
REPORT_BLOCK_CHANGE,
} from '../actions/reports';
-import { Map as ImmutableMap, Set as ImmutableSet } from 'immutable';
const initialState = ImmutableMap({
new: ImmutableMap({
diff --git a/app/soapbox/reducers/scheduled_statuses.js b/app/soapbox/reducers/scheduled_statuses.js
index 20e591d1f..af74daa53 100644
--- a/app/soapbox/reducers/scheduled_statuses.js
+++ b/app/soapbox/reducers/scheduled_statuses.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
import { STATUS_CREATE_SUCCESS } from 'soapbox/actions/statuses';
import {
SCHEDULED_STATUSES_FETCH_SUCCESS,
@@ -5,7 +6,6 @@ import {
SCHEDULED_STATUS_CANCEL_SUCCESS,
} from 'soapbox/actions/scheduled_statuses';
import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer';
-import { Map as ImmutableMap, fromJS } from 'immutable';
const importStatus = (state, status) => {
if (!status.scheduled_at) return state;
diff --git a/app/soapbox/reducers/search.js b/app/soapbox/reducers/search.js
index 80a4bc9c8..2ba1f2158 100644
--- a/app/soapbox/reducers/search.js
+++ b/app/soapbox/reducers/search.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable';
import {
SEARCH_CHANGE,
SEARCH_CLEAR,
@@ -13,7 +14,6 @@ import {
COMPOSE_REPLY,
COMPOSE_DIRECT,
} from '../actions/compose';
-import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable';
const initialState = ImmutableMap({
value: '',
diff --git a/app/soapbox/reducers/security.js b/app/soapbox/reducers/security.js
index e14612bc3..d87297d54 100644
--- a/app/soapbox/reducers/security.js
+++ b/app/soapbox/reducers/security.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
import {
FETCH_TOKENS_SUCCESS,
REVOKE_TOKEN_SUCCESS,
@@ -9,7 +10,6 @@ import {
MFA_DISABLE_SUCCESS,
MFA_DISABLE_FAIL,
} from '../actions/mfa';
-import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
const initialState = ImmutableMap({
tokens: ImmutableList(),
diff --git a/app/soapbox/reducers/settings.js b/app/soapbox/reducers/settings.js
index b7d4d44b7..a42d76646 100644
--- a/app/soapbox/reducers/settings.js
+++ b/app/soapbox/reducers/settings.js
@@ -1,3 +1,5 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
+import { ME_FETCH_SUCCESS } from 'soapbox/actions/me';
import {
SETTING_CHANGE,
SETTING_SAVE,
@@ -7,8 +9,6 @@ import {
import { NOTIFICATIONS_FILTER_SET } from '../actions/notifications';
import { SEARCH_FILTER_SET } from '../actions/search';
import { EMOJI_USE } from '../actions/emojis';
-import { ME_FETCH_SUCCESS } from 'soapbox/actions/me';
-import { Map as ImmutableMap, fromJS } from 'immutable';
// Default settings are in action/settings.js
//
diff --git a/app/soapbox/reducers/soapbox.js b/app/soapbox/reducers/soapbox.js
index c1ab95d3e..dad6255b0 100644
--- a/app/soapbox/reducers/soapbox.js
+++ b/app/soapbox/reducers/soapbox.js
@@ -1,12 +1,12 @@
-import { ADMIN_CONFIG_UPDATE_SUCCESS } from '../actions/admin';
+import { Map as ImmutableMap, fromJS } from 'immutable';
+import { PLEROMA_PRELOAD_IMPORT } from 'soapbox/actions/preload';
+import { ConfigDB } from 'soapbox/utils/config_db';
+import KVStore from 'soapbox/storage/kv_store';
import {
SOAPBOX_CONFIG_REQUEST_SUCCESS,
SOAPBOX_CONFIG_REQUEST_FAIL,
} from '../actions/soapbox';
-import { PLEROMA_PRELOAD_IMPORT } from 'soapbox/actions/preload';
-import { Map as ImmutableMap, fromJS } from 'immutable';
-import { ConfigDB } from 'soapbox/utils/config_db';
-import KVStore from 'soapbox/storage/kv_store';
+import { ADMIN_CONFIG_UPDATE_SUCCESS } from '../actions/admin';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/status_lists.js b/app/soapbox/reducers/status_lists.js
index 1953e636c..d0b7dbf71 100644
--- a/app/soapbox/reducers/status_lists.js
+++ b/app/soapbox/reducers/status_lists.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
import {
FAVOURITED_STATUSES_FETCH_REQUEST,
FAVOURITED_STATUSES_FETCH_SUCCESS,
@@ -23,7 +24,6 @@ import {
import {
PINNED_STATUSES_FETCH_SUCCESS,
} from '../actions/pin_statuses';
-import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
import {
FAVOURITE_SUCCESS,
UNFAVOURITE_SUCCESS,
diff --git a/app/soapbox/reducers/statuses.js b/app/soapbox/reducers/statuses.js
index ebf405806..dfe4dfc24 100644
--- a/app/soapbox/reducers/statuses.js
+++ b/app/soapbox/reducers/statuses.js
@@ -1,3 +1,5 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
+import { simulateEmojiReact, simulateUnEmojiReact } from 'soapbox/utils/emoji_reacts';
import {
REBLOG_REQUEST,
REBLOG_FAIL,
@@ -21,8 +23,6 @@ import {
} from '../actions/emoji_reacts';
import { TIMELINE_DELETE } from '../actions/timelines';
import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer';
-import { Map as ImmutableMap, fromJS } from 'immutable';
-import { simulateEmojiReact, simulateUnEmojiReact } from 'soapbox/utils/emoji_reacts';
// Fix order of mentions
const fixMentions = status => {
diff --git a/app/soapbox/reducers/suggestions.js b/app/soapbox/reducers/suggestions.js
index 509d84cf9..8ef2ff8c4 100644
--- a/app/soapbox/reducers/suggestions.js
+++ b/app/soapbox/reducers/suggestions.js
@@ -1,3 +1,6 @@
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
+import { ACCOUNT_BLOCK_SUCCESS, ACCOUNT_MUTE_SUCCESS } from 'soapbox/actions/accounts';
+import { DOMAIN_BLOCK_SUCCESS } from 'soapbox/actions/domain_blocks';
import {
SUGGESTIONS_FETCH_REQUEST,
SUGGESTIONS_FETCH_SUCCESS,
@@ -7,9 +10,6 @@ import {
SUGGESTIONS_V2_FETCH_SUCCESS,
SUGGESTIONS_V2_FETCH_FAIL,
} from '../actions/suggestions';
-import { ACCOUNT_BLOCK_SUCCESS, ACCOUNT_MUTE_SUCCESS } from 'soapbox/actions/accounts';
-import { DOMAIN_BLOCK_SUCCESS } from 'soapbox/actions/domain_blocks';
-import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
const initialState = ImmutableMap({
items: ImmutableList(),
diff --git a/app/soapbox/reducers/timelines.js b/app/soapbox/reducers/timelines.js
index b9b633b50..f43b1c60a 100644
--- a/app/soapbox/reducers/timelines.js
+++ b/app/soapbox/reducers/timelines.js
@@ -1,3 +1,9 @@
+import {
+ Map as ImmutableMap,
+ List as ImmutableList,
+ OrderedSet as ImmutableOrderedSet,
+ fromJS,
+} from 'immutable';
import {
TIMELINE_UPDATE,
TIMELINE_DELETE,
@@ -21,12 +27,6 @@ import {
STATUS_CREATE_REQUEST,
STATUS_CREATE_SUCCESS,
} from '../actions/statuses';
-import {
- Map as ImmutableMap,
- List as ImmutableList,
- OrderedSet as ImmutableOrderedSet,
- fromJS,
-} from 'immutable';
import { GROUP_REMOVE_STATUS_SUCCESS } from '../actions/groups';
const TRUNCATE_LIMIT = 40;
diff --git a/app/soapbox/reducers/trends.js b/app/soapbox/reducers/trends.js
index be2e3e912..02c0e6beb 100644
--- a/app/soapbox/reducers/trends.js
+++ b/app/soapbox/reducers/trends.js
@@ -1,9 +1,9 @@
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
import {
TRENDS_FETCH_REQUEST,
TRENDS_FETCH_SUCCESS,
TRENDS_FETCH_FAIL,
} from '../actions/trends';
-import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
const initialState = ImmutableMap({
items: ImmutableList(),
diff --git a/app/soapbox/reducers/user_lists.js b/app/soapbox/reducers/user_lists.js
index aa63c917c..d291fb9b2 100644
--- a/app/soapbox/reducers/user_lists.js
+++ b/app/soapbox/reducers/user_lists.js
@@ -1,3 +1,4 @@
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
import {
NOTIFICATIONS_UPDATE,
} from '../actions/notifications';
@@ -32,7 +33,6 @@ import {
DIRECTORY_EXPAND_SUCCESS,
DIRECTORY_EXPAND_FAIL,
} from '../actions/directory';
-import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
import {
GROUP_MEMBERS_FETCH_SUCCESS,
GROUP_MEMBERS_EXPAND_SUCCESS,
diff --git a/app/soapbox/service_worker/web_push_notifications.js b/app/soapbox/service_worker/web_push_notifications.js
index 2b322b325..c7e41e807 100644
--- a/app/soapbox/service_worker/web_push_notifications.js
+++ b/app/soapbox/service_worker/web_push_notifications.js
@@ -1,7 +1,7 @@
import IntlMessageFormat from 'intl-messageformat';
import 'intl-pluralrules';
-import locales from './web_push_locales';
import { unescape } from 'lodash';
+import locales from './web_push_locales';
const MAX_NOTIFICATIONS = 5;
const GROUP_TAG = 'tag';
diff --git a/app/soapbox/utils/__tests__/accounts-test.js b/app/soapbox/utils/__tests__/accounts-test.js
index d7477c133..323725075 100644
--- a/app/soapbox/utils/__tests__/accounts-test.js
+++ b/app/soapbox/utils/__tests__/accounts-test.js
@@ -1,3 +1,4 @@
+import { fromJS } from 'immutable';
import {
getDomain,
acctFull,
@@ -5,7 +6,6 @@ import {
isAdmin,
isModerator,
} from '../accounts';
-import { fromJS } from 'immutable';
describe('getDomain', () => {
const account = fromJS({
diff --git a/app/soapbox/utils/__tests__/config_db-test.js b/app/soapbox/utils/__tests__/config_db-test.js
index 2a185fbf4..a98dd3066 100644
--- a/app/soapbox/utils/__tests__/config_db-test.js
+++ b/app/soapbox/utils/__tests__/config_db-test.js
@@ -1,6 +1,6 @@
-import { ConfigDB } from '../config_db';
-import config_db from 'soapbox/__fixtures__/config_db.json';
import { fromJS } from 'immutable';
+import config_db from 'soapbox/__fixtures__/config_db.json';
+import { ConfigDB } from '../config_db';
test('find', () => {
const configs = fromJS(config_db).get('configs');
diff --git a/app/soapbox/utils/__tests__/emoji_reacts-test.js b/app/soapbox/utils/__tests__/emoji_reacts-test.js
index e21dda5e1..7995f762b 100644
--- a/app/soapbox/utils/__tests__/emoji_reacts-test.js
+++ b/app/soapbox/utils/__tests__/emoji_reacts-test.js
@@ -1,3 +1,4 @@
+import { fromJS } from 'immutable';
import {
sortEmoji,
mergeEmojiFavourites,
@@ -8,7 +9,6 @@ import {
simulateEmojiReact,
simulateUnEmojiReact,
} from '../emoji_reacts';
-import { fromJS } from 'immutable';
const ALLOWED_EMOJI = [
'👍',
diff --git a/app/soapbox/utils/__tests__/features-test.js b/app/soapbox/utils/__tests__/features-test.js
index d9dfdf476..6c9cbfddb 100644
--- a/app/soapbox/utils/__tests__/features-test.js
+++ b/app/soapbox/utils/__tests__/features-test.js
@@ -1,8 +1,8 @@
+import { Map as ImmutableMap } from 'immutable';
import {
parseVersion,
getFeatures,
} from '../features';
-import { Map as ImmutableMap } from 'immutable';
describe('parseVersion', () => {
it('with Pleroma version string', () => {
diff --git a/app/soapbox/utils/__tests__/timelines-test.js b/app/soapbox/utils/__tests__/timelines-test.js
index 7b9124559..c19bd8126 100644
--- a/app/soapbox/utils/__tests__/timelines-test.js
+++ b/app/soapbox/utils/__tests__/timelines-test.js
@@ -1,5 +1,5 @@
-import { shouldFilter } from '../timelines';
import { fromJS } from 'immutable';
+import { shouldFilter } from '../timelines';
describe('shouldFilter', () => {
it('returns false under normal circumstances', () => {
diff --git a/app/soapbox/utils/code.js b/app/soapbox/utils/code.js
index 01786a2ff..9b6d46bbc 100644
--- a/app/soapbox/utils/code.js
+++ b/app/soapbox/utils/code.js
@@ -1,6 +1,6 @@
// @preval
-const pkg = require('../../../package.json');
const { execSync } = require('child_process');
+const pkg = require('../../../package.json');
const shortRepoName = url => new URL(url).pathname.substring(1);
const trimHash = hash => hash.substring(0, 7);
diff --git a/package.json b/package.json
index cfc61ef3b..0df38b2da 100644
--- a/package.json
+++ b/package.json
@@ -171,7 +171,7 @@
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.6",
"eslint": "^7.0.0",
- "eslint-plugin-import": "^2.24.2",
+ "eslint-plugin-import": "^2.25.4",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-promise": "^5.1.0",
"eslint-plugin-react": "^7.25.1",
diff --git a/webpack/shared.js b/webpack/shared.js
index c7343f005..3e13fcbf2 100644
--- a/webpack/shared.js
+++ b/webpack/shared.js
@@ -1,7 +1,7 @@
// Note: You must restart bin/webpack-dev-server for changes to take effect
-const webpack = require('webpack');
const { join, resolve } = require('path');
+const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const AssetsManifestPlugin = require('webpack-assets-manifest');
const HtmlWebpackPlugin = require('html-webpack-plugin');
diff --git a/yarn.lock b/yarn.lock
index c9338896c..b1dedfe15 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2105,6 +2105,17 @@ array-includes@^3.0.3, array-includes@^3.1.1, array-includes@^3.1.2, array-inclu
get-intrinsic "^1.1.1"
is-string "^1.0.5"
+array-includes@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
+ integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+ get-intrinsic "^1.1.1"
+ is-string "^1.0.7"
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@@ -2129,7 +2140,7 @@ array.prototype.find@^2.1.1:
define-properties "^1.1.3"
es-abstract "^1.17.4"
-array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.4:
+array.prototype.flat@^1.2.3:
version "1.2.4"
resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123"
integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==
@@ -2138,6 +2149,15 @@ array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.4:
define-properties "^1.1.3"
es-abstract "^1.18.0-next.1"
+array.prototype.flat@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13"
+ integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.0"
+
array.prototype.flatmap@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9"
@@ -3767,6 +3787,32 @@ es-abstract@^1.17.2, es-abstract@^1.17.4, es-abstract@^1.18.0, es-abstract@^1.18
string.prototype.trimstart "^1.0.4"
unbox-primitive "^1.0.1"
+es-abstract@^1.19.0, es-abstract@^1.19.1:
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
+ integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
+ dependencies:
+ call-bind "^1.0.2"
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ get-intrinsic "^1.1.1"
+ get-symbol-description "^1.0.0"
+ has "^1.0.3"
+ has-symbols "^1.0.2"
+ internal-slot "^1.0.3"
+ is-callable "^1.2.4"
+ is-negative-zero "^2.0.1"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.1"
+ is-string "^1.0.7"
+ is-weakref "^1.0.1"
+ object-inspect "^1.11.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.2"
+ string.prototype.trimend "^1.0.4"
+ string.prototype.trimstart "^1.0.4"
+ unbox-primitive "^1.0.1"
+
es-array-method-boxes-properly@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
@@ -3857,34 +3903,32 @@ eslint-import-resolver-node@^0.3.6:
debug "^3.2.7"
resolve "^1.20.0"
-eslint-module-utils@^2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534"
- integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==
+eslint-module-utils@^2.7.2:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129"
+ integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==
dependencies:
debug "^3.2.7"
- pkg-dir "^2.0.0"
+ find-up "^2.1.0"
-eslint-plugin-import@^2.24.2:
- version "2.24.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da"
- integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==
+eslint-plugin-import@^2.25.4:
+ version "2.25.4"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1"
+ integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==
dependencies:
- array-includes "^3.1.3"
- array.prototype.flat "^1.2.4"
+ array-includes "^3.1.4"
+ array.prototype.flat "^1.2.5"
debug "^2.6.9"
doctrine "^2.1.0"
eslint-import-resolver-node "^0.3.6"
- eslint-module-utils "^2.6.2"
- find-up "^2.0.0"
+ eslint-module-utils "^2.7.2"
has "^1.0.3"
- is-core-module "^2.6.0"
+ is-core-module "^2.8.0"
+ is-glob "^4.0.3"
minimatch "^3.0.4"
- object.values "^1.1.4"
- pkg-up "^2.0.0"
- read-pkg-up "^3.0.0"
+ object.values "^1.1.5"
resolve "^1.20.0"
- tsconfig-paths "^3.11.0"
+ tsconfig-paths "^3.12.0"
eslint-plugin-jsx-a11y@^6.4.1:
version "6.4.1"
@@ -4259,7 +4303,7 @@ find-cache-dir@^3.3.1:
make-dir "^3.0.2"
pkg-dir "^4.1.0"
-find-up@^2.0.0, find-up@^2.1.0:
+find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
@@ -5118,13 +5162,20 @@ is-color-stop@^1.0.0:
rgb-regex "^1.0.1"
rgba-regex "^1.0.0"
-is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.6.0:
+is-core-module@^2.2.0, is-core-module@^2.5.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19"
integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==
dependencies:
has "^1.0.3"
+is-core-module@^2.8.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
+ integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
+ dependencies:
+ has "^1.0.3"
+
is-date-object@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
@@ -5176,6 +5227,13 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
+is-glob@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
is-hexadecimal@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
@@ -5283,6 +5341,11 @@ is-resolvable@^1.0.0:
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
+is-shared-array-buffer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
+ integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
+
is-stream@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
@@ -5328,6 +5391,13 @@ is-unicode-supported@^0.1.0:
resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+is-weakref@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
+ integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
+ dependencies:
+ call-bind "^1.0.2"
+
is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
@@ -6111,16 +6181,6 @@ listr2@^3.8.2:
through "^2.3.8"
wrap-ansi "^7.0.0"
-load-json-file@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
- integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
- strip-bom "^3.0.0"
-
loader-runner@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
@@ -6676,7 +6736,7 @@ node-releases@^1.1.75:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe"
integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==
-normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
+normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
@@ -6822,6 +6882,15 @@ object.values@^1.1.0, object.values@^1.1.1, object.values@^1.1.2, object.values@
define-properties "^1.1.3"
es-abstract "^1.18.2"
+object.values@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
+ integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+
obuf@^1.0.0, obuf@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
@@ -7102,13 +7171,6 @@ path-to-regexp@^1.7.0:
dependencies:
isarray "0.0.1"
-path-type@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
- integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
- dependencies:
- pify "^3.0.0"
-
path-type@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
@@ -7129,11 +7191,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
-pify@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
- integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
-
pirates@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
@@ -7141,13 +7198,6 @@ pirates@^4.0.1:
dependencies:
node-modules-regexp "^1.0.0"
-pkg-dir@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
- integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
- dependencies:
- find-up "^2.1.0"
-
pkg-dir@^4.1.0, pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
@@ -7155,13 +7205,6 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0:
dependencies:
find-up "^4.0.0"
-pkg-up@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
- integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
- dependencies:
- find-up "^2.1.0"
-
please-upgrade-node@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
@@ -8097,14 +8140,6 @@ reactcss@^1.2.0:
dependencies:
lodash "^4.0.1"
-read-pkg-up@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
- integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=
- dependencies:
- find-up "^2.0.0"
- read-pkg "^3.0.0"
-
read-pkg-up@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
@@ -8114,15 +8149,6 @@ read-pkg-up@^7.0.1:
read-pkg "^5.2.0"
type-fest "^0.8.1"
-read-pkg@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
- integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
- dependencies:
- load-json-file "^4.0.0"
- normalize-package-data "^2.3.2"
- path-type "^3.0.0"
-
read-pkg@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
@@ -9370,10 +9396,10 @@ ts-jest@^27.0.5:
semver "7.x"
yargs-parser "20.x"
-tsconfig-paths@^3.11.0:
- version "3.11.0"
- resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36"
- integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==
+tsconfig-paths@^3.12.0:
+ version "3.12.0"
+ resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b"
+ integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==
dependencies:
"@types/json5" "^0.0.29"
json5 "^1.0.1"