diff --git a/.eslintrc.js b/.eslintrc.js
index e779b60d4..101e91527 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -237,6 +237,7 @@ module.exports = {
'type',
],
'newlines-between': 'ignore',
+ alphabetize: { order: 'asc' },
},
],
diff --git a/app/soapbox/actions/__tests__/about-test.js b/app/soapbox/actions/__tests__/about-test.js
index d0def7236..1c04c9b9e 100644
--- a/app/soapbox/actions/__tests__/about-test.js
+++ b/app/soapbox/actions/__tests__/about-test.js
@@ -1,5 +1,5 @@
-import { Map as ImmutableMap } from 'immutable';
import MockAdapter from 'axios-mock-adapter';
+import { Map as ImmutableMap } from 'immutable';
import { staticClient } from 'soapbox/api';
import { mockStore } from 'soapbox/test_helpers';
import {
diff --git a/app/soapbox/actions/__tests__/preload-test.js b/app/soapbox/actions/__tests__/preload-test.js
index 62f7ebb0e..7512f4c5e 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 { VERIFY_CREDENTIALS_REQUEST } from '../auth';
+import { ACCOUNTS_IMPORT } from '../importer';
import {
MASTODON_PRELOAD_IMPORT,
preloadMastodon,
} from '../preload';
-import { VERIFY_CREDENTIALS_REQUEST } from '../auth';
-import { ACCOUNTS_IMPORT } from '../importer';
describe('preloadMastodon()', () => {
it('creates the expected actions', () => {
diff --git a/app/soapbox/actions/admin.js b/app/soapbox/actions/admin.js
index b6a9e84c8..2b29e7479 100644
--- a/app/soapbox/actions/admin.js
+++ b/app/soapbox/actions/admin.js
@@ -1,5 +1,5 @@
-import { importFetchedAccount, importFetchedStatuses } from 'soapbox/actions/importer';
import { fetchRelationships } from 'soapbox/actions/accounts';
+import { importFetchedAccount, importFetchedStatuses } from 'soapbox/actions/importer';
import api from '../api';
export const ADMIN_CONFIG_FETCH_REQUEST = 'ADMIN_CONFIG_FETCH_REQUEST';
diff --git a/app/soapbox/actions/aliases.js b/app/soapbox/actions/aliases.js
index facc91fe9..b525f22c7 100644
--- a/app/soapbox/actions/aliases.js
+++ b/app/soapbox/actions/aliases.js
@@ -1,10 +1,10 @@
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 { importFetchedAccount, importFetchedAccounts } from './importer';
import { ME_PATCH_SUCCESS } from './me';
+import snackbar from './snackbar';
export const ALIASES_SUGGESTIONS_CHANGE = 'ALIASES_SUGGESTIONS_CHANGE';
export const ALIASES_SUGGESTIONS_READY = 'ALIASES_SUGGESTIONS_READY';
diff --git a/app/soapbox/actions/auth.js b/app/soapbox/actions/auth.js
index 5ea926353..8b8f02b64 100644
--- a/app/soapbox/actions/auth.js
+++ b/app/soapbox/actions/auth.js
@@ -8,16 +8,16 @@
*/
import { defineMessages } from 'react-intl';
-import snackbar from 'soapbox/actions/snackbar';
import { createAccount } from 'soapbox/actions/accounts';
-import { fetchMeSuccess, fetchMeFail } from 'soapbox/actions/me';
-import { getLoggedInAccount, parseBaseURL } from 'soapbox/utils/auth';
import { createApp } from 'soapbox/actions/apps';
+import { fetchMeSuccess, fetchMeFail } from 'soapbox/actions/me';
import { obtainOAuthToken, revokeOAuthToken } from 'soapbox/actions/oauth';
+import snackbar from 'soapbox/actions/snackbar';
+import KVStore from 'soapbox/storage/kv_store';
+import { getLoggedInAccount, parseBaseURL } from 'soapbox/utils/auth';
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';
diff --git a/app/soapbox/actions/chats.js b/app/soapbox/actions/chats.js
index f5ae40c27..eb9222750 100644
--- a/app/soapbox/actions/chats.js
+++ b/app/soapbox/actions/chats.js
@@ -1,5 +1,5 @@
-import { v4 as uuidv4 } from 'uuid';
import { Map as ImmutableMap } from 'immutable';
+import { v4 as uuidv4 } from 'uuid';
import { getSettings, changeSetting } from 'soapbox/actions/settings';
import { getFeatures } from 'soapbox/utils/features';
import api, { getLinks } from '../api';
diff --git a/app/soapbox/actions/compose.js b/app/soapbox/actions/compose.js
index 5f225895a..82415eb0b 100644
--- a/app/soapbox/actions/compose.js
+++ b/app/soapbox/actions/compose.js
@@ -1,19 +1,19 @@
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 { isLoggedIn } from 'soapbox/utils/auth';
+import { getFeatures } from 'soapbox/utils/features';
import api from '../api';
import { search as emojiSearch } from '../features/emoji/emoji_mart_search_light';
import { tagHistory } from '../settings';
import resizeImage from '../utils/resize_image';
+import { showAlert, showAlertForError } from './alerts';
import { useEmoji } from './emojis';
import { importFetchedAccounts } from './importer';
-import { showAlert, showAlertForError } from './alerts';
+import { uploadMedia, fetchMedia, updateMedia } from './media';
import { openModal, closeModal } from './modal';
import { getSettings } from './settings';
-import { uploadMedia, fetchMedia, updateMedia } from './media';
import { createStatus } from './statuses';
let cancelFetchComposeSuggestionsAccounts;
diff --git a/app/soapbox/actions/directory.js b/app/soapbox/actions/directory.js
index 35e699703..bf93a5f22 100644
--- a/app/soapbox/actions/directory.js
+++ b/app/soapbox/actions/directory.js
@@ -1,6 +1,6 @@
import api from '../api';
-import { importFetchedAccounts } from './importer';
import { fetchRelationships } from './accounts';
+import { importFetchedAccounts } from './importer';
export const DIRECTORY_FETCH_REQUEST = 'DIRECTORY_FETCH_REQUEST';
export const DIRECTORY_FETCH_SUCCESS = 'DIRECTORY_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/external_auth.js b/app/soapbox/actions/external_auth.js
index 2510a24f0..f95c08be6 100644
--- a/app/soapbox/actions/external_auth.js
+++ b/app/soapbox/actions/external_auth.js
@@ -8,11 +8,11 @@
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 { obtainOAuthToken } from 'soapbox/actions/oauth';
import { parseBaseURL } from 'soapbox/utils/auth';
-import { getFeatures } from 'soapbox/utils/features';
import sourceCode from 'soapbox/utils/code';
+import { getFeatures } from 'soapbox/utils/features';
import { baseClient } from '../api';
const fetchExternalInstance = baseURL => {
diff --git a/app/soapbox/actions/groups.js b/app/soapbox/actions/groups.js
index 350b67e3e..7bff19076 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 { importFetchedAccounts } from './importer';
export const GROUP_FETCH_REQUEST = 'GROUP_FETCH_REQUEST';
export const GROUP_FETCH_SUCCESS = 'GROUP_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/instance.js b/app/soapbox/actions/instance.js
index cc7870976..e6cf6897d 100644
--- a/app/soapbox/actions/instance.js
+++ b/app/soapbox/actions/instance.js
@@ -1,7 +1,7 @@
import { get } from 'lodash';
-import { parseVersion } from 'soapbox/utils/features';
-import { getAuthUserUrl } from 'soapbox/utils/auth';
import KVStore from 'soapbox/storage/kv_store';
+import { getAuthUserUrl } from 'soapbox/utils/auth';
+import { parseVersion } from 'soapbox/utils/features';
import api from '../api';
export const INSTANCE_FETCH_REQUEST = 'INSTANCE_FETCH_REQUEST';
diff --git a/app/soapbox/actions/lists.js b/app/soapbox/actions/lists.js
index 95330c557..b01888884 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 { importFetchedAccounts } from './importer';
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 35c4fcb8c..0b92ae3be 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 { importFetchedAccount } from './importer';
export const ME_FETCH_REQUEST = 'ME_FETCH_REQUEST';
export const ME_FETCH_SUCCESS = 'ME_FETCH_SUCCESS';
diff --git a/app/soapbox/actions/moderation.js b/app/soapbox/actions/moderation.js
index cda6f3b23..d27b5665c 100644
--- a/app/soapbox/actions/moderation.js
+++ b/app/soapbox/actions/moderation.js
@@ -1,8 +1,8 @@
import React from 'react';
import { defineMessages } from 'react-intl';
-import { openModal } from 'soapbox/actions/modal';
-import { deactivateUsers, deleteUsers, deleteStatus, toggleStatusSensitivity } from 'soapbox/actions/admin';
import { fetchAccountByUsername } from 'soapbox/actions/accounts';
+import { deactivateUsers, deleteUsers, deleteStatus, toggleStatusSensitivity } from 'soapbox/actions/admin';
+import { openModal } from 'soapbox/actions/modal';
import snackbar from 'soapbox/actions/snackbar';
import AccountContainer from 'soapbox/containers/account_container';
import { isLocal } from 'soapbox/utils/accounts';
diff --git a/app/soapbox/actions/notifications.js b/app/soapbox/actions/notifications.js
index 396a02a40..85e3c96ce 100644
--- a/app/soapbox/actions/notifications.js
+++ b/app/soapbox/actions/notifications.js
@@ -1,26 +1,26 @@
-import IntlMessageFormat from 'intl-messageformat';
-import 'intl-pluralrules';
-import { defineMessages } from 'react-intl';
import {
List as ImmutableList,
Map as ImmutableMap,
OrderedMap as ImmutableOrderedMap,
} from 'immutable';
+import IntlMessageFormat from 'intl-messageformat';
+import 'intl-pluralrules';
+import { defineMessages } from 'react-intl';
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 { fetchRelationships } from './accounts';
import {
importFetchedAccount,
importFetchedAccounts,
importFetchedStatus,
importFetchedStatuses,
} from './importer';
-import { fetchRelationships } from './accounts';
+import { saveMarker } from './markers';
+import { getSettings, saveSettings } from './settings';
export const NOTIFICATIONS_UPDATE = 'NOTIFICATIONS_UPDATE';
export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP';
diff --git a/app/soapbox/actions/preload.js b/app/soapbox/actions/preload.js
index c8f2fe7d1..9a3c8e9c6 100644
--- a/app/soapbox/actions/preload.js
+++ b/app/soapbox/actions/preload.js
@@ -1,6 +1,6 @@
import { mapValues } from 'lodash';
-import { importFetchedAccounts } from './importer';
import { verifyCredentials } from './auth';
+import { importFetchedAccounts } from './importer';
export const PLEROMA_PRELOAD_IMPORT = 'PLEROMA_PRELOAD_IMPORT';
export const MASTODON_PRELOAD_IMPORT = 'MASTODON_PRELOAD_IMPORT';
diff --git a/app/soapbox/actions/push_notifications/index.js b/app/soapbox/actions/push_notifications/index.js
index 2ffec500a..32b0ffcaf 100644
--- a/app/soapbox/actions/push_notifications/index.js
+++ b/app/soapbox/actions/push_notifications/index.js
@@ -1,3 +1,4 @@
+import { register, saveSettings } from './registerer';
import {
SET_BROWSER_SUPPORT,
SET_SUBSCRIPTION,
@@ -5,7 +6,6 @@ import {
SET_ALERTS,
setAlerts,
} from './setter';
-import { register, saveSettings } from './registerer';
export {
SET_BROWSER_SUPPORT,
diff --git a/app/soapbox/actions/push_notifications/registerer.js b/app/soapbox/actions/push_notifications/registerer.js
index ad6cf1ffe..af798e416 100644
--- a/app/soapbox/actions/push_notifications/registerer.js
+++ b/app/soapbox/actions/push_notifications/registerer.js
@@ -1,7 +1,7 @@
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 { decode as decodeBase64 } from '../../utils/base64';
import { setBrowserSupport, setSubscription, clearSubscription } from './setter';
// Taken from https://www.npmjs.com/package/web-push
diff --git a/app/soapbox/actions/security.js b/app/soapbox/actions/security.js
index cd9642447..cb6833543 100644
--- a/app/soapbox/actions/security.js
+++ b/app/soapbox/actions/security.js
@@ -4,8 +4,8 @@
* @see module:soapbox/actions/auth
*/
-import { getLoggedInAccount } from 'soapbox/utils/auth';
import snackbar from 'soapbox/actions/snackbar';
+import { getLoggedInAccount } from 'soapbox/utils/auth';
import api from '../api';
import { AUTH_LOGGED_OUT, messages } from './auth';
diff --git a/app/soapbox/actions/settings.js b/app/soapbox/actions/settings.js
index f956d687f..3651d48e6 100644
--- a/app/soapbox/actions/settings.js
+++ b/app/soapbox/actions/settings.js
@@ -1,5 +1,5 @@
-import { debounce } from 'lodash';
import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrderedSet } from 'immutable';
+import { debounce } from 'lodash';
import { createSelector } from 'reselect';
import { patchMe } from 'soapbox/actions/me';
import { isLoggedIn } from 'soapbox/utils/auth';
diff --git a/app/soapbox/actions/soapbox.js b/app/soapbox/actions/soapbox.js
index 738cd6066..225e8c280 100644
--- a/app/soapbox/actions/soapbox.js
+++ b/app/soapbox/actions/soapbox.js
@@ -1,8 +1,8 @@
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import { createSelector } from 'reselect';
-import { getFeatures } from 'soapbox/utils/features';
import { getHost } from 'soapbox/actions/instance';
import KVStore from 'soapbox/storage/kv_store';
+import { getFeatures } from 'soapbox/utils/features';
import api, { staticClient } from '../api';
export const SOAPBOX_CONFIG_REQUEST_SUCCESS = 'SOAPBOX_CONFIG_REQUEST_SUCCESS';
diff --git a/app/soapbox/actions/statuses.js b/app/soapbox/actions/statuses.js
index 19bda082b..25b65ec25 100644
--- a/app/soapbox/actions/statuses.js
+++ b/app/soapbox/actions/statuses.js
@@ -2,9 +2,9 @@ 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 { deleteFromTimelines } from './timelines';
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 ca93f0506..2dd6d45e5 100644
--- a/app/soapbox/actions/streaming.js
+++ b/app/soapbox/actions/streaming.js
@@ -1,6 +1,9 @@
import { getSettings } from 'soapbox/actions/settings';
import messages from 'soapbox/locales/messages';
import { connectStream } from '../stream';
+import { updateConversations } from './conversations';
+import { fetchFilters } from './filters';
+import { updateNotificationsQueue, expandNotifications } from './notifications';
import {
deleteFromTimelines,
expandHomeTimeline,
@@ -8,9 +11,6 @@ import {
disconnectTimeline,
processTimelineUpdate,
} from './timelines';
-import { updateNotificationsQueue, expandNotifications } from './notifications';
-import { updateConversations } from './conversations';
-import { fetchFilters } from './filters';
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 f239530f0..e2ca4df7b 100644
--- a/app/soapbox/actions/suggestions.js
+++ b/app/soapbox/actions/suggestions.js
@@ -1,8 +1,8 @@
import { isLoggedIn } from 'soapbox/utils/auth';
import { getFeatures } from 'soapbox/utils/features';
import api from '../api';
-import { importFetchedAccounts } from './importer';
import { fetchRelationships } from './accounts';
+import { importFetchedAccounts } from './importer';
export const SUGGESTIONS_FETCH_REQUEST = 'SUGGESTIONS_FETCH_REQUEST';
export const SUGGESTIONS_FETCH_SUCCESS = 'SUGGESTIONS_FETCH_SUCCESS';
diff --git a/app/soapbox/api.js b/app/soapbox/api.js
index 79c0400bc..58e6f6657 100644
--- a/app/soapbox/api.js
+++ b/app/soapbox/api.js
@@ -8,8 +8,8 @@
import axios from 'axios';
import LinkHeader from 'http-link-header';
import { createSelector } from 'reselect';
-import { getAccessToken, getAppToken, parseBaseURL } from 'soapbox/utils/auth';
import { BACKEND_URL, FE_SUBDIRECTORY } from 'soapbox/build_config';
+import { getAccessToken, getAppToken, parseBaseURL } from 'soapbox/utils/auth';
import { isURL } from 'soapbox/utils/auth';
/**
diff --git a/app/soapbox/base_polyfills.js b/app/soapbox/base_polyfills.js
index d54ed977c..60c546bf4 100644
--- a/app/soapbox/base_polyfills.js
+++ b/app/soapbox/base_polyfills.js
@@ -4,9 +4,9 @@ import 'intl';
import 'intl/locale-data/jsonp/en';
import 'es6-symbol/implement';
import includes from 'array-includes';
+import isNaN from 'is-nan';
import assign from 'object-assign';
import values from 'object.values';
-import isNaN from 'is-nan';
import { decode as decodeBase64 } from './utils/base64';
if (!Array.prototype.includes) {
diff --git a/app/soapbox/components/__mocks__/react-inlinesvg.js b/app/soapbox/components/__mocks__/react-inlinesvg.js
index 33da43fde..41000c5cc 100644
--- a/app/soapbox/components/__mocks__/react-inlinesvg.js
+++ b/app/soapbox/components/__mocks__/react-inlinesvg.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
export default function InlineSVG({ src }) {
return ;
diff --git a/app/soapbox/components/__tests__/avatar-test.js b/app/soapbox/components/__tests__/avatar-test.js
index 297b0b413..6e43f30c7 100644
--- a/app/soapbox/components/__tests__/avatar-test.js
+++ b/app/soapbox/components/__tests__/avatar-test.js
@@ -1,5 +1,5 @@
-import React from 'react';
import { fromJS } from 'immutable';
+import React from 'react';
import { createComponent } from 'soapbox/test_helpers';
import Avatar from '../avatar';
diff --git a/app/soapbox/components/__tests__/avatar_overlay-test.js b/app/soapbox/components/__tests__/avatar_overlay-test.js
index c469dcc75..0e0d2039a 100644
--- a/app/soapbox/components/__tests__/avatar_overlay-test.js
+++ b/app/soapbox/components/__tests__/avatar_overlay-test.js
@@ -1,5 +1,5 @@
-import React from 'react';
import { fromJS } from 'immutable';
+import React from 'react';
import { createComponent } from 'soapbox/test_helpers';
import AvatarOverlay from '../avatar_overlay';
diff --git a/app/soapbox/components/__tests__/display_name-test.js b/app/soapbox/components/__tests__/display_name-test.js
index ebef28352..e717e6480 100644
--- a/app/soapbox/components/__tests__/display_name-test.js
+++ b/app/soapbox/components/__tests__/display_name-test.js
@@ -1,5 +1,5 @@
-import React from 'react';
import { fromJS } from 'immutable';
+import React from 'react';
import { createComponent } from 'soapbox/test_helpers';
import DisplayName from '../display_name';
diff --git a/app/soapbox/components/account.js b/app/soapbox/components/account.js
index 228949067..74c17d9d7 100644
--- a/app/soapbox/components/account.js
+++ b/app/soapbox/components/account.js
@@ -1,17 +1,17 @@
-import React, { Fragment } from 'react';
-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 PropTypes from 'prop-types';
+import React, { Fragment } from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import emojify from 'soapbox/features/emoji/emoji';
+import ActionButton from 'soapbox/features/ui/components/action_button';
import Avatar from './avatar';
import DisplayName from './display_name';
-import Permalink from './permalink';
import Icon from './icon';
import IconButton from './icon_button';
+import Permalink from './permalink';
import RelativeTimestamp from './relative_timestamp';
const mapStateToProps = state => {
diff --git a/app/soapbox/components/account_search.js b/app/soapbox/components/account_search.js
index 5b83e90f9..0c7a01456 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 PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
import AutosuggestAccountInput from 'soapbox/components/autosuggest_account_input';
+import Icon from 'soapbox/components/icon';
const messages = defineMessages({
placeholder: { id: 'account_search.placeholder', defaultMessage: 'Search for an account' },
diff --git a/app/soapbox/components/attachment_list.js b/app/soapbox/components/attachment_list.js
index d7875a62c..c64869b13 100644
--- a/app/soapbox/components/attachment_list.js
+++ b/app/soapbox/components/attachment_list.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Icon from 'soapbox/components/icon';
diff --git a/app/soapbox/components/attachment_thumbs.js b/app/soapbox/components/attachment_thumbs.js
index 438c2061e..7ee27f724 100644
--- a/app/soapbox/components/attachment_thumbs.js
+++ b/app/soapbox/components/attachment_thumbs.js
@@ -1,11 +1,11 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { MediaGallery } from 'soapbox/features/ui/util/async-components';
+import { connect } from 'react-redux';
import { openModal } from 'soapbox/actions/modal';
import Bundle from 'soapbox/features/ui/components/bundle';
+import { MediaGallery } from 'soapbox/features/ui/util/async-components';
export default @connect()
class AttachmentThumbs extends ImmutablePureComponent {
diff --git a/app/soapbox/components/autosuggest_account_input.js b/app/soapbox/components/autosuggest_account_input.js
index 90cb91231..6a002fe24 100644
--- a/app/soapbox/components/autosuggest_account_input.js
+++ b/app/soapbox/components/autosuggest_account_input.js
@@ -1,10 +1,10 @@
-import React from 'react';
-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 { throttle } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import { accountSearch } from 'soapbox/actions/accounts';
import AutosuggestInput from './autosuggest_input';
diff --git a/app/soapbox/components/autosuggest_emoji.js b/app/soapbox/components/autosuggest_emoji.js
index a8813c657..bf45d23a0 100644
--- a/app/soapbox/components/autosuggest_emoji.js
+++ b/app/soapbox/components/autosuggest_emoji.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { joinPublicPath } from 'soapbox/utils/static';
import unicodeMapping from '../features/emoji/emoji_unicode_mapping_light';
diff --git a/app/soapbox/components/autosuggest_input.js b/app/soapbox/components/autosuggest_input.js
index 619aabce2..84df2b6f7 100644
--- a/app/soapbox/components/autosuggest_input.js
+++ b/app/soapbox/components/autosuggest_input.js
@@ -1,12 +1,12 @@
-import React from 'react';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import classNames from 'classnames';
import { List as ImmutableList } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import Icon from 'soapbox/components/icon';
-import { isRtl } from '../rtl';
import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
+import { isRtl } from '../rtl';
import AutosuggestEmoji from './autosuggest_emoji';
const textAtCursorMatchesToken = (str, caretPosition, searchTokens) => {
diff --git a/app/soapbox/components/autosuggest_textarea.js b/app/soapbox/components/autosuggest_textarea.js
index 032479475..b115ad942 100644
--- a/app/soapbox/components/autosuggest_textarea.js
+++ b/app/soapbox/components/autosuggest_textarea.js
@@ -1,11 +1,11 @@
+import classNames from 'classnames';
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
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 { isRtl } from '../rtl';
import AutosuggestEmoji from './autosuggest_emoji';
const textAtCursorMatchesToken = (str, caretPosition) => {
diff --git a/app/soapbox/components/avatar.js b/app/soapbox/components/avatar.js
index e909c44df..b3349928d 100644
--- a/app/soapbox/components/avatar.js
+++ b/app/soapbox/components/avatar.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import StillImage from 'soapbox/components/still_image';
export default class Avatar extends React.PureComponent {
diff --git a/app/soapbox/components/avatar_composite.js b/app/soapbox/components/avatar_composite.js
index c6d1eb8cc..d0f93533a 100644
--- a/app/soapbox/components/avatar_composite.js
+++ b/app/soapbox/components/avatar_composite.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import StillImage from 'soapbox/components/still_image';
diff --git a/app/soapbox/components/badge.js b/app/soapbox/components/badge.js
index f38200d79..6185af97a 100644
--- a/app/soapbox/components/badge.js
+++ b/app/soapbox/components/badge.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
const Badge = (props) => (
{props.title}
diff --git a/app/soapbox/components/blurhash.js b/app/soapbox/components/blurhash.js
index 0ad74277f..a8f61f066 100644
--- a/app/soapbox/components/blurhash.js
+++ b/app/soapbox/components/blurhash.js
@@ -1,8 +1,8 @@
// @ts-check
import { decode } from 'blurhash';
-import React, { useRef, useEffect } from 'react';
import PropTypes from 'prop-types';
+import React, { useRef, useEffect } from 'react';
/**
* @typedef BlurhashPropsBase
diff --git a/app/soapbox/components/button.js b/app/soapbox/components/button.js
index 87007d17d..7f69d6feb 100644
--- a/app/soapbox/components/button.js
+++ b/app/soapbox/components/button.js
@@ -1,6 +1,6 @@
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
import { Link } from 'react-router-dom';
import Icon from './icon';
diff --git a/app/soapbox/components/column.js b/app/soapbox/components/column.js
index 1b5fabb05..36a262ddd 100644
--- a/app/soapbox/components/column.js
+++ b/app/soapbox/components/column.js
@@ -1,6 +1,6 @@
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
export default class Column extends React.PureComponent {
diff --git a/app/soapbox/components/column_back_button.js b/app/soapbox/components/column_back_button.js
index 54b700b63..5c901f4be 100644
--- a/app/soapbox/components/column_back_button.js
+++ b/app/soapbox/components/column_back_button.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types';
import React from 'react';
import { FormattedMessage } from 'react-intl';
-import PropTypes from 'prop-types';
import Icon from 'soapbox/components/icon';
export default class ColumnBackButton extends React.PureComponent {
diff --git a/app/soapbox/components/column_header.js b/app/soapbox/components/column_header.js
index b3fa00d59..5fd4c09ba 100644
--- a/app/soapbox/components/column_header.js
+++ b/app/soapbox/components/column_header.js
@@ -1,7 +1,7 @@
'use strict';
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
// import classNames from 'classnames';
// import { injectIntl, defineMessages } from 'react-intl';
// import Icon from 'soapbox/components/icon';
diff --git a/app/soapbox/components/display_name.js b/app/soapbox/components/display_name.js
index 1fa642405..7b0103cfe 100644
--- a/app/soapbox/components/display_name.js
+++ b/app/soapbox/components/display_name.js
@@ -1,14 +1,14 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { connect } from 'react-redux';
import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
-import { displayFqn } from 'soapbox/utils/state';
import { isVerified } from 'soapbox/utils/accounts';
+import { displayFqn } from 'soapbox/utils/state';
import { getAcct } from '../utils/accounts';
-import VerificationBadge from './verification_badge';
import Icon from './icon';
import RelativeTimestamp from './relative_timestamp';
+import VerificationBadge from './verification_badge';
const mapStateToProps = state => {
return {
diff --git a/app/soapbox/components/domain.js b/app/soapbox/components/domain.js
index 3d12bfba9..d9e067bc2 100644
--- a/app/soapbox/components/domain.js
+++ b/app/soapbox/components/domain.js
@@ -1,7 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl } from 'react-intl';
import IconButton from './icon_button';
const messages = defineMessages({
diff --git a/app/soapbox/components/dropdown_menu.js b/app/soapbox/components/dropdown_menu.js
index 230509236..f3235815e 100644
--- a/app/soapbox/components/dropdown_menu.js
+++ b/app/soapbox/components/dropdown_menu.js
@@ -1,10 +1,10 @@
-import React from 'react';
import classNames from 'classnames';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import Overlay from 'react-overlays/lib/Overlay';
-import spring from 'react-motion/lib/spring';
import { supportsPassiveEvents } from 'detect-passive-events';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import spring from 'react-motion/lib/spring';
+import Overlay from 'react-overlays/lib/Overlay';
import Icon from 'soapbox/components/icon';
import Motion from '../features/ui/util/optional_motion';
import IconButton from './icon_button';
diff --git a/app/soapbox/components/emoji_selector.js b/app/soapbox/components/emoji_selector.js
index 57898f299..c0c0d1671 100644
--- a/app/soapbox/components/emoji_selector.js
+++ b/app/soapbox/components/emoji_selector.js
@@ -1,11 +1,11 @@
-import React from 'react';
+import classNames from 'classnames';
import PropTypes from 'prop-types';
+import React from 'react';
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 emojify from 'soapbox/features/emoji/emoji';
const mapStateToProps = state => ({
allowedEmoji: getSoapboxConfig(state).get('allowedEmoji'),
diff --git a/app/soapbox/components/error_boundary.js b/app/soapbox/components/error_boundary.js
index c2043b7b3..1fe31ac84 100644
--- a/app/soapbox/components/error_boundary.js
+++ b/app/soapbox/components/error_boundary.js
@@ -1,8 +1,8 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
-import { captureException } from 'soapbox/monitoring';
import Icon from 'soapbox/components/icon';
+import { captureException } from 'soapbox/monitoring';
export default class ErrorBoundary extends React.PureComponent {
diff --git a/app/soapbox/components/extended_video_player.js b/app/soapbox/components/extended_video_player.js
index c0553283c..c86eee5db 100644
--- a/app/soapbox/components/extended_video_player.js
+++ b/app/soapbox/components/extended_video_player.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { isIOS } from 'soapbox/is_mobile';
export default class ExtendedVideoPlayer extends React.PureComponent {
diff --git a/app/soapbox/components/filter_bar.js b/app/soapbox/components/filter_bar.js
index cb00014a0..172bbf420 100644
--- a/app/soapbox/components/filter_bar.js
+++ b/app/soapbox/components/filter_bar.js
@@ -1,7 +1,7 @@
-import React from 'react';
import classNames from 'classnames';
-import PropTypes from 'prop-types';
import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
export default class FilterBar extends React.PureComponent {
diff --git a/app/soapbox/components/fork_awesome_icon.js b/app/soapbox/components/fork_awesome_icon.js
index adca2cbd6..1d85f1288 100644
--- a/app/soapbox/components/fork_awesome_icon.js
+++ b/app/soapbox/components/fork_awesome_icon.js
@@ -5,9 +5,9 @@
* @see soapbox/components/icon
*/
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
export default class ForkAwesomeIcon extends React.PureComponent {
diff --git a/app/soapbox/components/hashtag.js b/app/soapbox/components/hashtag.js
index 0b9f64a92..e6304dc22 100644
--- a/app/soapbox/components/hashtag.js
+++ b/app/soapbox/components/hashtag.js
@@ -1,7 +1,7 @@
import React from 'react';
-import { Sparklines, SparklinesCurve } from 'react-sparklines';
-import { FormattedMessage } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { FormattedMessage } from 'react-intl';
+import { Sparklines, SparklinesCurve } from 'react-sparklines';
import { shortNumberFormat } from '../utils/numbers';
import Permalink from './permalink';
diff --git a/app/soapbox/components/helmet.js b/app/soapbox/components/helmet.js
index 3b96b8c10..1d6ce0394 100644
--- a/app/soapbox/components/helmet.js
+++ b/app/soapbox/components/helmet.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
-import { withRouter } from 'react-router-dom';
+import React from 'react';
import { Helmet } from'react-helmet';
+import { connect } from 'react-redux';
+import { withRouter } from 'react-router-dom';
import { getSettings } from 'soapbox/actions/settings';
import sourceCode from 'soapbox/utils/code';
import FaviconService from 'soapbox/utils/favicon_service';
diff --git a/app/soapbox/components/hover_ref_wrapper.js b/app/soapbox/components/hover_ref_wrapper.js
index a3d6cb2a2..910a09f2f 100644
--- a/app/soapbox/components/hover_ref_wrapper.js
+++ b/app/soapbox/components/hover_ref_wrapper.js
@@ -1,7 +1,7 @@
-import React, { useRef } from 'react';
-import PropTypes from 'prop-types';
-import { useDispatch } from 'react-redux';
import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React, { useRef } from 'react';
+import { useDispatch } from 'react-redux';
import {
openProfileHoverCard,
closeProfileHoverCard,
diff --git a/app/soapbox/components/icon.js b/app/soapbox/components/icon.js
index 9c0ec0d2c..2f00d1ef7 100644
--- a/app/soapbox/components/icon.js
+++ b/app/soapbox/components/icon.js
@@ -5,8 +5,8 @@
* @see soapbox/components/svg_icon
*/
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ForkAwesomeIcon from './fork_awesome_icon';
import SvgIcon from './svg_icon';
diff --git a/app/soapbox/components/icon_button.js b/app/soapbox/components/icon_button.js
index 431f72507..0e4d99031 100644
--- a/app/soapbox/components/icon_button.js
+++ b/app/soapbox/components/icon_button.js
@@ -1,7 +1,7 @@
+import classNames from 'classnames';
+import PropTypes from 'prop-types';
import React from 'react';
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';
diff --git a/app/soapbox/components/icon_with_counter.js b/app/soapbox/components/icon_with_counter.js
index 3a8f1b64e..d789dc2fc 100644
--- a/app/soapbox/components/icon_with_counter.js
+++ b/app/soapbox/components/icon_with_counter.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import Icon from 'soapbox/components/icon';
import { shortNumberFormat } from 'soapbox/utils/numbers';
diff --git a/app/soapbox/components/intersection_observer_article.js b/app/soapbox/components/intersection_observer_article.js
index 96ac6188a..64097399a 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 PropTypes from 'prop-types';
+import React from 'react';
import getRectFromEntry from '../features/ui/util/get_rect_from_entry';
+import scheduleIdleTask from '../features/ui/util/schedule_idle_task';
// Diff these props in the "rendered" state
const updateOnPropsForRendered = ['id', 'index', 'listLength'];
diff --git a/app/soapbox/components/load_gap.js b/app/soapbox/components/load_gap.js
index 3381b61bd..1c4ca83cc 100644
--- a/app/soapbox/components/load_gap.js
+++ b/app/soapbox/components/load_gap.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { injectIntl, defineMessages } from 'react-intl';
import Icon from 'soapbox/components/icon';
diff --git a/app/soapbox/components/load_more.js b/app/soapbox/components/load_more.js
index 389c3e1e1..0efe991e7 100644
--- a/app/soapbox/components/load_more.js
+++ b/app/soapbox/components/load_more.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types';
import React from 'react';
import { FormattedMessage } from 'react-intl';
-import PropTypes from 'prop-types';
export default class LoadMore extends React.PureComponent {
diff --git a/app/soapbox/components/loading_spinner.js b/app/soapbox/components/loading_spinner.js
index a632454db..4f2944b3f 100644
--- a/app/soapbox/components/loading_spinner.js
+++ b/app/soapbox/components/loading_spinner.js
@@ -2,8 +2,8 @@
* iOS style loading spinner.
* It's mostly CSS, adapted from: https://loading.io/css/
*/
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
const LoadingSpinner = ({ size = 30 }) => (
diff --git a/app/soapbox/components/material_status.js b/app/soapbox/components/material_status.js
index 6454497c5..407cbc264 100644
--- a/app/soapbox/components/material_status.js
+++ b/app/soapbox/components/material_status.js
@@ -2,8 +2,8 @@
* MaterialStatus: like a Status, but with gaps and rounded corners.
*/
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import StatusContainer from 'soapbox/containers/status_container';
export default class MaterialStatus extends React.Component {
diff --git a/app/soapbox/components/media_gallery.js b/app/soapbox/components/media_gallery.js
index ab9128616..c7b21747a 100644
--- a/app/soapbox/components/media_gallery.js
+++ b/app/soapbox/components/media_gallery.js
@@ -1,18 +1,18 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import { is } from 'immutable';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import classNames from 'classnames';
+import { is } from 'immutable';
import { Map as ImmutableMap } from 'immutable';
-import { truncateFilename } from 'soapbox/utils/media';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { getSettings } from 'soapbox/actions/settings';
+import Blurhash from 'soapbox/components/blurhash';
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 { truncateFilename } from 'soapbox/utils/media';
import { isIOS } from '../is_mobile';
+import { isPanoramic, isPortrait, isNonConformingRatio, minimumAspectRatio, maximumAspectRatio } from '../utils/media_aspect_ratio';
import IconButton from './icon_button';
const ATTACHMENT_LIMIT = 4;
diff --git a/app/soapbox/components/modal_root.js b/app/soapbox/components/modal_root.js
index 2b47e3739..7b472f368 100644
--- a/app/soapbox/components/modal_root.js
+++ b/app/soapbox/components/modal_root.js
@@ -1,11 +1,11 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import 'wicg-inert';
import { createBrowserHistory } from 'history';
+import PropTypes from 'prop-types';
+import React from 'react';
+import 'wicg-inert';
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
import { connect } from 'react-redux';
-import { openModal } from '../actions/modal';
import { cancelReplyCompose } from '../actions/compose';
+import { openModal } from '../actions/modal';
const messages = defineMessages({
confirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
diff --git a/app/soapbox/components/more_follows.js b/app/soapbox/components/more_follows.js
index b843b0708..7ac73547d 100644
--- a/app/soapbox/components/more_follows.js
+++ b/app/soapbox/components/more_follows.js
@@ -1,7 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { getFeatures } from 'soapbox/utils/features';
const messages = defineMessages({
diff --git a/app/soapbox/components/permalink.js b/app/soapbox/components/permalink.js
index d96e1754b..fffbd5471 100644
--- a/app/soapbox/components/permalink.js
+++ b/app/soapbox/components/permalink.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
export default class Permalink extends React.PureComponent {
diff --git a/app/soapbox/components/poll.js b/app/soapbox/components/poll.js
index e1eafa210..048fc47a5 100644
--- a/app/soapbox/components/poll.js
+++ b/app/soapbox/components/poll.js
@@ -1,17 +1,17 @@
-import React from 'react';
+import classNames from 'classnames';
+import escapeTextContentForBrowser from 'escape-html';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import classNames from 'classnames';
import spring from 'react-motion/lib/spring';
-import escapeTextContentForBrowser from 'escape-html';
+import { openModal } from 'soapbox/actions/modal';
import { vote, fetchPoll } from 'soapbox/actions/polls';
+import Icon from 'soapbox/components/icon';
+import emojify from 'soapbox/features/emoji/emoji';
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 Icon from 'soapbox/components/icon';
-import { openModal } from 'soapbox/actions/modal';
import RelativeTimestamp from './relative_timestamp';
const messages = defineMessages({
diff --git a/app/soapbox/components/primary_navigation.js b/app/soapbox/components/primary_navigation.js
index 194c76e7f..0f3935acd 100644
--- a/app/soapbox/components/primary_navigation.js
+++ b/app/soapbox/components/primary_navigation.js
@@ -1,18 +1,18 @@
'use strict';
-import React from 'react';
-import { connect } from 'react-redux';
+import classNames from 'classnames';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { NavLink, withRouter } from 'react-router-dom';
-import classNames from 'classnames';
+import { getSettings } from 'soapbox/actions/settings';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import Icon from 'soapbox/components/icon';
import IconWithCounter from 'soapbox/components/icon_with_counter';
-import { getSettings } from 'soapbox/actions/settings';
-import { getFeatures } from 'soapbox/utils/features';
-import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { isStaff, getBaseURL } from 'soapbox/utils/accounts';
+import { getFeatures } from 'soapbox/utils/features';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/components/profile_hover_card.js b/app/soapbox/components/profile_hover_card.js
index 276fe98cd..c16cf7936 100644
--- a/app/soapbox/components/profile_hover_card.js
+++ b/app/soapbox/components/profile_hover_card.js
@@ -1,21 +1,21 @@
-import React, { useEffect, useState } from 'react';
-import PropTypes from 'prop-types';
-import { useSelector, useDispatch } from 'react-redux';
-import { injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React, { useEffect, useState } from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { injectIntl, FormattedMessage } from 'react-intl';
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 { useSelector, useDispatch } from 'react-redux';
import { fetchRelationships } from 'soapbox/actions/accounts';
import {
closeProfileHoverCard,
updateProfileHoverCard,
} from 'soapbox/actions/profile_hover_card';
+import Badge from 'soapbox/components/badge';
+import ActionButton from 'soapbox/features/ui/components/action_button';
+import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
+import { UserPanel } from 'soapbox/features/ui/util/async-components';
+import { makeGetAccount } from 'soapbox/selectors';
+import { isAdmin, isModerator } from 'soapbox/utils/accounts';
const getAccount = makeGetAccount();
diff --git a/app/soapbox/components/progress_circle.js b/app/soapbox/components/progress_circle.js
index 022829b7b..31323f7dd 100644
--- a/app/soapbox/components/progress_circle.js
+++ b/app/soapbox/components/progress_circle.js
@@ -1,6 +1,6 @@
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
export default class ProgressCircle extends React.PureComponent {
diff --git a/app/soapbox/components/pull_to_refresh.js b/app/soapbox/components/pull_to_refresh.js
index 89dfd6b4a..4c82ca5ce 100644
--- a/app/soapbox/components/pull_to_refresh.js
+++ b/app/soapbox/components/pull_to_refresh.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import PTRComponent from 'react-simple-pull-to-refresh';
/**
diff --git a/app/soapbox/components/pullable.js b/app/soapbox/components/pullable.js
index 3d2f83edb..6f709d1b7 100644
--- a/app/soapbox/components/pullable.js
+++ b/app/soapbox/components/pullable.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import PullToRefresh from './pull_to_refresh';
/**
diff --git a/app/soapbox/components/radio_button.js b/app/soapbox/components/radio_button.js
index 7500578da..0f82af95f 100644
--- a/app/soapbox/components/radio_button.js
+++ b/app/soapbox/components/radio_button.js
@@ -1,6 +1,6 @@
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
export default class RadioButton extends React.PureComponent {
diff --git a/app/soapbox/components/relative_timestamp.js b/app/soapbox/components/relative_timestamp.js
index 5b12f6589..49bbfd8bc 100644
--- a/app/soapbox/components/relative_timestamp.js
+++ b/app/soapbox/components/relative_timestamp.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types';
import React from 'react';
import { injectIntl, defineMessages } from 'react-intl';
-import PropTypes from 'prop-types';
const messages = defineMessages({
just_now: { id: 'relative_time.just_now', defaultMessage: 'now' },
diff --git a/app/soapbox/components/scrollable_list.js b/app/soapbox/components/scrollable_list.js
index 559b28f70..34160e02c 100644
--- a/app/soapbox/components/scrollable_list.js
+++ b/app/soapbox/components/scrollable_list.js
@@ -1,16 +1,16 @@
-import React, { PureComponent } from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
import classNames from 'classnames';
-import { throttle } from 'lodash';
import { List as ImmutableList } from 'immutable';
+import { throttle } from 'lodash';
+import PropTypes from 'prop-types';
+import React, { PureComponent } from 'react';
+import { connect } from 'react-redux';
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';
+import MoreFollows from './more_follows';
const MOUSE_IDLE_DELAY = 300;
diff --git a/app/soapbox/components/setting_text.js b/app/soapbox/components/setting_text.js
index 8a1ea0fb0..e4972f102 100644
--- a/app/soapbox/components/setting_text.js
+++ b/app/soapbox/components/setting_text.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
export default class SettingText extends React.PureComponent {
diff --git a/app/soapbox/components/settings_checkbox.js b/app/soapbox/components/settings_checkbox.js
index 7544e2a8c..9ac0a13c1 100644
--- a/app/soapbox/components/settings_checkbox.js
+++ b/app/soapbox/components/settings_checkbox.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import { getSettings, changeSetting } from 'soapbox/actions/settings';
import { Checkbox } from 'soapbox/features/forms';
diff --git a/app/soapbox/components/showable_password.js b/app/soapbox/components/showable_password.js
index 7e8247cf8..3c9b99216 100644
--- a/app/soapbox/components/showable_password.js
+++ b/app/soapbox/components/showable_password.js
@@ -1,8 +1,8 @@
+import classNames from 'classnames';
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
-import PropTypes from 'prop-types';
-import classNames from 'classnames';
import IconButton from 'soapbox/components/icon_button';
import { FormPropTypes, InputContainer, LabelInputContainer } from 'soapbox/features/forms';
diff --git a/app/soapbox/components/sidebar_menu.js b/app/soapbox/components/sidebar_menu.js
index 1b22d134d..c242c8836 100644
--- a/app/soapbox/components/sidebar_menu.js
+++ b/app/soapbox/components/sidebar_menu.js
@@ -1,26 +1,26 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import classNames from 'classnames';
+import { is as ImmutableIs } from 'immutable';
import { throttle } from 'lodash';
-import { Link, NavLink } from 'react-router-dom';
+import PropTypes from 'prop-types';
+import React from 'react';
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 { connect } from 'react-redux';
+import { Link, NavLink } from 'react-router-dom';
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 { makeGetAccount, makeGetOtherAccounts } from '../selectors';
+import { isAdmin, getBaseURL } from '../utils/accounts';
import Avatar from './avatar';
-import IconButton from './icon_button';
-import Icon from './icon';
import DisplayName from './display_name';
+import Icon from './icon';
+import IconButton from './icon_button';
const messages = defineMessages({
followers: { id: 'account.followers', defaultMessage: 'Followers' },
diff --git a/app/soapbox/components/status.js b/app/soapbox/components/status.js
index 674880493..5f259cca3 100644
--- a/app/soapbox/components/status.js
+++ b/app/soapbox/components/status.js
@@ -1,27 +1,27 @@
-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 PropTypes from 'prop-types';
+import React from 'react';
+import { HotKeys } from 'react-hotkeys';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, FormattedMessage } from 'react-intl';
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 Icon from 'soapbox/components/icon';
import PlaceholderCard from 'soapbox/features/placeholder/components/placeholder_card';
+import { getDomain } from 'soapbox/utils/accounts';
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';
-import RelativeTimestamp from './relative_timestamp';
-import DisplayName from './display_name';
-import StatusContent from './status_content';
-import StatusActionBar from './status_action_bar';
-import StatusReplyMentions from './status_reply_mentions';
import AttachmentThumbs from './attachment_thumbs';
+import Avatar from './avatar';
+import AvatarComposite from './avatar_composite';
+import AvatarOverlay from './avatar_overlay';
+import DisplayName from './display_name';
+import RelativeTimestamp from './relative_timestamp';
+import StatusActionBar from './status_action_bar';
+import StatusContent from './status_content';
+import StatusReplyMentions from './status_reply_mentions';
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 23cc535a8..23d3349cb 100644
--- a/app/soapbox/components/status_action_bar.js
+++ b/app/soapbox/components/status_action_bar.js
@@ -1,18 +1,18 @@
-import React from 'react';
-import { connect } from 'react-redux';
-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 { 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 PropTypes from 'prop-types';
+import React from 'react';
+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 { Link } from 'react-router-dom';
import { simpleEmojiReact } from 'soapbox/actions/emoji_reacts';
-import { isStaff, isAdmin } from 'soapbox/utils/accounts';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import { getFeatures } from 'soapbox/utils/features';
+import EmojiSelector from 'soapbox/components/emoji_selector';
import { isUserTouching } from 'soapbox/is_mobile';
+import { isStaff, isAdmin } from 'soapbox/utils/accounts';
+import { getReactForStatus, reduceEmoji } from 'soapbox/utils/emoji_reacts';
+import { getFeatures } from 'soapbox/utils/features';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { openModal } from '../actions/modal';
import DropdownMenuContainer from '../containers/dropdown_menu_container';
import IconButton from './icon_button';
diff --git a/app/soapbox/components/status_content.js b/app/soapbox/components/status_content.js
index b1afdb135..25e09cde6 100644
--- a/app/soapbox/components/status_content.js
+++ b/app/soapbox/components/status_content.js
@@ -1,12 +1,12 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import { FormattedMessage } from 'react-intl';
import classnames from 'classnames';
-import PollContainer from 'soapbox/containers/poll_container';
-import Icon from 'soapbox/components/icon';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import Icon from 'soapbox/components/icon';
+import PollContainer from 'soapbox/containers/poll_container';
import { addGreentext } from 'soapbox/utils/greentext';
import { onlyEmoji } from 'soapbox/utils/rich_content';
import { isRtl } from '../rtl';
diff --git a/app/soapbox/components/status_list.js b/app/soapbox/components/status_list.js
index aae62c43b..766a0fed3 100644
--- a/app/soapbox/components/status_list.js
+++ b/app/soapbox/components/status_list.js
@@ -1,12 +1,12 @@
import { debounce } from 'lodash';
-import React from 'react';
-import { FormattedMessage, defineMessages } from 'react-intl';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage, defineMessages } from 'react-intl';
import MaterialStatus from 'soapbox/components/material_status';
-import PendingStatus from 'soapbox/features/ui/components/pending_status';
import PlaceholderMaterialStatus from 'soapbox/features/placeholder/components/placeholder_material_status';
+import PendingStatus from 'soapbox/features/ui/components/pending_status';
import LoadGap from './load_gap';
import ScrollableList from './scrollable_list';
import TimelineQueueButtonHeader from './timeline_queue_button_header';
diff --git a/app/soapbox/components/status_reply_mentions.js b/app/soapbox/components/status_reply_mentions.js
index 7dd68e942..8d2708bc4 100644
--- a/app/soapbox/components/status_reply_mentions.js
+++ b/app/soapbox/components/status_reply_mentions.js
@@ -1,12 +1,12 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { FormattedMessage, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
-import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
import { openModal } from 'soapbox/actions/modal';
+import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
const mapDispatchToProps = (dispatch) => ({
onOpenMentionsModal(username, statusId) {
diff --git a/app/soapbox/components/still_image.js b/app/soapbox/components/still_image.js
index f8be4cfb4..4948f4e44 100644
--- a/app/soapbox/components/still_image.js
+++ b/app/soapbox/components/still_image.js
@@ -1,7 +1,7 @@
+import classNames from 'classnames';
+import PropTypes from 'prop-types';
import React from 'react';
import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import classNames from 'classnames';
import { getSettings } from 'soapbox/actions/settings';
const mapStateToProps = state => ({
diff --git a/app/soapbox/components/sub_navigation.js b/app/soapbox/components/sub_navigation.js
index 35227eff3..d84d3d2b9 100644
--- a/app/soapbox/components/sub_navigation.js
+++ b/app/soapbox/components/sub_navigation.js
@@ -1,13 +1,13 @@
-import React from 'react';
-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 { throttle } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
+import { openModal } from 'soapbox/actions/modal';
+import Helmet from 'soapbox/components/helmet';
import Icon from 'soapbox/components/icon';
import IconButton from 'soapbox/components/icon_button';
-import Helmet from 'soapbox/components/helmet';
-import { openModal } from 'soapbox/actions/modal';
const messages = defineMessages({
back: { id: 'column_back_button.label', defaultMessage: 'Back' },
diff --git a/app/soapbox/components/svg_icon.js b/app/soapbox/components/svg_icon.js
index c0baca595..5e5cd3ce0 100644
--- a/app/soapbox/components/svg_icon.js
+++ b/app/soapbox/components/svg_icon.js
@@ -4,9 +4,9 @@
* @see soapbox/components/icon
*/
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
import InlineSVG from 'react-inlinesvg';
export default class SvgIcon extends React.PureComponent {
diff --git a/app/soapbox/components/thumb_navigation.js b/app/soapbox/components/thumb_navigation.js
index 60ec41263..6e819dfb1 100644
--- a/app/soapbox/components/thumb_navigation.js
+++ b/app/soapbox/components/thumb_navigation.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
-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 PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { NavLink, withRouter } from 'react-router-dom';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
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';
diff --git a/app/soapbox/components/timeline_queue_button_header.js b/app/soapbox/components/timeline_queue_button_header.js
index 8328d3292..4c8a8c950 100644
--- a/app/soapbox/components/timeline_queue_button_header.js
+++ b/app/soapbox/components/timeline_queue_button_header.js
@@ -1,11 +1,11 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { injectIntl } from 'react-intl';
-import { throttle } from 'lodash';
import classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
+import { throttle } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { getSettings } from 'soapbox/actions/settings';
+import Icon from 'soapbox/components/icon';
const mapStateToProps = state => {
const settings = getSettings(state);
diff --git a/app/soapbox/containers/account_container.js b/app/soapbox/containers/account_container.js
index 06fced242..913888263 100644
--- a/app/soapbox/containers/account_container.js
+++ b/app/soapbox/containers/account_container.js
@@ -1,8 +1,6 @@
import React from 'react';
-import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { makeGetAccount } from '../selectors';
-import Account from '../components/account';
+import { connect } from 'react-redux';
import {
followAccount,
unfollowAccount,
@@ -14,6 +12,8 @@ import {
import { openModal } from '../actions/modal';
import { initMuteModal } from '../actions/mutes';
import { getSettings } from '../actions/settings';
+import Account from '../components/account';
+import { makeGetAccount } from '../selectors';
const messages = defineMessages({
unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },
diff --git a/app/soapbox/containers/domain_container.js b/app/soapbox/containers/domain_container.js
index db74c23dc..1d47e1ff0 100644
--- a/app/soapbox/containers/domain_container.js
+++ b/app/soapbox/containers/domain_container.js
@@ -1,9 +1,9 @@
import React from 'react';
-import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { blockDomain, unblockDomain } from '../actions/domain_blocks';
-import Domain from '../components/domain';
import { openModal } from '../actions/modal';
+import Domain from '../components/domain';
const messages = defineMessages({
blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' },
diff --git a/app/soapbox/containers/intersection_observer_article_container.js b/app/soapbox/containers/intersection_observer_article_container.js
index 6ff5d5817..bf5159382 100644
--- a/app/soapbox/containers/intersection_observer_article_container.js
+++ b/app/soapbox/containers/intersection_observer_article_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import IntersectionObserverArticle from '../components/intersection_observer_article';
import { setHeight } from '../actions/height_cache';
+import IntersectionObserverArticle from '../components/intersection_observer_article';
const makeMapStateToProps = (state, props) => ({
cachedHeight: state.getIn(['height_cache', props.saveHeightKey, props.id]),
diff --git a/app/soapbox/containers/soapbox.js b/app/soapbox/containers/soapbox.js
index 6bd081866..9633823a1 100644
--- a/app/soapbox/containers/soapbox.js
+++ b/app/soapbox/containers/soapbox.js
@@ -1,31 +1,31 @@
'use strict';
-import React from 'react';
-import { Provider, connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { IntlProvider } from 'react-intl';
+import { Provider, connect } from 'react-redux';
import { Switch, BrowserRouter, Route } from 'react-router-dom';
import { ScrollContext } from 'react-router-scroll-4';
// import Introduction from '../features/introduction';
-import { IntlProvider } from 'react-intl';
-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';
-import PublicLayout from 'soapbox/features/public_layout';
import { getSettings } from 'soapbox/actions/settings';
+import { loadSoapboxConfig } from 'soapbox/actions/soapbox';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
-import { generateThemeCss } from 'soapbox/utils/theme';
-import messages from 'soapbox/locales/messages';
import { FE_SUBDIRECTORY } from 'soapbox/build_config';
+import Helmet from 'soapbox/components/helmet';
+import PublicLayout from 'soapbox/features/public_layout';
import { createGlobals } from 'soapbox/globals';
-import { preload } from '../actions/preload';
-import UI from '../features/ui';
+import messages from 'soapbox/locales/messages';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
+import { generateThemeCss } from 'soapbox/utils/theme';
import { INTRODUCTION_VERSION } from '../actions/onboarding';
-import configureStore from '../store/configureStore';
+import { preload } from '../actions/preload';
import ErrorBoundary from '../components/error_boundary';
+import UI from '../features/ui';
+import configureStore from '../store/configureStore';
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 21a05d7f9..5e0057a45 100644
--- a/app/soapbox/containers/status_container.js
+++ b/app/soapbox/containers/status_container.js
@@ -1,16 +1,20 @@
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 { connect } from 'react-redux';
import { launchChat } from 'soapbox/actions/chats';
-import Status from '../components/status';
-import { makeGetStatus } from '../selectors';
+import { deactivateUserModal, deleteUserModal, deleteStatusModal, toggleStatusSensitivityModal } from 'soapbox/actions/moderation';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import { blockAccount } from '../actions/accounts';
+import { showAlertForError } from '../actions/alerts';
import {
replyCompose,
mentionCompose,
directCompose,
} from '../actions/compose';
+import {
+ createRemovedAccount,
+ groupRemoveStatus,
+} from '../actions/groups';
import {
reblog,
favourite,
@@ -21,7 +25,10 @@ import {
pin,
unpin,
} from '../actions/interactions';
-import { blockAccount } from '../actions/accounts';
+import { openModal } from '../actions/modal';
+import { initMuteModal } from '../actions/mutes';
+import { initReport } from '../actions/reports';
+import { getSettings } from '../actions/settings';
import {
muteStatus,
unmuteStatus,
@@ -29,15 +36,8 @@ import {
hideStatus,
revealStatus,
} from '../actions/statuses';
-import { initMuteModal } from '../actions/mutes';
-import { initReport } from '../actions/reports';
-import { openModal } from '../actions/modal';
-import { showAlertForError } from '../actions/alerts';
-import {
- createRemovedAccount,
- groupRemoveStatus,
-} from '../actions/groups';
-import { getSettings } from '../actions/settings';
+import Status from '../components/status';
+import { makeGetStatus } from '../selectors';
const messages = defineMessages({
deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
diff --git a/app/soapbox/features/about/index.js b/app/soapbox/features/about/index.js
index 8310eb491..9fe9a9c0d 100644
--- a/app/soapbox/features/about/index.js
+++ b/app/soapbox/features/about/index.js
@@ -1,7 +1,7 @@
import React from 'react';
-import { connect } from 'react-redux';
-import { injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchAboutPage } from 'soapbox/actions/about';
import { getSettings } from 'soapbox/actions/settings';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
diff --git a/app/soapbox/features/account/components/header.js b/app/soapbox/features/account/components/header.js
index d4f8a47d1..e83111530 100644
--- a/app/soapbox/features/account/components/header.js
+++ b/app/soapbox/features/account/components/header.js
@@ -1,16 +1,24 @@
'use strict';
-import React from 'react';
-import { connect } from 'react-redux';
-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 classNames from 'classnames';
-import { NavLink } from 'react-router-dom';
-import { debounce } from 'lodash';
import { List as ImmutableList, Map as ImmutableMap } from 'immutable';
+import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { NavLink } from 'react-router-dom';
+import { openModal } from 'soapbox/actions/modal';
+import Avatar from 'soapbox/components/avatar';
import IconButton from 'soapbox/components/icon_button';
+import StillImage from 'soapbox/components/still_image';
+import DropdownMenuContainer from 'soapbox/containers/dropdown_menu_container';
+import ActionButton from 'soapbox/features/ui/components/action_button';
+import SubscriptionButton from 'soapbox/features/ui/components/subscription_button';
+import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
+import { ProfileInfoPanel } from 'soapbox/features/ui/util/async-components';
import {
isStaff,
isAdmin,
@@ -20,16 +28,8 @@ import {
isRemote,
getDomain,
} from 'soapbox/utils/accounts';
-import Avatar from 'soapbox/components/avatar';
-import { shortNumberFormat } from 'soapbox/utils/numbers';
-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 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 { getFeatures } from 'soapbox/utils/features';
+import { shortNumberFormat } from 'soapbox/utils/numbers';
const messages = defineMessages({
edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
diff --git a/app/soapbox/features/account_gallery/components/media_item.js b/app/soapbox/features/account_gallery/components/media_item.js
index f0d033b17..01b1b7076 100644
--- a/app/soapbox/features/account_gallery/components/media_item.js
+++ b/app/soapbox/features/account_gallery/components/media_item.js
@@ -1,14 +1,14 @@
-import React from 'react';
-import { connect } from 'react-redux';
+import classNames from 'classnames';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
-import Blurhash from 'soapbox/components/blurhash';
-import { isIOS } from 'soapbox/is_mobile';
+import { connect } from 'react-redux';
import { getSettings } from 'soapbox/actions/settings';
+import Blurhash from 'soapbox/components/blurhash';
+import Icon from 'soapbox/components/icon';
import StillImage from 'soapbox/components/still_image';
+import { isIOS } from 'soapbox/is_mobile';
const mapStateToProps = state => ({
autoPlayGif: getSettings(state).get('autoPlayGif'),
diff --git a/app/soapbox/features/account_gallery/index.js b/app/soapbox/features/account_gallery/index.js
index 4a3fb869c..b8e41e908 100644
--- a/app/soapbox/features/account_gallery/index.js
+++ b/app/soapbox/features/account_gallery/index.js
@@ -1,21 +1,21 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
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 { connect } from 'react-redux';
+import { NavLink } from 'react-router-dom';
import {
fetchAccount,
fetchAccountByUsername,
} from 'soapbox/actions/accounts';
+import { openModal } from 'soapbox/actions/modal';
+import Column from 'soapbox/components/column';
+import LoadMore from 'soapbox/components/load_more';
+import LoadingIndicator from 'soapbox/components/loading_indicator';
+import MissingIndicator from 'soapbox/components/missing_indicator';
import SubNavigation from 'soapbox/components/sub_navigation';
+import { getAccountGallery, findAccountByUsername } from 'soapbox/selectors';
import { expandAccountMediaTimeline } from '../../actions/timelines';
import MediaItem from './components/media_item';
diff --git a/app/soapbox/features/account_timeline/components/column_settings.js b/app/soapbox/features/account_timeline/components/column_settings.js
index 130cb47db..c8b9cfb5f 100644
--- a/app/soapbox/features/account_timeline/components/column_settings.js
+++ b/app/soapbox/features/account_timeline/components/column_settings.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
import IconButton from 'soapbox/components/icon_button';
diff --git a/app/soapbox/features/account_timeline/components/header.js b/app/soapbox/features/account_timeline/components/header.js
index 67421abcb..ce8c878ba 100644
--- a/app/soapbox/features/account_timeline/components/header.js
+++ b/app/soapbox/features/account_timeline/components/header.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
import InnerHeader from '../../account/components/header';
import MovedNote from './moved_note';
diff --git a/app/soapbox/features/account_timeline/components/moved_note.js b/app/soapbox/features/account_timeline/components/moved_note.js
index 05c99abba..8c2f86b97 100644
--- a/app/soapbox/features/account_timeline/components/moved_note.js
+++ b/app/soapbox/features/account_timeline/components/moved_note.js
@@ -1,8 +1,8 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage } from 'react-intl';
import { NavLink } from 'react-router-dom';
import Icon from 'soapbox/components/icon';
import AvatarOverlay from '../../../components/avatar_overlay';
diff --git a/app/soapbox/features/account_timeline/containers/column_settings_container.js b/app/soapbox/features/account_timeline/containers/column_settings_container.js
index e5045e54e..3192b8bc0 100644
--- a/app/soapbox/features/account_timeline/containers/column_settings_container.js
+++ b/app/soapbox/features/account_timeline/containers/column_settings_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import ColumnSettings from '../components/column_settings';
import { getSettings, changeSetting } from '../../../actions/settings';
+import ColumnSettings from '../components/column_settings';
const mapStateToProps = state => ({
settings: getSettings(state).get('account_timeline'),
diff --git a/app/soapbox/features/account_timeline/containers/header_container.js b/app/soapbox/features/account_timeline/containers/header_container.js
index 1f09bbb91..86d64edf6 100644
--- a/app/soapbox/features/account_timeline/containers/header_container.js
+++ b/app/soapbox/features/account_timeline/containers/header_container.js
@@ -1,10 +1,7 @@
-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 React from 'react';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import {
verifyUser,
unverifyUser,
@@ -14,10 +11,11 @@ import {
suggestUsers,
unsuggestUsers,
} from 'soapbox/actions/admin';
-import { isAdmin } from 'soapbox/utils/accounts';
+import { launchChat } from 'soapbox/actions/chats';
+import { deactivateUserModal, deleteUserModal } from 'soapbox/actions/moderation';
+import { getSettings } from 'soapbox/actions/settings';
import snackbar from 'soapbox/actions/snackbar';
-import { makeGetAccount } from '../../../selectors';
-import Header from '../components/header';
+import { isAdmin } from 'soapbox/utils/accounts';
import {
followAccount,
unfollowAccount,
@@ -33,10 +31,12 @@ import {
mentionCompose,
directCompose,
} from '../../../actions/compose';
+import { blockDomain, unblockDomain } from '../../../actions/domain_blocks';
+import { openModal } from '../../../actions/modal';
import { initMuteModal } from '../../../actions/mutes';
import { initReport } from '../../../actions/reports';
-import { openModal } from '../../../actions/modal';
-import { blockDomain, unblockDomain } from '../../../actions/domain_blocks';
+import { makeGetAccount } from '../../../selectors';
+import Header from '../components/header';
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 33f7eb63d..470925c69 100644
--- a/app/soapbox/features/account_timeline/index.js
+++ b/app/soapbox/features/account_timeline/index.js
@@ -1,25 +1,25 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-// import ColumnSettingsContainer from './containers/column_settings_container';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+// import ColumnSettingsContainer from './containers/column_settings_container';
import { NavLink } from 'react-router-dom';
-import MissingIndicator from 'soapbox/components/missing_indicator';
-import SubNavigation from 'soapbox/components/sub_navigation';
+import { getSettings } from 'soapbox/actions/settings';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
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 MissingIndicator from 'soapbox/components/missing_indicator';
+import SubNavigation from 'soapbox/components/sub_navigation';
import { makeGetStatusIds, findAccountByUsername } from 'soapbox/selectors';
+import { fetchAccount, fetchAccountByUsername } from '../../actions/accounts';
import { fetchAccountIdentityProofs } from '../../actions/identity_proofs';
import { fetchPatronAccount } from '../../actions/patron';
+import { expandAccountFeaturedTimeline, expandAccountTimeline } from '../../actions/timelines';
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 f23f9ba2d..0f6e33c7d 100644
--- a/app/soapbox/features/admin/awaiting_approval.js
+++ b/app/soapbox/features/admin/awaiting_approval.js
@@ -1,11 +1,11 @@
+import PropTypes from 'prop-types';
import React from 'react';
+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 ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import ScrollableList from 'soapbox/components/scrollable_list';
import { fetchUsers } from 'soapbox/actions/admin';
+import ScrollableList from 'soapbox/components/scrollable_list';
import Column from '../ui/components/column';
import UnapprovedAccount from './components/unapproved_account';
diff --git a/app/soapbox/features/admin/components/admin_nav.js b/app/soapbox/features/admin/components/admin_nav.js
index 19639d890..b6555fee2 100644
--- a/app/soapbox/features/admin/components/admin_nav.js
+++ b/app/soapbox/features/admin/components/admin_nav.js
@@ -1,9 +1,9 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { NavLink } from 'react-router-dom';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { NavLink } from 'react-router-dom';
import Icon from 'soapbox/components/icon';
import IconWithCounter from 'soapbox/components/icon_with_counter';
diff --git a/app/soapbox/features/admin/components/latest_accounts_panel.js b/app/soapbox/features/admin/components/latest_accounts_panel.js
index 90ad59bd2..9d92e4f0c 100644
--- a/app/soapbox/features/admin/components/latest_accounts_panel.js
+++ b/app/soapbox/features/admin/components/latest_accounts_panel.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-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 PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchUsers } from 'soapbox/actions/admin';
import compareId from 'soapbox/compare_id';
+import AccountListPanel from 'soapbox/features/ui/components/account_list_panel';
const messages = defineMessages({
title: { id: 'admin.latest_accounts_panel.title', defaultMessage: 'Latest Accounts' },
diff --git a/app/soapbox/features/admin/components/registration_mode_picker.js b/app/soapbox/features/admin/components/registration_mode_picker.js
index 747964a02..99dde62b6 100644
--- a/app/soapbox/features/admin/components/registration_mode_picker.js
+++ b/app/soapbox/features/admin/components/registration_mode_picker.js
@@ -1,15 +1,15 @@
import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import { updateConfig } from 'soapbox/actions/admin';
+import snackbar from 'soapbox/actions/snackbar';
import {
SimpleForm,
FieldsGroup,
RadioGroup,
RadioItem,
} from 'soapbox/features/forms';
-import { updateConfig } from 'soapbox/actions/admin';
-import snackbar from 'soapbox/actions/snackbar';
const messages = defineMessages({
saved: { id: 'admin.dashboard.settings_saved', defaultMessage: 'Settings saved!' },
diff --git a/app/soapbox/features/admin/components/report.js b/app/soapbox/features/admin/components/report.js
index 63ca2c1e4..f65b7b4c8 100644
--- a/app/soapbox/features/admin/components/report.js
+++ b/app/soapbox/features/admin/components/report.js
@@ -1,16 +1,16 @@
import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
+import { closeReports } from 'soapbox/actions/admin';
+import { deactivateUserModal, deleteUserModal } from 'soapbox/actions/moderation';
+import snackbar from 'soapbox/actions/snackbar';
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 { 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({
diff --git a/app/soapbox/features/admin/components/report_status.js b/app/soapbox/features/admin/components/report_status.js
index 724c9d655..57b04442d 100644
--- a/app/soapbox/features/admin/components/report_status.js
+++ b/app/soapbox/features/admin/components/report_status.js
@@ -1,15 +1,15 @@
-import React from 'react';
-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 React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
+import { openModal } from 'soapbox/actions/modal';
+import { deleteStatusModal } from 'soapbox/actions/moderation';
import StatusContent from 'soapbox/components/status_content';
import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
-import { openModal } from 'soapbox/actions/modal';
-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';
+import { MediaGallery, Video, Audio } from 'soapbox/features/ui/util/async-components';
const messages = defineMessages({
viewStatus: { id: 'admin.reports.actions.view_status', defaultMessage: 'View post' },
diff --git a/app/soapbox/features/admin/components/unapproved_account.js b/app/soapbox/features/admin/components/unapproved_account.js
index eeb84c911..be4e26f6a 100644
--- a/app/soapbox/features/admin/components/unapproved_account.js
+++ b/app/soapbox/features/admin/components/unapproved_account.js
@@ -1,13 +1,13 @@
+import PropTypes from 'prop-types';
import React from 'react';
+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 ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import IconButton from 'soapbox/components/icon_button';
import { approveUsers } from 'soapbox/actions/admin';
-import { makeGetAccount } from 'soapbox/selectors';
import snackbar from 'soapbox/actions/snackbar';
+import IconButton from 'soapbox/components/icon_button';
+import { makeGetAccount } from 'soapbox/selectors';
import { rejectUserModal } from '../../../actions/moderation';
const messages = defineMessages({
diff --git a/app/soapbox/features/admin/index.js b/app/soapbox/features/admin/index.js
index e40761cff..f8e47e975 100644
--- a/app/soapbox/features/admin/index.js
+++ b/app/soapbox/features/admin/index.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { defineMessages, injectIntl, FormattedMessage, FormattedNumber } from 'react-intl';
-import { Link } from 'react-router-dom';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { parseVersion } from 'soapbox/utils/features';
-import sourceCode from 'soapbox/utils/code';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage, FormattedNumber } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import { getSubscribersCsv, getUnsubscribersCsv, getCombinedCsv } from 'soapbox/actions/email_list';
-import { getFeatures } from 'soapbox/utils/features';
import { isAdmin } from 'soapbox/utils/accounts';
+import sourceCode from 'soapbox/utils/code';
+import { parseVersion } from 'soapbox/utils/features';
+import { getFeatures } from 'soapbox/utils/features';
import { isNumber } from 'soapbox/utils/numbers';
import Column from '../ui/components/column';
import RegistrationModePicker from './components/registration_mode_picker';
diff --git a/app/soapbox/features/admin/moderation_log.js b/app/soapbox/features/admin/moderation_log.js
index c56f897d7..290173182 100644
--- a/app/soapbox/features/admin/moderation_log.js
+++ b/app/soapbox/features/admin/moderation_log.js
@@ -1,11 +1,11 @@
+import PropTypes from 'prop-types';
import React from 'react';
-import { defineMessages, injectIntl, FormattedDate } from 'react-intl';
-import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ScrollableList from 'soapbox/components/scrollable_list';
+import { defineMessages, injectIntl, FormattedDate } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchModerationLog } from 'soapbox/actions/admin';
+import ScrollableList from 'soapbox/components/scrollable_list';
import Column from '../ui/components/column';
const messages = defineMessages({
diff --git a/app/soapbox/features/admin/reports.js b/app/soapbox/features/admin/reports.js
index c2db49339..963deaad3 100644
--- a/app/soapbox/features/admin/reports.js
+++ b/app/soapbox/features/admin/reports.js
@@ -1,11 +1,11 @@
+import PropTypes from 'prop-types';
import React from 'react';
+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 ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import ScrollableList from 'soapbox/components/scrollable_list';
import { fetchReports } from 'soapbox/actions/admin';
+import ScrollableList from 'soapbox/components/scrollable_list';
import { makeGetReport } from 'soapbox/selectors';
import Column from '../ui/components/better_column';
import Report from './components/report';
diff --git a/app/soapbox/features/admin/user_index.js b/app/soapbox/features/admin/user_index.js
index f4057169d..f352c33f4 100644
--- a/app/soapbox/features/admin/user_index.js
+++ b/app/soapbox/features/admin/user_index.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import { debounce } from 'lodash';
-import { injectIntl, defineMessages } from 'react-intl';
import { Set as ImmutableSet, OrderedSet as ImmutableOrderedSet, is } from 'immutable';
+import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
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 AccountContainer from 'soapbox/containers/account_container';
import { SimpleForm, TextInput } from 'soapbox/features/forms';
+import Column from 'soapbox/features/ui/components/column';
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 d1727d2fc..92f841ab7 100644
--- a/app/soapbox/features/aliases/components/account.js
+++ b/app/soapbox/features/aliases/components/account.js
@@ -1,14 +1,14 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
-import { makeGetAccount } from '../../../selectors';
+import { connect } from 'react-redux';
+import { addToAliases } from '../../../actions/aliases';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
-import { addToAliases } from '../../../actions/aliases';
+import { makeGetAccount } from '../../../selectors';
const messages = defineMessages({
add: { id: 'aliases.account.add', defaultMessage: 'Create alias' },
diff --git a/app/soapbox/features/aliases/components/search.js b/app/soapbox/features/aliases/components/search.js
index 80e76bef5..c59d16d9c 100644
--- a/app/soapbox/features/aliases/components/search.js
+++ b/app/soapbox/features/aliases/components/search.js
@@ -1,10 +1,10 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import Button from 'soapbox/components/button';
+import Icon from 'soapbox/components/icon';
import { fetchAliasesSuggestions, clearAliasesSuggestions, changeAliasesSuggestions } from '../../../actions/aliases';
const messages = defineMessages({
diff --git a/app/soapbox/features/aliases/index.js b/app/soapbox/features/aliases/index.js
index 4945682d3..290498645 100644
--- a/app/soapbox/features/aliases/index.js
+++ b/app/soapbox/features/aliases/index.js
@@ -1,15 +1,15 @@
import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import Icon from 'soapbox/components/icon';
import { makeGetAccount } from 'soapbox/selectors';
+import { removeFromAliases } from '../../actions/aliases';
+import ScrollableList from '../../components/scrollable_list';
import Column from '../ui/components/column';
import ColumnSubheading from '../ui/components/column_subheading';
-import ScrollableList from '../../components/scrollable_list';
-import { removeFromAliases } from '../../actions/aliases';
-import Search from './components/search';
import Account from './components/account';
+import Search from './components/search';
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 3983fa8e7..a3433eb66 100644
--- a/app/soapbox/features/audio/index.js
+++ b/app/soapbox/features/audio/index.js
@@ -1,11 +1,11 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
import { throttle } from 'lodash';
import { debounce } from 'lodash';
-import { formatTime } from 'soapbox/features/video';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
import Icon from 'soapbox/components/icon';
+import { formatTime } from 'soapbox/features/video';
import { getPointerPosition, fileNameFromURL } from 'soapbox/features/video';
import Visualizer from './visualizer';
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 645706d1b..5b95444ae 100644
--- a/app/soapbox/features/auth_login/components/__tests__/captcha-test.js
+++ b/app/soapbox/features/auth_login/components/__tests__/captcha-test.js
@@ -1,6 +1,6 @@
+import { Map as ImmutableMap } from 'immutable';
import React from 'react';
import renderer from 'react-test-renderer';
-import { Map as ImmutableMap } from 'immutable';
import { createComponent } from 'soapbox/test_helpers';
import CaptchaField, { NativeCaptchaField } from '../captcha';
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 7f9f20a62..2cfb52192 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,6 +1,6 @@
import React from 'react';
-import { createComponent, mockStore } from 'soapbox/test_helpers';
import rootReducer from 'soapbox/reducers';
+import { createComponent, mockStore } from 'soapbox/test_helpers';
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 3ebe5f036..9e1b3634f 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,6 +1,6 @@
import React from 'react';
-import { createComponent, mockStore } from 'soapbox/test_helpers';
import rootReducer from 'soapbox/reducers';
+import { createComponent, mockStore } from 'soapbox/test_helpers';
import LoginPage from '../login_page';
describe('', () => {
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 70f5a24c6..2a1522d6f 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,5 +1,5 @@
-import React from 'react';
import { Map as ImmutableMap } from 'immutable';
+import React from 'react';
import { createComponent, mockStore } from 'soapbox/test_helpers';
import OtpAuthForm from '../otp_auth_form';
diff --git a/app/soapbox/features/auth_login/components/captcha.js b/app/soapbox/features/auth_login/components/captcha.js
index e0f497663..1ae2e9c1d 100644
--- a/app/soapbox/features/auth_login/components/captcha.js
+++ b/app/soapbox/features/auth_login/components/captcha.js
@@ -1,9 +1,9 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { connect } from 'react-redux';
import { Map as ImmutableMap } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchCaptcha } from 'soapbox/actions/auth';
import { TextInput } from 'soapbox/features/forms';
diff --git a/app/soapbox/features/auth_login/components/login_form.js b/app/soapbox/features/auth_login/components/login_form.js
index 8368cbb68..e1a052388 100644
--- a/app/soapbox/features/auth_login/components/login_form.js
+++ b/app/soapbox/features/auth_login/components/login_form.js
@@ -1,11 +1,11 @@
import React from 'react';
-import { connect } from 'react-redux';
-import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
-import { Link } from 'react-router-dom';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
+import ShowablePassword from 'soapbox/components/showable_password';
import { getFeatures } from 'soapbox/utils/features';
import { getBaseURL } from 'soapbox/utils/state';
-import ShowablePassword from 'soapbox/components/showable_password';
const messages = defineMessages({
username: { id: 'login.fields.username_placeholder', defaultMessage: 'Username' },
diff --git a/app/soapbox/features/auth_login/components/login_page.js b/app/soapbox/features/auth_login/components/login_page.js
index aa291e808..306c0ff5b 100644
--- a/app/soapbox/features/auth_login/components/login_page.js
+++ b/app/soapbox/features/auth_login/components/login_page.js
@@ -1,13 +1,13 @@
import React from 'react';
-import { connect } from 'react-redux';
-import { Redirect } from 'react-router-dom';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
+import { Redirect } from 'react-router-dom';
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';
+import OtpAuthForm from './otp_auth_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 acda9c898..d0e78bd73 100644
--- a/app/soapbox/features/auth_login/components/otp_auth_form.js
+++ b/app/soapbox/features/auth_login/components/otp_auth_form.js
@@ -1,9 +1,9 @@
+import PropTypes from 'prop-types';
import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
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';
diff --git a/app/soapbox/features/auth_login/components/password_reset.js b/app/soapbox/features/auth_login/components/password_reset.js
index 60e050f24..7f85ec2fc 100644
--- a/app/soapbox/features/auth_login/components/password_reset.js
+++ b/app/soapbox/features/auth_login/components/password_reset.js
@@ -1,11 +1,11 @@
import React from 'react';
-import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, FormattedMessage, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
import { resetPassword } from 'soapbox/actions/security';
-import { SimpleForm, FieldsGroup, TextInput } from 'soapbox/features/forms';
import snackbar from 'soapbox/actions/snackbar';
+import { SimpleForm, FieldsGroup, TextInput } from 'soapbox/features/forms';
const messages = defineMessages({
nicknameOrEmail: { id: 'password_reset.fields.username_placeholder', defaultMessage: 'Email or username' },
diff --git a/app/soapbox/features/auth_login/components/registration_form.js b/app/soapbox/features/auth_login/components/registration_form.js
index 2413b16cb..425357d78 100644
--- a/app/soapbox/features/auth_login/components/registration_form.js
+++ b/app/soapbox/features/auth_login/components/registration_form.js
@@ -1,15 +1,20 @@
-import React from 'react';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { connect } from 'react-redux';
-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 { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import { v4 as uuidv4 } from 'uuid';
+import { accountLookup } from 'soapbox/actions/accounts';
+import { register, verifyCredentials } from 'soapbox/actions/auth';
+import { openModal } from 'soapbox/actions/modal';
+import { getSettings } from 'soapbox/actions/settings';
import ShowablePassword from 'soapbox/components/showable_password';
+import CaptchaField from 'soapbox/features/auth_login/components/captcha';
import {
SimpleForm,
SimpleInput,
@@ -17,12 +22,7 @@ import {
SimpleTextarea,
Checkbox,
} from 'soapbox/features/forms';
-import { register, verifyCredentials } from 'soapbox/actions/auth';
-import CaptchaField from 'soapbox/features/auth_login/components/captcha';
-import { getSettings } from 'soapbox/actions/settings';
-import { openModal } from 'soapbox/actions/modal';
import { getFeatures } from 'soapbox/utils/features';
-import { accountLookup } from 'soapbox/actions/accounts';
const messages = defineMessages({
username: { id: 'registration.fields.username_placeholder', defaultMessage: 'Username' },
diff --git a/app/soapbox/features/backups/index.js b/app/soapbox/features/backups/index.js
index 1e4a1ce5f..4fc88dfb9 100644
--- a/app/soapbox/features/backups/index.js
+++ b/app/soapbox/features/backups/index.js
@@ -1,9 +1,9 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import {
fetchBackups,
createBackup,
diff --git a/app/soapbox/features/blocks/index.js b/app/soapbox/features/blocks/index.js
index a0dbddfe6..493555271 100644
--- a/app/soapbox/features/blocks/index.js
+++ b/app/soapbox/features/blocks/index.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import PropTypes from 'prop-types';
-import LoadingIndicator from '../../components/loading_indicator';
-import Column from '../ui/components/column';
-import AccountContainer from '../../containers/account_container';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchBlocks, expandBlocks } from '../../actions/blocks';
+import LoadingIndicator from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
+import AccountContainer from '../../containers/account_container';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.blocks', defaultMessage: 'Blocked users' },
diff --git a/app/soapbox/features/bookmarks/index.js b/app/soapbox/features/bookmarks/index.js
index 7fb19f2fc..345beb7dc 100644
--- a/app/soapbox/features/bookmarks/index.js
+++ b/app/soapbox/features/bookmarks/index.js
@@ -1,14 +1,14 @@
-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 { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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 StatusList from '../../components/status_list';
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 a3d54838a..09e6c7b40 100644
--- a/app/soapbox/features/chats/chat_room.js
+++ b/app/soapbox/features/chats/chat_room.js
@@ -1,17 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-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 PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import { fetchChat, markChatRead } from 'soapbox/actions/chats';
+import Avatar from 'soapbox/components/avatar';
import Column from 'soapbox/components/column';
import ColumnBackButton from 'soapbox/components/column_back_button';
import { makeGetChat } from 'soapbox/selectors';
+import { getAcct } from 'soapbox/utils/accounts';
import { displayFqn } from 'soapbox/utils/state';
import ChatBox from './components/chat_box';
diff --git a/app/soapbox/features/chats/components/audio_toggle.js b/app/soapbox/features/chats/components/audio_toggle.js
index c0754f5f9..c2f035780 100644
--- a/app/soapbox/features/chats/components/audio_toggle.js
+++ b/app/soapbox/features/chats/components/audio_toggle.js
@@ -1,10 +1,10 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
import Toggle from 'react-toggle';
-import Icon from 'soapbox/components/icon';
import { changeSetting, getSettings } from 'soapbox/actions/settings';
+import Icon from 'soapbox/components/icon';
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 0fed18c77..4d7058107 100644
--- a/app/soapbox/features/chats/components/chat.js
+++ b/app/soapbox/features/chats/components/chat.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import { FormattedMessage } from 'react-intl';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { shortNumberFormat } from 'soapbox/utils/numbers';
+import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import Icon from 'soapbox/components/icon';
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 { shortNumberFormat } from 'soapbox/utils/numbers';
import Avatar from '../../../components/avatar';
+import DisplayName from '../../../components/display_name';
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 c7d79211e..c012feadd 100644
--- a/app/soapbox/features/chats/components/chat_box.js
+++ b/app/soapbox/features/chats/components/chat_box.js
@@ -1,19 +1,19 @@
-import React from 'react';
-import { connect } from 'react-redux';
-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 PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
import {
sendChatMessage,
markChatRead,
} from 'soapbox/actions/chats';
-import UploadButton from 'soapbox/features/compose/components/upload_button';
import { uploadMedia } from 'soapbox/actions/media';
+import IconButton from 'soapbox/components/icon_button';
+import UploadButton from 'soapbox/features/compose/components/upload_button';
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({
diff --git a/app/soapbox/features/chats/components/chat_list.js b/app/soapbox/features/chats/components/chat_list.js
index eae3476eb..8a16f3b26 100644
--- a/app/soapbox/features/chats/components/chat_list.js
+++ b/app/soapbox/features/chats/components/chat_list.js
@@ -1,10 +1,10 @@
-import React from 'react';
-import { connect } from 'react-redux';
-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 { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+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 { createSelector } from 'reselect';
import { expandChats } from 'soapbox/actions/chats';
import ScrollableList from 'soapbox/components/scrollable_list';
diff --git a/app/soapbox/features/chats/components/chat_message_list.js b/app/soapbox/features/chats/components/chat_message_list.js
index 9b5607f3a..f301b50db 100644
--- a/app/soapbox/features/chats/components/chat_message_list.js
+++ b/app/soapbox/features/chats/components/chat_message_list.js
@@ -1,20 +1,20 @@
-import React from 'react';
-import { connect } from 'react-redux';
-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 { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import classNames from 'classnames';
+import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import { escape, throttle } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { fetchChatMessages, deleteChatMessage } from 'soapbox/actions/chats';
-import emojify from 'soapbox/features/emoji/emoji';
import { openModal } from 'soapbox/actions/modal';
-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 DropdownMenuContainer from 'soapbox/containers/dropdown_menu_container';
+import emojify from 'soapbox/features/emoji/emoji';
+import Bundle from 'soapbox/features/ui/components/bundle';
+import { MediaGallery } from 'soapbox/features/ui/util/async-components';
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 b8550237a..f59c809a1 100644
--- a/app/soapbox/features/chats/components/chat_panes.js
+++ b/app/soapbox/features/chats/components/chat_panes.js
@@ -1,19 +1,19 @@
-import React from 'react';
-import { connect } from 'react-redux';
+import { List as ImmutableList } from 'immutable';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
-import { List as ImmutableList } from 'immutable';
-import { createSelector } from 'reselect';
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 { connect } from 'react-redux';
+import { createSelector } from 'reselect';
import { openChat, launchChat, toggleMainWindow } from 'soapbox/actions/chats';
import { getSettings } from 'soapbox/actions/settings';
-import ChatWindow from './chat_window';
+import AccountSearch from 'soapbox/components/account_search';
+import AudioToggle from 'soapbox/features/chats/components/audio_toggle';
+import { shortNumberFormat } from 'soapbox/utils/numbers';
import ChatList from './chat_list';
+import ChatWindow from './chat_window';
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 f25d27fb0..4ee5aa751 100644
--- a/app/soapbox/features/chats/components/chat_window.js
+++ b/app/soapbox/features/chats/components/chat_window.js
@@ -1,21 +1,21 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
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 Avatar from 'soapbox/components/avatar';
-import { getAcct } from 'soapbox/utils/accounts';
-import IconButton from 'soapbox/components/icon_button';
+import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import {
closeChat,
toggleChat,
} from 'soapbox/actions/chats';
+import Avatar from 'soapbox/components/avatar';
+import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
+import IconButton from 'soapbox/components/icon_button';
+import { makeGetChat } from 'soapbox/selectors';
+import { getAcct } from 'soapbox/utils/accounts';
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 = () => {
diff --git a/app/soapbox/features/chats/index.js b/app/soapbox/features/chats/index.js
index 842fa4187..b072dd89b 100644
--- a/app/soapbox/features/chats/index.js
+++ b/app/soapbox/features/chats/index.js
@@ -1,10 +1,10 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchChats, launchChat } from 'soapbox/actions/chats';
-import AudioToggle from 'soapbox/features/chats/components/audio_toggle';
import AccountSearch from 'soapbox/components/account_search';
+import AudioToggle from 'soapbox/features/chats/components/audio_toggle';
import Column from '../../components/column';
import ColumnHeader from '../../components/column_header';
import ChatList from './components/chat_list';
diff --git a/app/soapbox/features/community_timeline/components/column_settings.js b/app/soapbox/features/community_timeline/components/column_settings.js
index 1b00a9819..5d774a549 100644
--- a/app/soapbox/features/community_timeline/components/column_settings.js
+++ b/app/soapbox/features/community_timeline/components/column_settings.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
import IconButton from 'soapbox/components/icon_button';
diff --git a/app/soapbox/features/community_timeline/containers/column_settings_container.js b/app/soapbox/features/community_timeline/containers/column_settings_container.js
index 1278eac33..355305a9d 100644
--- a/app/soapbox/features/community_timeline/containers/column_settings_container.js
+++ b/app/soapbox/features/community_timeline/containers/column_settings_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import ColumnSettings from '../components/column_settings';
import { getSettings, changeSetting } from '../../../actions/settings';
+import ColumnSettings from '../components/column_settings';
const mapStateToProps = state => ({
settings: getSettings(state).get('community'),
diff --git a/app/soapbox/features/community_timeline/index.js b/app/soapbox/features/community_timeline/index.js
index 045626ea3..876d69442 100644
--- a/app/soapbox/features/community_timeline/index.js
+++ b/app/soapbox/features/community_timeline/index.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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 { expandCommunityTimeline } from '../../actions/timelines';
+import Column from '../../components/column';
+import StatusListContainer from '../ui/containers/status_list_container';
import ColumnSettings from './containers/column_settings_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/compose/components/compose_form.js b/app/soapbox/features/compose/components/compose_form.js
index 028d933a1..c88816b3c 100644
--- a/app/soapbox/features/compose/components/compose_form.js
+++ b/app/soapbox/features/compose/components/compose_form.js
@@ -1,33 +1,33 @@
+import classNames from 'classnames';
+import { get } from 'lodash';
+import PropTypes from 'prop-types';
import React from 'react';
// import TextCharacterCounter from './text_character_counter';
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 { defineMessages, FormattedMessage } from 'react-intl';
+import { Link } from 'react-router-dom';
import { length } from 'stringz';
-import { get } from 'lodash';
import Icon from 'soapbox/components/icon';
+import AutosuggestInput from '../../../components/autosuggest_input';
+import AutosuggestTextarea from '../../../components/autosuggest_textarea';
import Button from '../../../components/button';
+import { isMobile } from '../../../is_mobile';
+import Warning from '../components/warning';
+import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container';
+import MarkdownButtonContainer from '../containers/markdown_button_container';
+import PollButtonContainer from '../containers/poll_button_container';
+import PollFormContainer from '../containers/poll_form_container';
+import PrivacyDropdownContainer from '../containers/privacy_dropdown_container';
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 SpoilerButtonContainer from '../containers/spoiler_button_container';
-import MarkdownButtonContainer from '../containers/markdown_button_container';
-import ScheduleFormContainer from '../containers/schedule_form_container';
import ScheduleButtonContainer from '../containers/schedule_button_container';
-import PrivacyDropdownContainer from '../containers/privacy_dropdown_container';
-import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container';
-import PollFormContainer from '../containers/poll_form_container';
+import ScheduleFormContainer from '../containers/schedule_form_container';
+import SpoilerButtonContainer from '../containers/spoiler_button_container';
+import UploadButtonContainer from '../containers/upload_button_container';
import UploadFormContainer from '../containers/upload_form_container';
import WarningContainer from '../containers/warning_container';
-import { isMobile } from '../../../is_mobile';
import { countableText } from '../util/counter';
-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 1e841400a..8720cf3f6 100644
--- a/app/soapbox/features/compose/components/emoji_picker_dropdown.js
+++ b/app/soapbox/features/compose/components/emoji_picker_dropdown.js
@@ -1,10 +1,10 @@
-import React from 'react';
+import classNames from 'classnames';
+import { supportsPassiveEvents } from 'detect-passive-events';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl } from 'react-intl';
import Overlay from 'react-overlays/lib/Overlay';
-import classNames from 'classnames';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { supportsPassiveEvents } from 'detect-passive-events';
import { joinPublicPath } from 'soapbox/utils/static';
import { buildCustomEmojis } from '../../emoji/emoji';
import { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components';
diff --git a/app/soapbox/features/compose/components/markdown_button.js b/app/soapbox/features/compose/components/markdown_button.js
index 7220b9618..0444c0d55 100644
--- a/app/soapbox/features/compose/components/markdown_button.js
+++ b/app/soapbox/features/compose/components/markdown_button.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
import IconButton from '../../../components/icon_button';
const messages = defineMessages({
diff --git a/app/soapbox/features/compose/components/poll_button.js b/app/soapbox/features/compose/components/poll_button.js
index ea74de373..814b72b5c 100644
--- a/app/soapbox/features/compose/components/poll_button.js
+++ b/app/soapbox/features/compose/components/poll_button.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
import IconButton from '../../../components/icon_button';
diff --git a/app/soapbox/features/compose/components/poll_form.js b/app/soapbox/features/compose/components/poll_form.js
index 10c0edd19..8e1829677 100644
--- a/app/soapbox/features/compose/components/poll_form.js
+++ b/app/soapbox/features/compose/components/poll_form.js
@@ -1,15 +1,15 @@
'use strict';
-import React from 'react';
+import classNames from 'classnames';
import PropTypes from 'prop-types';
+import React from 'react';
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 { connect } from 'react-redux';
import AutosuggestInput from 'soapbox/components/autosuggest_input';
+import Icon from 'soapbox/components/icon';
+import IconButton from 'soapbox/components/icon_button';
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 f9ec6307a..d03dd2ad4 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 Overlay from 'react-overlays/lib/Overlay';
-import spring from 'react-motion/lib/spring';
-import { supportsPassiveEvents } from 'detect-passive-events';
import classNames from 'classnames';
+import { supportsPassiveEvents } from 'detect-passive-events';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { injectIntl, defineMessages } from 'react-intl';
+import spring from 'react-motion/lib/spring';
+import Overlay from 'react-overlays/lib/Overlay';
import Icon from 'soapbox/components/icon';
-import Motion from '../../ui/util/optional_motion';
import IconButton from '../../../components/icon_button';
+import Motion from '../../ui/util/optional_motion';
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 63e602226..7804cd385 100644
--- a/app/soapbox/features/compose/components/reply_indicator.js
+++ b/app/soapbox/features/compose/components/reply_indicator.js
@@ -1,13 +1,13 @@
+import PropTypes from 'prop-types';
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 { defineMessages, injectIntl } from 'react-intl';
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 IconButton from '../../../components/icon_button';
import { isRtl } from '../../../rtl';
const messages = defineMessages({
diff --git a/app/soapbox/features/compose/components/reply_mentions.js b/app/soapbox/features/compose/components/reply_mentions.js
index c08e52fd0..a6ebbbc7e 100644
--- a/app/soapbox/features/compose/components/reply_mentions.js
+++ b/app/soapbox/features/compose/components/reply_mentions.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { FormattedMessage, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage, injectIntl } from 'react-intl';
export default @injectIntl
class ReplyMentions extends ImmutablePureComponent {
diff --git a/app/soapbox/features/compose/components/schedule_button.js b/app/soapbox/features/compose/components/schedule_button.js
index e0072e08c..3e1a67303 100644
--- a/app/soapbox/features/compose/components/schedule_button.js
+++ b/app/soapbox/features/compose/components/schedule_button.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
import IconButton from '../../../components/icon_button';
const messages = defineMessages({
diff --git a/app/soapbox/features/compose/components/schedule_form.js b/app/soapbox/features/compose/components/schedule_form.js
index b3730e7cb..3a9b8f488 100644
--- a/app/soapbox/features/compose/components/schedule_form.js
+++ b/app/soapbox/features/compose/components/schedule_form.js
@@ -1,12 +1,12 @@
'use strict';
-import React from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import DatePicker from 'react-datepicker';
-import 'react-datepicker/dist/react-datepicker.css';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import DatePicker from 'react-datepicker';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import 'react-datepicker/dist/react-datepicker.css';
import IconButton from 'soapbox/components/icon_button';
import { setSchedule, removeSchedule } from '../../../actions/compose';
diff --git a/app/soapbox/features/compose/components/search.js b/app/soapbox/features/compose/components/search.js
index 4fe840152..6da48cb4f 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 PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
import AutosuggestAccountInput from 'soapbox/components/autosuggest_account_input';
+import Icon from 'soapbox/components/icon';
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 31aff5e24..bf7121a1e 100644
--- a/app/soapbox/features/compose/components/search_results.js
+++ b/app/soapbox/features/compose/components/search_results.js
@@ -1,18 +1,18 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { FormattedMessage } from 'react-intl';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage } from 'react-intl';
+import { defineMessages, injectIntl } from 'react-intl';
+import FilterBar from 'soapbox/components/filter_bar';
+import Pullable from 'soapbox/components/pullable';
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';
+import StatusContainer from '../../../containers/status_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 abfa972c5..9f37f9682 100644
--- a/app/soapbox/features/compose/components/spoiler_button.js
+++ b/app/soapbox/features/compose/components/spoiler_button.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
import IconButton from '../../../components/icon_button';
const messages = defineMessages({
diff --git a/app/soapbox/features/compose/components/text_character_counter.js b/app/soapbox/features/compose/components/text_character_counter.js
index 99a96d1ca..2e9c042ea 100644
--- a/app/soapbox/features/compose/components/text_character_counter.js
+++ b/app/soapbox/features/compose/components/text_character_counter.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { length } from 'stringz';
export default class TextCharacterCounter extends React.PureComponent {
diff --git a/app/soapbox/features/compose/components/text_icon_button.js b/app/soapbox/features/compose/components/text_icon_button.js
index 8ac334fd6..1ca71fe6f 100644
--- a/app/soapbox/features/compose/components/text_icon_button.js
+++ b/app/soapbox/features/compose/components/text_icon_button.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
export default class TextIconButton extends React.PureComponent {
diff --git a/app/soapbox/features/compose/components/upload.js b/app/soapbox/features/compose/components/upload.js
index dc23fa5b9..2d19bb4f1 100644
--- a/app/soapbox/features/compose/components/upload.js
+++ b/app/soapbox/features/compose/components/upload.js
@@ -1,13 +1,13 @@
+import classNames from 'classnames';
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import spring from 'react-motion/lib/spring';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import classNames from 'classnames';
+import spring from 'react-motion/lib/spring';
+import Blurhash from 'soapbox/components/blurhash';
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 = {
diff --git a/app/soapbox/features/compose/components/upload_button.js b/app/soapbox/features/compose/components/upload_button.js
index 89f328343..fa8817063 100644
--- a/app/soapbox/features/compose/components/upload_button.js
+++ b/app/soapbox/features/compose/components/upload_button.js
@@ -1,9 +1,9 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
+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 ImmutablePureComponent from 'react-immutable-pure-component';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import IconButton from '../../../components/icon_button';
const messages = defineMessages({
diff --git a/app/soapbox/features/compose/components/upload_form.js b/app/soapbox/features/compose/components/upload_form.js
index a9a2740f5..8212505bc 100644
--- a/app/soapbox/features/compose/components/upload_form.js
+++ b/app/soapbox/features/compose/components/upload_form.js
@@ -1,10 +1,10 @@
-import React from 'react';
import classNames from 'classnames';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
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';
+import UploadContainer from '../containers/upload_container';
+import UploadProgressContainer from '../containers/upload_progress_container';
export default class UploadForm extends ImmutablePureComponent {
diff --git a/app/soapbox/features/compose/components/upload_progress.js b/app/soapbox/features/compose/components/upload_progress.js
index cd70b5506..ca81dd5ca 100644
--- a/app/soapbox/features/compose/components/upload_progress.js
+++ b/app/soapbox/features/compose/components/upload_progress.js
@@ -1,7 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import spring from 'react-motion/lib/spring';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
+import spring from 'react-motion/lib/spring';
import Icon from 'soapbox/components/icon';
import Motion from '../../ui/util/optional_motion';
diff --git a/app/soapbox/features/compose/components/visual_character_counter.js b/app/soapbox/features/compose/components/visual_character_counter.js
index f7873e82c..486da7f8e 100644
--- a/app/soapbox/features/compose/components/visual_character_counter.js
+++ b/app/soapbox/features/compose/components/visual_character_counter.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { injectIntl, defineMessages } from 'react-intl';
import { length } from 'stringz';
import ProgressCircle from 'soapbox/components/progress_circle';
diff --git a/app/soapbox/features/compose/components/warning.js b/app/soapbox/features/compose/components/warning.js
index cf495aba8..27380aa21 100644
--- a/app/soapbox/features/compose/components/warning.js
+++ b/app/soapbox/features/compose/components/warning.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import spring from 'react-motion/lib/spring';
import Motion from '../../ui/util/optional_motion';
diff --git a/app/soapbox/features/compose/containers/autosuggest_account_container.js b/app/soapbox/features/compose/containers/autosuggest_account_container.js
index 4190e54ca..cb3891ed5 100644
--- a/app/soapbox/features/compose/containers/autosuggest_account_container.js
+++ b/app/soapbox/features/compose/containers/autosuggest_account_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import AutosuggestAccount from '../components/autosuggest_account';
import { makeGetAccount } from '../../../selectors';
+import AutosuggestAccount from '../components/autosuggest_account';
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
diff --git a/app/soapbox/features/compose/containers/compose_form_container.js b/app/soapbox/features/compose/containers/compose_form_container.js
index a4ecff6c8..ef3de8ce8 100644
--- a/app/soapbox/features/compose/containers/compose_form_container.js
+++ b/app/soapbox/features/compose/containers/compose_form_container.js
@@ -1,6 +1,5 @@
-import { connect } from 'react-redux';
import { injectIntl } from 'react-intl';
-import ComposeForm from '../components/compose_form';
+import { connect } from 'react-redux';
import {
changeCompose,
submitCompose,
@@ -11,6 +10,7 @@ import {
insertEmojiCompose,
uploadCompose,
} from '../../../actions/compose';
+import ComposeForm from '../components/compose_form';
const mapStateToProps = state => ({
text: state.getIn(['compose', 'text']),
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 eb4ff7b45..57339d64c 100644
--- a/app/soapbox/features/compose/containers/emoji_picker_dropdown_container.js
+++ b/app/soapbox/features/compose/containers/emoji_picker_dropdown_container.js
@@ -1,9 +1,9 @@
+import { Map as ImmutableMap } from 'immutable';
import { connect } from 'react-redux';
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';
+import { getSettings, changeSetting } from '../../../actions/settings';
+import EmojiPickerDropdown from '../components/emoji_picker_dropdown';
const perLine = 8;
const lines = 2;
diff --git a/app/soapbox/features/compose/containers/markdown_button_container.js b/app/soapbox/features/compose/containers/markdown_button_container.js
index 788d0692d..078ab52f0 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 MarkdownButton from '../components/markdown_button';
const mapStateToProps = (state, { intl }) => {
const instance = state.get('instance');
diff --git a/app/soapbox/features/compose/containers/poll_button_container.js b/app/soapbox/features/compose/containers/poll_button_container.js
index db24886e2..486682f22 100644
--- a/app/soapbox/features/compose/containers/poll_button_container.js
+++ b/app/soapbox/features/compose/containers/poll_button_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import PollButton from '../components/poll_button';
import { addPoll, removePoll } from '../../../actions/compose';
+import PollButton from '../components/poll_button';
const mapStateToProps = state => ({
unavailable: state.getIn(['compose', 'is_uploading']),
diff --git a/app/soapbox/features/compose/containers/poll_form_container.js b/app/soapbox/features/compose/containers/poll_form_container.js
index 9e3cb3c43..fbbc830eb 100644
--- a/app/soapbox/features/compose/containers/poll_form_container.js
+++ b/app/soapbox/features/compose/containers/poll_form_container.js
@@ -1,11 +1,11 @@
import { connect } from 'react-redux';
-import PollForm from '../components/poll_form';
import { addPollOption, removePollOption, changePollOption, changePollSettings, removePoll } from '../../../actions/compose';
import {
clearComposeSuggestions,
fetchComposeSuggestions,
selectComposeSuggestion,
} from '../../../actions/compose';
+import PollForm from '../components/poll_form';
const mapStateToProps = state => ({
suggestions: state.getIn(['compose', 'suggestions']),
diff --git a/app/soapbox/features/compose/containers/privacy_dropdown_container.js b/app/soapbox/features/compose/containers/privacy_dropdown_container.js
index a90d54fa6..b51afa9c2 100644
--- a/app/soapbox/features/compose/containers/privacy_dropdown_container.js
+++ b/app/soapbox/features/compose/containers/privacy_dropdown_container.js
@@ -1,8 +1,8 @@
import { connect } from 'react-redux';
-import PrivacyDropdown from '../components/privacy_dropdown';
import { changeComposeVisibility } from '../../../actions/compose';
import { openModal, closeModal } from '../../../actions/modal';
import { isUserTouching } from '../../../is_mobile';
+import PrivacyDropdown from '../components/privacy_dropdown';
const mapStateToProps = state => ({
isModalOpen: state.get('modal').modalType === 'ACTIONS',
diff --git a/app/soapbox/features/compose/containers/reply_mentions_container.js b/app/soapbox/features/compose/containers/reply_mentions_container.js
index 799552a0b..fdeefb5d0 100644
--- a/app/soapbox/features/compose/containers/reply_mentions_container.js
+++ b/app/soapbox/features/compose/containers/reply_mentions_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import { makeGetStatus } from 'soapbox/selectors';
import { openModal } from 'soapbox/actions/modal';
+import { makeGetStatus } from 'soapbox/selectors';
import { getFeatures } from 'soapbox/utils/features';
import ReplyMentions from '../components/reply_mentions';
diff --git a/app/soapbox/features/compose/containers/schedule_button_container.js b/app/soapbox/features/compose/containers/schedule_button_container.js
index 61c4ca99f..f8fdc818f 100644
--- a/app/soapbox/features/compose/containers/schedule_button_container.js
+++ b/app/soapbox/features/compose/containers/schedule_button_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import ScheduleButton from '../components/schedule_button';
import { addSchedule, removeSchedule } from '../../../actions/compose';
+import ScheduleButton from '../components/schedule_button';
const mapStateToProps = state => ({
active: state.getIn(['compose', 'schedule']) ? true : false,
diff --git a/app/soapbox/features/compose/containers/search_container.js b/app/soapbox/features/compose/containers/search_container.js
index f13206fb1..36f942769 100644
--- a/app/soapbox/features/compose/containers/search_container.js
+++ b/app/soapbox/features/compose/containers/search_container.js
@@ -1,5 +1,5 @@
-import { connect } from 'react-redux';
import { debounce } from 'lodash';
+import { connect } from 'react-redux';
import {
changeSearch,
clearSearch,
diff --git a/app/soapbox/features/compose/containers/search_results_container.js b/app/soapbox/features/compose/containers/search_results_container.js
index 869bd40c0..5023d8446 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 { fetchSuggestions, dismissSuggestion } from '../../../actions/suggestions';
+import SearchResults from '../components/search_results';
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 fb3a195b1..e99dd5790 100644
--- a/app/soapbox/features/compose/containers/sensitive_button_container.js
+++ b/app/soapbox/features/compose/containers/sensitive_button_container.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { changeComposeSensitivity } from 'soapbox/actions/compose';
const messages = defineMessages({
diff --git a/app/soapbox/features/compose/containers/spoiler_button_container.js b/app/soapbox/features/compose/containers/spoiler_button_container.js
index 9f1fe5dac..3c5d5cae5 100644
--- a/app/soapbox/features/compose/containers/spoiler_button_container.js
+++ b/app/soapbox/features/compose/containers/spoiler_button_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import SpoilerButton from '../components/spoiler_button';
import { changeComposeSpoilerness } from '../../../actions/compose';
+import SpoilerButton from '../components/spoiler_button';
const mapStateToProps = (state, { intl }) => ({
active: state.getIn(['compose', 'spoiler']),
diff --git a/app/soapbox/features/compose/containers/upload_button_container.js b/app/soapbox/features/compose/containers/upload_button_container.js
index de8ec86e9..8509a85e6 100644
--- a/app/soapbox/features/compose/containers/upload_button_container.js
+++ b/app/soapbox/features/compose/containers/upload_button_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import UploadButton from '../components/upload_button';
import { uploadCompose } from '../../../actions/compose';
+import UploadButton from '../components/upload_button';
const mapStateToProps = state => ({
disabled: state.getIn(['compose', 'is_uploading']),
diff --git a/app/soapbox/features/compose/containers/upload_container.js b/app/soapbox/features/compose/containers/upload_container.js
index 73caec8b4..a4d683fad 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 { connect } from 'react-redux';
import { undoUploadCompose, changeUploadCompose } from '../../../actions/compose';
-import { openModal } from '../../../actions/modal';
import { submitCompose } from '../../../actions/compose';
+import { openModal } from '../../../actions/modal';
+import Upload from '../components/upload';
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 aa3455989..0c79f9e73 100644
--- a/app/soapbox/features/compose/containers/warning_container.js
+++ b/app/soapbox/features/compose/containers/warning_container.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
import Warning from '../components/warning';
diff --git a/app/soapbox/features/conversations/components/conversation.js b/app/soapbox/features/conversations/components/conversation.js
index 7589f725c..000ebf40d 100644
--- a/app/soapbox/features/conversations/components/conversation.js
+++ b/app/soapbox/features/conversations/components/conversation.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import StatusContainer from '../../../containers/status_container';
diff --git a/app/soapbox/features/conversations/components/conversations_list.js b/app/soapbox/features/conversations/components/conversations_list.js
index ba0936fd0..5bc280623 100644
--- a/app/soapbox/features/conversations/components/conversations_list.js
+++ b/app/soapbox/features/conversations/components/conversations_list.js
@@ -1,10 +1,10 @@
-import React from 'react';
+import { debounce } from 'lodash';
import PropTypes from 'prop-types';
+import React from 'react';
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 ConversationContainer from '../containers/conversation_container';
export default class ConversationsList extends ImmutablePureComponent {
diff --git a/app/soapbox/features/conversations/containers/conversation_container.js b/app/soapbox/features/conversations/containers/conversation_container.js
index bd6f6bfb0..957041c55 100644
--- a/app/soapbox/features/conversations/containers/conversation_container.js
+++ b/app/soapbox/features/conversations/containers/conversation_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import Conversation from '../components/conversation';
import { markConversationRead } from '../../../actions/conversations';
+import Conversation from '../components/conversation';
const mapStateToProps = (state, { conversationId }) => {
const conversation = state.getIn(['conversations', 'items']).find(x => x.get('id') === conversationId);
diff --git a/app/soapbox/features/conversations/containers/conversations_list_container.js b/app/soapbox/features/conversations/containers/conversations_list_container.js
index 57e17d96f..24e19b26e 100644
--- a/app/soapbox/features/conversations/containers/conversations_list_container.js
+++ b/app/soapbox/features/conversations/containers/conversations_list_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import ConversationsList from '../components/conversations_list';
import { expandConversations } from '../../../actions/conversations';
+import ConversationsList from '../components/conversations_list';
const mapStateToProps = state => ({
conversations: state.getIn(['conversations', 'items']),
diff --git a/app/soapbox/features/conversations/index.js b/app/soapbox/features/conversations/index.js
index 1531b37e9..b9e795e51 100644
--- a/app/soapbox/features/conversations/index.js
+++ b/app/soapbox/features/conversations/index.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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 { connectDirectStream } from '../../actions/streaming';
+import Column from '../../components/column';
+import ColumnHeader from '../../components/column_header';
import ConversationsListContainer from './containers/conversations_list_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/crypto_donate/components/crypto_address.js b/app/soapbox/features/crypto_donate/components/crypto_address.js
index 698050cc2..857923346 100644
--- a/app/soapbox/features/crypto_donate/components/crypto_address.js
+++ b/app/soapbox/features/crypto_donate/components/crypto_address.js
@@ -1,12 +1,12 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Icon from 'soapbox/components/icon';
+import { connect } from 'react-redux';
import { openModal } from 'soapbox/actions/modal';
+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 CoinDB from '../utils/coin_db';
import CryptoIcon from './crypto_icon';
export default @connect()
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 40256ce86..e1f834f89 100644
--- a/app/soapbox/features/crypto_donate/components/crypto_donate_panel.js
+++ b/app/soapbox/features/crypto_donate/components/crypto_donate_panel.js
@@ -1,11 +1,11 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import { Link } from 'react-router-dom';
-import { FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { List as ImmutableList } from 'immutable';
import classNames from 'classnames';
+import { List as ImmutableList } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import Icon from 'soapbox/components/icon';
import SiteWallet from './site_wallet';
diff --git a/app/soapbox/features/crypto_donate/components/crypto_icon.js b/app/soapbox/features/crypto_donate/components/crypto_icon.js
index 51573dcea..950776913 100644
--- a/app/soapbox/features/crypto_donate/components/crypto_icon.js
+++ b/app/soapbox/features/crypto_donate/components/crypto_icon.js
@@ -1,6 +1,6 @@
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
const getIcon = ticker => {
try {
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 195a3a146..1f41b9b24 100644
--- a/app/soapbox/features/crypto_donate/components/detailed_crypto_address.js
+++ b/app/soapbox/features/crypto_donate/components/detailed_crypto_address.js
@@ -1,11 +1,11 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import QRCode from 'qrcode.react';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
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 CoinDB from '../utils/coin_db';
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 bd9ba7e99..a1c098366 100644
--- a/app/soapbox/features/crypto_donate/components/site_wallet.js
+++ b/app/soapbox/features/crypto_donate/components/site_wallet.js
@@ -1,10 +1,10 @@
-import React from 'react';
-import { connect } from 'react-redux';
+import { trimStart } from 'lodash';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import { trimStart } from 'lodash';
import CryptoAddress from './crypto_address';
const normalizeAddress = address => {
diff --git a/app/soapbox/features/crypto_donate/index.js b/app/soapbox/features/crypto_donate/index.js
index f3c5d751b..19a20ec1c 100644
--- a/app/soapbox/features/crypto_donate/index.js
+++ b/app/soapbox/features/crypto_donate/index.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import Accordion from 'soapbox/features/ui/components/accordion';
import Column from '../ui/components/column';
import SiteWallet from './components/site_wallet';
diff --git a/app/soapbox/features/developers/apps/create.js b/app/soapbox/features/developers/apps/create.js
index 028d1ffc8..e74ab0fba 100644
--- a/app/soapbox/features/developers/apps/create.js
+++ b/app/soapbox/features/developers/apps/create.js
@@ -1,22 +1,22 @@
-import React from 'react';
+import { Map as ImmutableMap } from 'immutable';
import PropTypes from 'prop-types';
+import React from 'react';
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 { connect } from 'react-redux';
+import { createApp } from 'soapbox/actions/apps';
+import { obtainOAuthToken } from 'soapbox/actions/oauth';
import {
SimpleForm,
TextInput,
SimpleTextarea,
FieldsGroup,
} from 'soapbox/features/forms';
-import { createApp } from 'soapbox/actions/apps';
-import { obtainOAuthToken } from 'soapbox/actions/oauth';
+import Accordion from 'soapbox/features/ui/components/accordion';
+import Column from 'soapbox/features/ui/components/column';
import { getBaseURL } from 'soapbox/utils/accounts';
import { getFeatures } from 'soapbox/utils/features';
-import Accordion from 'soapbox/features/ui/components/accordion';
const messages = defineMessages({
heading: { id: 'column.app_create', defaultMessage: 'Create app' },
diff --git a/app/soapbox/features/developers/developers_challenge.js b/app/soapbox/features/developers/developers_challenge.js
index d4f7e397a..48bc478e6 100644
--- a/app/soapbox/features/developers/developers_challenge.js
+++ b/app/soapbox/features/developers/developers_challenge.js
@@ -1,10 +1,10 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
-import { SimpleForm, TextInput } from 'soapbox/features/forms';
+import { connect } from 'react-redux';
import { changeSetting } from 'soapbox/actions/settings';
import snackbar from 'soapbox/actions/snackbar';
+import { SimpleForm, TextInput } from 'soapbox/features/forms';
import Column from '../ui/components/column';
const messages = defineMessages({
diff --git a/app/soapbox/features/developers/developers_menu.js b/app/soapbox/features/developers/developers_menu.js
index d04cd80eb..f9debe0b0 100644
--- a/app/soapbox/features/developers/developers_menu.js
+++ b/app/soapbox/features/developers/developers_menu.js
@@ -1,11 +1,11 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
-import Icon from 'soapbox/components/icon';
import { changeSetting } from 'soapbox/actions/settings';
import snackbar from 'soapbox/actions/snackbar';
+import Icon from 'soapbox/components/icon';
import Column from '../ui/components/column';
const messages = defineMessages({
diff --git a/app/soapbox/features/developers/index.js b/app/soapbox/features/developers/index.js
index 1302eab92..4aaec5862 100644
--- a/app/soapbox/features/developers/index.js
+++ b/app/soapbox/features/developers/index.js
@@ -1,9 +1,9 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { connect } from 'react-redux';
import { getSettings } from 'soapbox/actions/settings';
-import DevelopersMenu from './developers_menu';
import DevelopersChallenge from './developers_challenge';
+import DevelopersMenu from './developers_menu';
const mapStateToProps = state => {
const settings = getSettings(state);
diff --git a/app/soapbox/features/developers/settings_store.js b/app/soapbox/features/developers/settings_store.js
index 1ac9c7d42..0dfef5ec8 100644
--- a/app/soapbox/features/developers/settings_store.js
+++ b/app/soapbox/features/developers/settings_store.js
@@ -1,14 +1,14 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
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 Column from 'soapbox/features/ui/components/column';
-import { SimpleForm, SimpleTextarea } from 'soapbox/features/forms';
+import { connect } from 'react-redux';
import { showAlertForError } from 'soapbox/actions/alerts';
import { patchMe } from 'soapbox/actions/me';
import { FE_NAME, SETTINGS_UPDATE } from 'soapbox/actions/settings';
+import { SimpleForm, SimpleTextarea } from 'soapbox/features/forms';
+import Column from 'soapbox/features/ui/components/column';
const isJSONValid = text => {
try {
diff --git a/app/soapbox/features/direct_timeline/index.js b/app/soapbox/features/direct_timeline/index.js
index 6e009c656..f704a871a 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 React from 'react';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { directComposeById } from 'soapbox/actions/compose';
import AccountSearch from 'soapbox/components/account_search';
-import StatusListContainer from '../ui/containers/status_list_container';
+import { connectDirectStream } from '../../actions/streaming';
+import { expandDirectTimeline } from '../../actions/timelines';
import Column from '../../components/column';
import ColumnHeader from '../../components/column_header';
-import { expandDirectTimeline } from '../../actions/timelines';
-import { connectDirectStream } from '../../actions/streaming';
+import StatusListContainer from '../ui/containers/status_list_container';
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 a4022e8ad..a2bf036be 100644
--- a/app/soapbox/features/directory/components/account_card.js
+++ b/app/soapbox/features/directory/components/account_card.js
@@ -1,19 +1,19 @@
-import React from 'react';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage, injectIntl } from 'react-intl';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import { makeGetAccount } from 'soapbox/selectors';
+import { connect } from 'react-redux';
+import { getSettings } from 'soapbox/actions/settings';
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 { getSettings } from 'soapbox/actions/settings';
-import { shortNumberFormat } from 'soapbox/utils/numbers';
import ActionButton from 'soapbox/features/ui/components/action_button';
+import { makeGetAccount } from 'soapbox/selectors';
+import { shortNumberFormat } from 'soapbox/utils/numbers';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
diff --git a/app/soapbox/features/directory/index.js b/app/soapbox/features/directory/index.js
index 6a9bfa52b..5c42ddf4a 100644
--- a/app/soapbox/features/directory/index.js
+++ b/app/soapbox/features/directory/index.js
@@ -1,14 +1,14 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl } from 'react-intl';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { List as ImmutableList } from 'immutable';
import classNames from 'classnames';
-import RadioButton from 'soapbox/components/radio_button';
+import { List as ImmutableList } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchDirectory, expandDirectory } from 'soapbox/actions/directory';
-import Column from 'soapbox/features/ui/components/column';
import LoadMore from 'soapbox/components/load_more';
+import RadioButton from 'soapbox/components/radio_button';
+import Column from 'soapbox/features/ui/components/column';
import { getFeatures } from 'soapbox/utils/features';
import AccountCard from './components/account_card';
diff --git a/app/soapbox/features/domain_blocks/index.js b/app/soapbox/features/domain_blocks/index.js
index bbbc9d60f..2b6ede88b 100644
--- a/app/soapbox/features/domain_blocks/index.js
+++ b/app/soapbox/features/domain_blocks/index.js
@@ -1,15 +1,15 @@
-import React from 'react';
-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 ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
-import LoadingIndicator from '../../components/loading_indicator';
-import Column from '../ui/components/column';
-import DomainContainer from '../../containers/domain_container';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchDomainBlocks, expandDomainBlocks } from '../../actions/domain_blocks';
+import LoadingIndicator from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
+import DomainContainer from '../../containers/domain_container';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.domain_blocks', defaultMessage: 'Hidden domains' },
diff --git a/app/soapbox/features/edit_profile/components/profile_preview.js b/app/soapbox/features/edit_profile/components/profile_preview.js
index 69be6a365..f59f65f6c 100644
--- a/app/soapbox/features/edit_profile/components/profile_preview.js
+++ b/app/soapbox/features/edit_profile/components/profile_preview.js
@@ -1,11 +1,11 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
-import { getAcct, isVerified } from 'soapbox/utils/accounts';
import StillImage from 'soapbox/components/still_image';
import VerificationBadge from 'soapbox/components/verification_badge';
+import { getAcct, isVerified } from 'soapbox/utils/accounts';
import { displayFqn } from 'soapbox/utils/state';
const mapStateToProps = state => ({
diff --git a/app/soapbox/features/edit_profile/index.js b/app/soapbox/features/edit_profile/index.js
index 059f6ae51..aa1847aeb 100644
--- a/app/soapbox/features/edit_profile/index.js
+++ b/app/soapbox/features/edit_profile/index.js
@@ -1,16 +1,18 @@
-import React from 'react';
-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 ImmutablePropTypes from 'react-immutable-proptypes';
import {
Map as ImmutableMap,
List as ImmutableList,
} from 'immutable';
import { unescape } from 'lodash';
-import { patchMe } from 'soapbox/actions/me';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { updateNotificationSettings } from 'soapbox/actions/accounts';
+import { patchMe } from 'soapbox/actions/me';
+import snackbar from 'soapbox/actions/snackbar';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import Icon from 'soapbox/components/icon';
import {
SimpleForm,
@@ -20,11 +22,9 @@ import {
FileChooser,
SimpleTextarea,
} from 'soapbox/features/forms';
-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 { isVerified } from 'soapbox/utils/accounts';
+import { getFeatures } from 'soapbox/utils/features';
import resizeImage from 'soapbox/utils/resize_image';
import Column from '../ui/components/column';
import ProfilePreview from './components/profile_preview';
diff --git a/app/soapbox/features/emoji/__tests__/emoji_index-test.js b/app/soapbox/features/emoji/__tests__/emoji_index-test.js
index 9df2d34a0..2ee6c7bf1 100644
--- a/app/soapbox/features/emoji/__tests__/emoji_index-test.js
+++ b/app/soapbox/features/emoji/__tests__/emoji_index-test.js
@@ -1,5 +1,5 @@
-import { pick } from 'lodash';
import { emojiIndex } from 'emoji-mart';
+import { pick } from 'lodash';
import { search } from '../emoji_mart_search_light';
const trimEmojis = emoji => pick(emoji, ['id', 'unified', 'native', 'custom']);
diff --git a/app/soapbox/features/emoji/emoji_compressed.js b/app/soapbox/features/emoji/emoji_compressed.js
index 9a4329807..0e0c93ace 100644
--- a/app/soapbox/features/emoji/emoji_compressed.js
+++ b/app/soapbox/features/emoji/emoji_compressed.js
@@ -6,11 +6,11 @@
// 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 { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data');
+const emojiMap = require('./emoji_map.json');
const { unicodeToFilename } = require('./unicode_to_filename');
const { unicodeToUnifiedName } = require('./unicode_to_unified_name');
-const emojiMap = require('./emoji_map.json');
if(data.compressed) {
diff --git a/app/soapbox/features/emoji/emoji_mart_data_light.js b/app/soapbox/features/emoji/emoji_mart_data_light.js
index f8f4c4033..4c60b8f8b 100644
--- a/app/soapbox/features/emoji/emoji_mart_data_light.js
+++ b/app/soapbox/features/emoji/emoji_mart_data_light.js
@@ -1,8 +1,8 @@
// The output of this module is designed to mimic emoji-mart's
// "data" object, such that we can use it for a light version of emoji-mart's
// emojiIndex.search functionality.
-const { unicodeToUnifiedName } = require('./unicode_to_unified_name');
const [ shortCodesToEmojiData, skins, categories, short_names ] = require('./emoji_compressed');
+const { unicodeToUnifiedName } = require('./unicode_to_unified_name');
const emojis = {};
diff --git a/app/soapbox/features/emoji/emoji_picker.js b/app/soapbox/features/emoji/emoji_picker.js
index 044d38cb2..8725d39ec 100644
--- a/app/soapbox/features/emoji/emoji_picker.js
+++ b/app/soapbox/features/emoji/emoji_picker.js
@@ -1,5 +1,5 @@
-import Picker from 'emoji-mart/dist-es/components/picker/picker';
import Emoji from 'emoji-mart/dist-es/components/emoji/emoji';
+import Picker from 'emoji-mart/dist-es/components/picker/picker';
export {
Picker,
diff --git a/app/soapbox/features/export_data/components/csv_exporter.js b/app/soapbox/features/export_data/components/csv_exporter.js
index 41973fcfd..84029cd22 100644
--- a/app/soapbox/features/export_data/components/csv_exporter.js
+++ b/app/soapbox/features/export_data/components/csv_exporter.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { SimpleForm } from 'soapbox/features/forms';
export default @connect()
diff --git a/app/soapbox/features/export_data/index.js b/app/soapbox/features/export_data/index.js
index 4dccb8a19..7fcadd451 100644
--- a/app/soapbox/features/export_data/index.js
+++ b/app/soapbox/features/export_data/index.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import {
exportFollows,
exportBlocks,
diff --git a/app/soapbox/features/external_login/components/external_login_form.js b/app/soapbox/features/external_login/components/external_login_form.js
index 9166f7c2a..86516bcde 100644
--- a/app/soapbox/features/external_login/components/external_login_form.js
+++ b/app/soapbox/features/external_login/components/external_login_form.js
@@ -1,10 +1,10 @@
import React from 'react';
-import { connect } from 'react-redux';
-import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { SimpleForm, FieldsGroup, TextInput } from 'soapbox/features/forms';
+import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
import { createAppAndRedirect, loginWithCode } from 'soapbox/actions/external_auth';
import LoadingIndicator from 'soapbox/components/loading_indicator';
+import { SimpleForm, FieldsGroup, TextInput } from 'soapbox/features/forms';
const messages = defineMessages({
instanceLabel: { id: 'login.fields.instance_label', defaultMessage: 'Instance' },
diff --git a/app/soapbox/features/favourited_statuses/index.js b/app/soapbox/features/favourited_statuses/index.js
index bdbbe1c01..173577571 100644
--- a/app/soapbox/features/favourited_statuses/index.js
+++ b/app/soapbox/features/favourited_statuses/index.js
@@ -1,17 +1,17 @@
-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 { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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 { fetchFavouritedStatuses, expandFavouritedStatuses, fetchAccountFavouritedStatuses, expandAccountFavouritedStatuses } from '../../actions/favourites';
import LoadingIndicator from '../../components/loading_indicator';
+import StatusList from '../../components/status_list';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.favourited_statuses', defaultMessage: 'Liked posts' },
diff --git a/app/soapbox/features/federation_restrictions/components/instance_restrictions.js b/app/soapbox/features/federation_restrictions/components/instance_restrictions.js
index 85ef52a30..f6a7b3e3b 100644
--- a/app/soapbox/features/federation_restrictions/components/instance_restrictions.js
+++ b/app/soapbox/features/federation_restrictions/components/instance_restrictions.js
@@ -1,11 +1,11 @@
'use strict';
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import Icon from 'soapbox/components/icon';
const hasRestrictions = remoteInstance => {
diff --git a/app/soapbox/features/federation_restrictions/components/restricted_instance.js b/app/soapbox/features/federation_restrictions/components/restricted_instance.js
index baf6b1b46..4ff165f9c 100644
--- a/app/soapbox/features/federation_restrictions/components/restricted_instance.js
+++ b/app/soapbox/features/federation_restrictions/components/restricted_instance.js
@@ -1,10 +1,10 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import classNames from 'classnames';
-import { makeGetRemoteInstance } from 'soapbox/selectors';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import Icon from 'soapbox/components/icon';
+import { makeGetRemoteInstance } from 'soapbox/selectors';
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 301323217..17826c873 100644
--- a/app/soapbox/features/federation_restrictions/index.js
+++ b/app/soapbox/features/federation_restrictions/index.js
@@ -1,12 +1,12 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl } from 'react-intl';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Accordion from 'soapbox/features/ui/components/accordion';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import ScrollableList from 'soapbox/components/scrollable_list';
-import { federationRestrictionsDisclosed } from 'soapbox/utils/state';
+import Accordion from 'soapbox/features/ui/components/accordion';
import { makeGetHosts } from 'soapbox/selectors';
+import { federationRestrictionsDisclosed } from 'soapbox/utils/state';
import Column from '../ui/components/column';
import RestrictedInstance from './components/restricted_instance';
diff --git a/app/soapbox/features/filters/index.js b/app/soapbox/features/filters/index.js
index 8848bd116..73a5952ed 100644
--- a/app/soapbox/features/filters/index.js
+++ b/app/soapbox/features/filters/index.js
@@ -1,9 +1,11 @@
-import React from 'react';
-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 React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import snackbar from 'soapbox/actions/snackbar';
import Button from 'soapbox/components/button';
+import Icon from 'soapbox/components/icon';
import {
SimpleForm,
SimpleInput,
@@ -11,10 +13,8 @@ import {
SelectDropdown,
Checkbox,
} 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 ScrollableList from '../../components/scrollable_list';
import Column from '../ui/components/column';
import ColumnSubheading from '../ui/components/column_subheading';
diff --git a/app/soapbox/features/follow_recommendations/components/account.js b/app/soapbox/features/follow_recommendations/components/account.js
index 1796aceea..f8a13c7b8 100644
--- a/app/soapbox/features/follow_recommendations/components/account.js
+++ b/app/soapbox/features/follow_recommendations/components/account.js
@@ -1,13 +1,13 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
-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 ActionButton from 'soapbox/features/ui/components/action_button';
+import { makeGetAccount } from 'soapbox/selectors';
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
diff --git a/app/soapbox/features/follow_recommendations/components/follow_recommendations_container.js b/app/soapbox/features/follow_recommendations/components/follow_recommendations_container.js
index 657780f43..757902983 100644
--- a/app/soapbox/features/follow_recommendations/components/follow_recommendations_container.js
+++ b/app/soapbox/features/follow_recommendations/components/follow_recommendations_container.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import Button from 'soapbox/components/button';
import FollowRecommendationsList from './follow_recommendations_list';
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 963ff52d4..6f5fbbd61 100644
--- a/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js
+++ b/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js
@@ -1,9 +1,9 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchSuggestions } from 'soapbox/actions/suggestions';
import LoadingIndicator from 'soapbox/components/loading_indicator';
import Account from './account';
diff --git a/app/soapbox/features/follow_recommendations/index.js b/app/soapbox/features/follow_recommendations/index.js
index b3aa44ea6..2b7437433 100644
--- a/app/soapbox/features/follow_recommendations/index.js
+++ b/app/soapbox/features/follow_recommendations/index.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import Column from 'soapbox/features/ui/components/column';
import FollowRecommendationsContainer from './components/follow_recommendations_container';
diff --git a/app/soapbox/features/follow_requests/components/account_authorize.js b/app/soapbox/features/follow_requests/components/account_authorize.js
index 39f7f0526..2edd8e763 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 React from 'react';
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 { defineMessages, injectIntl } from 'react-intl';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
+import Permalink from '../../../components/permalink';
const messages = defineMessages({
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
diff --git a/app/soapbox/features/follow_requests/containers/account_authorize_container.js b/app/soapbox/features/follow_requests/containers/account_authorize_container.js
index 24765a6bc..8245623af 100644
--- a/app/soapbox/features/follow_requests/containers/account_authorize_container.js
+++ b/app/soapbox/features/follow_requests/containers/account_authorize_container.js
@@ -1,7 +1,7 @@
import { connect } from 'react-redux';
+import { authorizeFollowRequest, rejectFollowRequest } from '../../../actions/accounts';
import { makeGetAccount } from '../../../selectors';
import AccountAuthorize from '../components/account_authorize';
-import { authorizeFollowRequest, rejectFollowRequest } from '../../../actions/accounts';
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
diff --git a/app/soapbox/features/follow_requests/index.js b/app/soapbox/features/follow_requests/index.js
index 54afdea78..a41650914 100644
--- a/app/soapbox/features/follow_requests/index.js
+++ b/app/soapbox/features/follow_requests/index.js
@@ -1,14 +1,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 PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
-import LoadingIndicator from '../../components/loading_indicator';
-import Column from '../ui/components/column';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchFollowRequests, expandFollowRequests } from '../../actions/accounts';
+import LoadingIndicator from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
+import Column from '../ui/components/column';
import AccountAuthorizeContainer from './containers/account_authorize_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/followers/index.js b/app/soapbox/features/followers/index.js
index a9a2f7abd..db8562a35 100644
--- a/app/soapbox/features/followers/index.js
+++ b/app/soapbox/features/followers/index.js
@@ -1,23 +1,23 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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 { getFollowDifference } from 'soapbox/utils/accounts';
import {
fetchAccount,
fetchFollowers,
expandFollowers,
fetchAccountByUsername,
} from '../../actions/accounts';
+import LoadingIndicator from '../../components/loading_indicator';
+import ScrollableList from '../../components/scrollable_list';
import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
-import ScrollableList from '../../components/scrollable_list';
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 48bad4e07..baf4b76be 100644
--- a/app/soapbox/features/following/index.js
+++ b/app/soapbox/features/following/index.js
@@ -1,23 +1,23 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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 { getFollowDifference } from 'soapbox/utils/accounts';
import {
fetchAccount,
fetchFollowing,
expandFollowing,
fetchAccountByUsername,
} from '../../actions/accounts';
+import LoadingIndicator from '../../components/loading_indicator';
+import ScrollableList from '../../components/scrollable_list';
import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
-import ScrollableList from '../../components/scrollable_list';
const messages = defineMessages({
heading: { id: 'column.following', defaultMessage: 'Following' },
diff --git a/app/soapbox/features/forms/index.js b/app/soapbox/features/forms/index.js
index 816a5e61a..51c59c7ba 100644
--- a/app/soapbox/features/forms/index.js
+++ b/app/soapbox/features/forms/index.js
@@ -1,8 +1,8 @@
+import classNames from 'classnames';
+import PropTypes from 'prop-types';
import React, { useState } from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
-import PropTypes from 'prop-types';
-import classNames from 'classnames';
import { v4 as uuidv4 } from 'uuid';
export const FormPropTypes = {
diff --git a/app/soapbox/features/generic_not_found/index.js b/app/soapbox/features/generic_not_found/index.js
index 0290be47f..6e2b710f3 100644
--- a/app/soapbox/features/generic_not_found/index.js
+++ b/app/soapbox/features/generic_not_found/index.js
@@ -1,6 +1,6 @@
import React from 'react';
-import Column from '../ui/components/column';
import MissingIndicator from '../../components/missing_indicator';
+import Column from '../ui/components/column';
const GenericNotFound = () => (
diff --git a/app/soapbox/features/groups/create/index.js b/app/soapbox/features/groups/create/index.js
index a8ed653bf..2e9597921 100644
--- a/app/soapbox/features/groups/create/index.js
+++ b/app/soapbox/features/groups/create/index.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { changeValue, submit, reset } from '../../../actions/group_editor';
const messages = defineMessages({
diff --git a/app/soapbox/features/groups/edit/index.js b/app/soapbox/features/groups/edit/index.js
index 4ff477fa6..0cdb4742d 100644
--- a/app/soapbox/features/groups/edit/index.js
+++ b/app/soapbox/features/groups/edit/index.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
+import classNames from 'classnames';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl } from 'react-intl';
-import classNames from 'classnames';
+import { connect } from 'react-redux';
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';
+import LoadingIndicator from '../../../components/loading_indicator';
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 e1f76e0ad..5245863cc 100644
--- a/app/soapbox/features/groups/index/card.js
+++ b/app/soapbox/features/groups/index/card.js
@@ -2,8 +2,8 @@ import React from 'react';
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 { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import { shortNumberFormat } from '../../../utils/numbers';
const messages = defineMessages({
diff --git a/app/soapbox/features/groups/index/index.js b/app/soapbox/features/groups/index/index.js
index b432f185a..aca919183 100644
--- a/app/soapbox/features/groups/index/index.js
+++ b/app/soapbox/features/groups/index/index.js
@@ -1,11 +1,11 @@
-import React from 'react';
-import { connect } from 'react-redux';
-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 { Link } from 'react-router-dom';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+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 { Link } from 'react-router-dom';
import { fetchGroups } from '../../../actions/groups';
import GroupCreate from '../create';
import GroupCard from './card';
diff --git a/app/soapbox/features/groups/members/index.js b/app/soapbox/features/groups/members/index.js
index 4e5731502..c380b7793 100644
--- a/app/soapbox/features/groups/members/index.js
+++ b/app/soapbox/features/groups/members/index.js
@@ -1,18 +1,18 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
-import LoadingIndicator from '../../../components/loading_indicator';
+import { connect } from 'react-redux';
import {
fetchMembers,
expandMembers,
} from '../../../actions/groups';
+import LoadingIndicator from '../../../components/loading_indicator';
+import ScrollableList from '../../../components/scrollable_list';
import AccountContainer from '../../../containers/account_container';
import Column from '../../ui/components/column';
-import ScrollableList from '../../../components/scrollable_list';
const mapStateToProps = (state, { params: { id } }) => ({
group: state.getIn(['groups', id]),
diff --git a/app/soapbox/features/groups/removed_accounts/index.js b/app/soapbox/features/groups/removed_accounts/index.js
index 9bfe11b86..4b0be3c33 100644
--- a/app/soapbox/features/groups/removed_accounts/index.js
+++ b/app/soapbox/features/groups/removed_accounts/index.js
@@ -1,20 +1,20 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
import { defineMessages, injectIntl } from 'react-intl';
-import LoadingIndicator from '../../../components/loading_indicator';
+import { connect } from 'react-redux';
import {
fetchRemovedAccounts,
expandRemovedAccounts,
removeRemovedAccount,
} from '../../../actions/groups';
+import LoadingIndicator from '../../../components/loading_indicator';
+import ScrollableList from '../../../components/scrollable_list';
import AccountContainer from '../../../containers/account_container';
import Column from '../../ui/components/column';
-import ScrollableList from '../../../components/scrollable_list';
const messages = defineMessages({
remove: { id: 'groups.removed_accounts', defaultMessage: 'Allow joining' },
diff --git a/app/soapbox/features/groups/sidebar_panel/item.js b/app/soapbox/features/groups/sidebar_panel/item.js
index 995371ef8..d3b666b55 100644
--- a/app/soapbox/features/groups/sidebar_panel/item.js
+++ b/app/soapbox/features/groups/sidebar_panel/item.js
@@ -2,8 +2,8 @@ import React from 'react';
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 { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import { shortNumberFormat } from '../../../utils/numbers';
const messages = defineMessages({
diff --git a/app/soapbox/features/groups/timeline/components/header.js b/app/soapbox/features/groups/timeline/components/header.js
index 6ff1a8e84..c08fe6028 100644
--- a/app/soapbox/features/groups/timeline/components/header.js
+++ b/app/soapbox/features/groups/timeline/components/header.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
import { NavLink } from 'react-router-dom';
diff --git a/app/soapbox/features/groups/timeline/components/panel.js b/app/soapbox/features/groups/timeline/components/panel.js
index 3f431f559..6505c2534 100644
--- a/app/soapbox/features/groups/timeline/components/panel.js
+++ b/app/soapbox/features/groups/timeline/components/panel.js
@@ -1,6 +1,6 @@
import React from 'react';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { injectIntl, defineMessages } from 'react-intl';
import Icon from 'soapbox/components/icon';
diff --git a/app/soapbox/features/groups/timeline/containers/header_container.js b/app/soapbox/features/groups/timeline/containers/header_container.js
index 3602eebe9..e8511aa23 100644
--- a/app/soapbox/features/groups/timeline/containers/header_container.js
+++ b/app/soapbox/features/groups/timeline/containers/header_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import Header from '../components/header';
import { joinGroup, leaveGroup } from '../../../../actions/groups';
+import Header from '../components/header';
const mapStateToProps = (state, { groupId }) => ({
group: state.getIn(['groups', groupId]),
diff --git a/app/soapbox/features/groups/timeline/index.js b/app/soapbox/features/groups/timeline/index.js
index 4e89e4961..ad1ff16fe 100644
--- a/app/soapbox/features/groups/timeline/index.js
+++ b/app/soapbox/features/groups/timeline/index.js
@@ -1,17 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { Link } from 'react-router-dom';
import PropTypes from 'prop-types';
+import React from 'react';
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 { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
+import ComposeFormContainer from '../../../../soapbox/features/compose/containers/compose_form_container';
import { connectGroupStream } from '../../../actions/streaming';
import { expandGroupTimeline } from '../../../actions/timelines';
-import MissingIndicator from '../../../components/missing_indicator';
-import LoadingIndicator from '../../../components/loading_indicator';
-import ComposeFormContainer from '../../../../soapbox/features/compose/containers/compose_form_container';
import Avatar from '../../../components/avatar';
+import Column from '../../../components/column';
+import LoadingIndicator from '../../../components/loading_indicator';
+import MissingIndicator from '../../../components/missing_indicator';
+import StatusListContainer from '../../ui/containers/status_list_container';
const mapStateToProps = (state, props) => {
const me = state.get('me');
diff --git a/app/soapbox/features/hashtag_timeline/index.js b/app/soapbox/features/hashtag_timeline/index.js
index 860313ab1..6f5b13086 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 PropTypes from 'prop-types';
+import React from 'react';
+import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { connectHashtagStream } from '../../actions/streaming';
+import { expandHashtagTimeline, clearTimeline } from '../../actions/timelines';
import Column from '../../components/column';
import ColumnHeader from '../../components/column_header';
-import { expandHashtagTimeline, clearTimeline } from '../../actions/timelines';
-import { connectHashtagStream } from '../../actions/streaming';
+import StatusListContainer from '../ui/containers/status_list_container';
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 990f84fa5..ea90bb4ae 100644
--- a/app/soapbox/features/home_timeline/components/column_settings.js
+++ b/app/soapbox/features/home_timeline/components/column_settings.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
import IconButton from 'soapbox/components/icon_button';
diff --git a/app/soapbox/features/home_timeline/containers/column_settings_container.js b/app/soapbox/features/home_timeline/containers/column_settings_container.js
index 69217a54c..551f90604 100644
--- a/app/soapbox/features/home_timeline/containers/column_settings_container.js
+++ b/app/soapbox/features/home_timeline/containers/column_settings_container.js
@@ -1,10 +1,10 @@
import { connect } from 'react-redux';
-import ColumnSettings from '../components/column_settings';
import {
getSettings,
changeSetting,
saveSettings,
} from '../../../actions/settings';
+import ColumnSettings from '../components/column_settings';
const mapStateToProps = state => ({
settings: getSettings(state).get('home'),
diff --git a/app/soapbox/features/home_timeline/index.js b/app/soapbox/features/home_timeline/index.js
index 3fa52fac7..15e4b1b6e 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 PropTypes from 'prop-types';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { Link } from 'react-router-dom';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import { getFeatures } from 'soapbox/utils/features';
+import { expandHomeTimeline } from '../../actions/timelines';
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/components/csv_importer.js b/app/soapbox/features/import_data/components/csv_importer.js
index aa7d967f4..4e931074d 100644
--- a/app/soapbox/features/import_data/components/csv_importer.js
+++ b/app/soapbox/features/import_data/components/csv_importer.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import {
SimpleInput,
SimpleForm,
diff --git a/app/soapbox/features/import_data/index.js b/app/soapbox/features/import_data/index.js
index 3b6a48b9c..c025f4b97 100644
--- a/app/soapbox/features/import_data/index.js
+++ b/app/soapbox/features/import_data/index.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import {
importFollows,
importBlocks,
diff --git a/app/soapbox/features/introduction/index.js b/app/soapbox/features/introduction/index.js
index 55408ceef..87efeda23 100644
--- a/app/soapbox/features/introduction/index.js
+++ b/app/soapbox/features/introduction/index.js
@@ -1,9 +1,9 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import ReactSwipeableViews from 'react-swipeable-views';
import classNames from 'classnames';
-import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import ReactSwipeableViews from 'react-swipeable-views';
import { closeOnboarding } from '../../actions/onboarding';
const FrameWelcome = ({ domain, onNext }) => (
diff --git a/app/soapbox/features/landing_page/index.js b/app/soapbox/features/landing_page/index.js
index 875bcd75b..474b03380 100644
--- a/app/soapbox/features/landing_page/index.js
+++ b/app/soapbox/features/landing_page/index.js
@@ -1,7 +1,7 @@
import React from 'react';
-import { connect } from 'react-redux';
-import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
import RegistrationForm from '../auth_login/components/registration_form';
import SiteBanner from '../public_layout/components/site_banner';
diff --git a/app/soapbox/features/list_adder/components/account.js b/app/soapbox/features/list_adder/components/account.js
index 737afc6a4..3c00369f1 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 ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { injectIntl } from 'react-intl';
-import { makeGetAccount } from '../../../selectors';
+import { connect } from 'react-redux';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
+import { makeGetAccount } from '../../../selectors';
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 fe7b6eca0..aa6968bcc 100644
--- a/app/soapbox/features/list_adder/components/list.js
+++ b/app/soapbox/features/list_adder/components/list.js
@@ -1,12 +1,12 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import React from 'react';
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 Icon from 'soapbox/components/icon';
-import IconButton from '../../../components/icon_button';
import { removeFromListAdder, addToListAdder } from '../../../actions/lists';
+import IconButton from '../../../components/icon_button';
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 e8c456e44..67a32b306 100644
--- a/app/soapbox/features/list_adder/index.js
+++ b/app/soapbox/features/list_adder/index.js
@@ -1,9 +1,9 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
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 { connect } from 'react-redux';
import { createSelector } from 'reselect';
import IconButton from 'soapbox/components/icon_button';
import { setupListAdder, resetListAdder } from '../../actions/lists';
diff --git a/app/soapbox/features/list_editor/components/account.js b/app/soapbox/features/list_editor/components/account.js
index 332244b14..134e82b16 100644
--- a/app/soapbox/features/list_editor/components/account.js
+++ b/app/soapbox/features/list_editor/components/account.js
@@ -1,14 +1,14 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
-import { makeGetAccount } from '../../../selectors';
+import { connect } from 'react-redux';
+import { removeFromListEditor, addToListEditor } from '../../../actions/lists';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
-import { removeFromListEditor, addToListEditor } from '../../../actions/lists';
+import { makeGetAccount } from '../../../selectors';
const messages = defineMessages({
remove: { id: 'lists.account.remove', defaultMessage: 'Remove from list' },
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 10e43e0d8..6d0886c2b 100644
--- a/app/soapbox/features/list_editor/components/edit_list_form.js
+++ b/app/soapbox/features/list_editor/components/edit_list_form.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { changeListEditorTitle, submitListEditor } from '../../../actions/lists';
import Button from '../../../components/button';
diff --git a/app/soapbox/features/list_editor/components/search.js b/app/soapbox/features/list_editor/components/search.js
index d3dd6a653..dee15ea80 100644
--- a/app/soapbox/features/list_editor/components/search.js
+++ b/app/soapbox/features/list_editor/components/search.js
@@ -1,10 +1,10 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import Button from 'soapbox/components/button';
+import Icon from 'soapbox/components/icon';
import { fetchListSuggestions, clearListSuggestions, changeListSuggestions } from '../../../actions/lists';
const messages = defineMessages({
diff --git a/app/soapbox/features/list_editor/index.js b/app/soapbox/features/list_editor/index.js
index 203c194ca..8fc973ef1 100644
--- a/app/soapbox/features/list_editor/index.js
+++ b/app/soapbox/features/list_editor/index.js
@@ -1,15 +1,15 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
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 { connect } from 'react-redux';
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 Search from './components/search';
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 3305d8ecf..898006e0b 100644
--- a/app/soapbox/features/list_timeline/index.js
+++ b/app/soapbox/features/list_timeline/index.js
@@ -1,17 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
-import Column from 'soapbox/features/ui/components/column';
+import { connect } from 'react-redux';
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 Column from 'soapbox/features/ui/components/column';
import { fetchList, deleteList } from '../../actions/lists';
import { openModal } from '../../actions/modal';
-import MissingIndicator from '../../components/missing_indicator';
+import { connectListStream } from '../../actions/streaming';
+import { expandListTimeline } from '../../actions/timelines';
import LoadingIndicator from '../../components/loading_indicator';
+import MissingIndicator from '../../components/missing_indicator';
+import StatusListContainer from '../ui/containers/status_list_container';
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 427967ea3..790feee92 100644
--- a/app/soapbox/features/lists/components/new_list_form.js
+++ b/app/soapbox/features/lists/components/new_list_form.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { changeListEditorTitle, submitListEditor } from '../../../actions/lists';
import Button from '../../../components/button';
diff --git a/app/soapbox/features/lists/index.js b/app/soapbox/features/lists/index.js
index 3ce26212a..f665fc97f 100644
--- a/app/soapbox/features/lists/index.js
+++ b/app/soapbox/features/lists/index.js
@@ -1,16 +1,16 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import LoadingIndicator from '../../components/loading_indicator';
-import Column from '../ui/components/column';
import { fetchLists } from '../../actions/lists';
+import LoadingIndicator from '../../components/loading_indicator';
+import ScrollableList from '../../components/scrollable_list';
+import Column from '../ui/components/column';
import ColumnLink from '../ui/components/column_link';
import ColumnSubheading from '../ui/components/column_subheading';
-import ScrollableList from '../../components/scrollable_list';
import NewListForm from './components/new_list_form';
const messages = defineMessages({
diff --git a/app/soapbox/features/mutes/index.js b/app/soapbox/features/mutes/index.js
index 26278ec26..941d9d2eb 100644
--- a/app/soapbox/features/mutes/index.js
+++ b/app/soapbox/features/mutes/index.js
@@ -1,15 +1,15 @@
-import React from 'react';
-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 ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
-import LoadingIndicator from '../../components/loading_indicator';
-import Column from '../ui/components/column';
-import AccountContainer from '../../containers/account_container';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchMutes, expandMutes } from '../../actions/mutes';
+import LoadingIndicator from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
+import AccountContainer from '../../containers/account_container';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.mutes', defaultMessage: 'Muted users' },
diff --git a/app/soapbox/features/new_status/index.js b/app/soapbox/features/new_status/index.js
index db53bb4ca..b0023ca76 100644
--- a/app/soapbox/features/new_status/index.js
+++ b/app/soapbox/features/new_status/index.js
@@ -1,7 +1,7 @@
+import PropTypes from 'prop-types';
import React from 'react';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
-import PropTypes from 'prop-types';
import { openModal } from '../../actions/modal';
const mapDispatchToProps = dispatch => ({
diff --git a/app/soapbox/features/notifications/components/clear_column_button.js b/app/soapbox/features/notifications/components/clear_column_button.js
index bbf0e99bf..4113e6dab 100644
--- a/app/soapbox/features/notifications/components/clear_column_button.js
+++ b/app/soapbox/features/notifications/components/clear_column_button.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import Icon from 'soapbox/components/icon';
diff --git a/app/soapbox/features/notifications/components/column_settings.js b/app/soapbox/features/notifications/components/column_settings.js
index 06cba25df..8c584710c 100644
--- a/app/soapbox/features/notifications/components/column_settings.js
+++ b/app/soapbox/features/notifications/components/column_settings.js
@@ -1,11 +1,11 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
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 SettingToggle from './setting_toggle';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/notifications/components/filter_bar.js b/app/soapbox/features/notifications/components/filter_bar.js
index 33d4f41f7..65a1354e3 100644
--- a/app/soapbox/features/notifications/components/filter_bar.js
+++ b/app/soapbox/features/notifications/components/filter_bar.js
@@ -1,8 +1,8 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
-import Icon from 'soapbox/components/icon';
import FilterBar from 'soapbox/components/filter_bar';
+import Icon from 'soapbox/components/icon';
const messages = defineMessages({
all: { id: 'notifications.filter.all', defaultMessage: 'All' },
diff --git a/app/soapbox/features/notifications/components/follow_request.js b/app/soapbox/features/notifications/components/follow_request.js
index 430f6f21b..bebbe9ab9 100644
--- a/app/soapbox/features/notifications/components/follow_request.js
+++ b/app/soapbox/features/notifications/components/follow_request.js
@@ -1,12 +1,12 @@
+import PropTypes from 'prop-types';
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 { defineMessages, injectIntl } from 'react-intl';
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 Permalink from 'soapbox/components/permalink';
const messages = defineMessages({
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
diff --git a/app/soapbox/features/notifications/components/multi_setting_toggle.js b/app/soapbox/features/notifications/components/multi_setting_toggle.js
index 9eae3d599..81a6f347d 100644
--- a/app/soapbox/features/notifications/components/multi_setting_toggle.js
+++ b/app/soapbox/features/notifications/components/multi_setting_toggle.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import Toggle from 'react-toggle';
diff --git a/app/soapbox/features/notifications/components/notification.js b/app/soapbox/features/notifications/components/notification.js
index cdf0432a9..ef72bb8ed 100644
--- a/app/soapbox/features/notifications/components/notification.js
+++ b/app/soapbox/features/notifications/components/notification.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { HotKeys } from 'react-hotkeys';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { HotKeys } from 'react-hotkeys';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, FormattedMessage } from 'react-intl';
import Icon from 'soapbox/components/icon';
import emojify from 'soapbox/features/emoji/emoji';
-import StatusContainer from '../../../containers/status_container';
-import AccountContainer from '../../../containers/account_container';
import Permalink from '../../../components/permalink';
+import AccountContainer from '../../../containers/account_container';
+import StatusContainer from '../../../containers/status_container';
import FollowRequestContainer from '../containers/follow_request_container';
const notificationForScreenReader = (intl, message, timestamp) => {
diff --git a/app/soapbox/features/notifications/components/setting_toggle.js b/app/soapbox/features/notifications/components/setting_toggle.js
index c9e649b6c..5b992092f 100644
--- a/app/soapbox/features/notifications/components/setting_toggle.js
+++ b/app/soapbox/features/notifications/components/setting_toggle.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Toggle from 'react-toggle';
diff --git a/app/soapbox/features/notifications/containers/column_settings_container.js b/app/soapbox/features/notifications/containers/column_settings_container.js
index e9c2e2d3d..e1eaf9abb 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 { connect } from 'react-redux';
import { getFeatures } from 'soapbox/utils/features';
-import ColumnSettings from '../components/column_settings';
-import { getSettings, changeSetting } from '../../../actions/settings';
+import { openModal } from '../../../actions/modal';
import { setFilter } from '../../../actions/notifications';
import { clearNotifications } from '../../../actions/notifications';
import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications';
-import { openModal } from '../../../actions/modal';
+import { getSettings, changeSetting } from '../../../actions/settings';
+import ColumnSettings from '../components/column_settings';
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 61e0785b0..7e19b75d0 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 { getSettings } from 'soapbox/actions/settings';
import { getFeatures } from 'soapbox/utils/features';
-import FilterBar from '../components/filter_bar';
import { setFilter } from '../../../actions/notifications';
+import FilterBar from '../components/filter_bar';
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 a929cad16..65d074764 100644
--- a/app/soapbox/features/notifications/containers/follow_request_container.js
+++ b/app/soapbox/features/notifications/containers/follow_request_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import { makeGetAccount } from 'soapbox/selectors';
import { authorizeFollowRequest, rejectFollowRequest } from 'soapbox/actions/accounts';
+import { makeGetAccount } from 'soapbox/selectors';
import FollowRequest from '../components/follow_request';
const makeMapStateToProps = () => {
diff --git a/app/soapbox/features/notifications/containers/notification_container.js b/app/soapbox/features/notifications/containers/notification_container.js
index 14be8faf6..20780407d 100644
--- a/app/soapbox/features/notifications/containers/notification_container.js
+++ b/app/soapbox/features/notifications/containers/notification_container.js
@@ -1,8 +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';
import { mentionCompose } from '../../../actions/compose';
import {
reblog,
@@ -10,10 +7,13 @@ import {
unreblog,
unfavourite,
} from '../../../actions/interactions';
+import { openModal } from '../../../actions/modal';
import {
hideStatus,
revealStatus,
} from '../../../actions/statuses';
+import { makeGetNotification } from '../../../selectors';
+import Notification from '../components/notification';
const makeMapStateToProps = () => {
const getNotification = makeGetNotification();
diff --git a/app/soapbox/features/notifications/index.js b/app/soapbox/features/notifications/index.js
index c98c83565..28f1e3fd8 100644
--- a/app/soapbox/features/notifications/index.js
+++ b/app/soapbox/features/notifications/index.js
@@ -1,25 +1,25 @@
-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 { createSelector } from 'reselect';
import { List as ImmutableList } from 'immutable';
import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { createSelector } from 'reselect';
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 PlaceholderNotification from 'soapbox/features/placeholder/components/placeholder_notification';
import {
expandNotifications,
scrollTopNotifications,
dequeueNotifications,
} from '../../actions/notifications';
import Column from '../../components/column';
-import FilterBarContainer from './containers/filter_bar_container';
+import LoadGap from '../../components/load_gap';
+import ScrollableList from '../../components/scrollable_list';
+import TimelineQueueButtonHeader from '../../components/timeline_queue_button_header';
import ColumnSettingsContainer from './containers/column_settings_container';
+import FilterBarContainer from './containers/filter_bar_container';
import NotificationContainer from './containers/notification_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/pinned_statuses/index.js b/app/soapbox/features/pinned_statuses/index.js
index 6570ebd65..0a74a1212 100644
--- a/app/soapbox/features/pinned_statuses/index.js
+++ b/app/soapbox/features/pinned_statuses/index.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.pins', defaultMessage: 'Pinned posts' },
diff --git a/app/soapbox/features/placeholder/components/placeholder_avatar.js b/app/soapbox/features/placeholder/components/placeholder_avatar.js
index 8c9360321..8b759e1be 100644
--- a/app/soapbox/features/placeholder/components/placeholder_avatar.js
+++ b/app/soapbox/features/placeholder/components/placeholder_avatar.js
@@ -1,6 +1,6 @@
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
export default class Avatar extends React.PureComponent {
diff --git a/app/soapbox/features/placeholder/components/placeholder_display_name.js b/app/soapbox/features/placeholder/components/placeholder_display_name.js
index 96216ffab..8958c36da 100644
--- a/app/soapbox/features/placeholder/components/placeholder_display_name.js
+++ b/app/soapbox/features/placeholder/components/placeholder_display_name.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { randomIntFromInterval, generateText } from '../utils';
export default class DisplayName extends React.Component {
diff --git a/app/soapbox/features/placeholder/components/placeholder_media_gallery.js b/app/soapbox/features/placeholder/components/placeholder_media_gallery.js
index d44261e6c..c1b2dd3b9 100644
--- a/app/soapbox/features/placeholder/components/placeholder_media_gallery.js
+++ b/app/soapbox/features/placeholder/components/placeholder_media_gallery.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import { Map as ImmutableMap } from 'immutable';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
export default class PlaceholderMediaGallery extends React.Component {
diff --git a/app/soapbox/features/placeholder/components/placeholder_status_content.js b/app/soapbox/features/placeholder/components/placeholder_status_content.js
index b51fa44c1..ea7b5cb9b 100644
--- a/app/soapbox/features/placeholder/components/placeholder_status_content.js
+++ b/app/soapbox/features/placeholder/components/placeholder_status_content.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { randomIntFromInterval, generateText } from '../utils';
export default class PlaceholderStatusContent extends React.Component {
diff --git a/app/soapbox/features/preferences/index.js b/app/soapbox/features/preferences/index.js
index f806879e1..81278fd16 100644
--- a/app/soapbox/features/preferences/index.js
+++ b/app/soapbox/features/preferences/index.js
@@ -1,11 +1,11 @@
-import React from 'react';
-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 React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { getSettings, changeSetting } from 'soapbox/actions/settings';
-import { getFeatures } from 'soapbox/utils/features';
+import SettingsCheckbox from 'soapbox/components/settings_checkbox';
import {
SimpleForm,
FieldsGroup,
@@ -13,8 +13,8 @@ import {
RadioItem,
SelectDropdown,
} from 'soapbox/features/forms';
-import SettingsCheckbox from 'soapbox/components/settings_checkbox';
import SettingToggle from 'soapbox/features/notifications/components/setting_toggle';
+import { getFeatures } from 'soapbox/utils/features';
import Column from '../ui/components/column';
export const languages = {
diff --git a/app/soapbox/features/public_layout/components/footer.js b/app/soapbox/features/public_layout/components/footer.js
index 1c6d38354..9d525cee7 100644
--- a/app/soapbox/features/public_layout/components/footer.js
+++ b/app/soapbox/features/public_layout/components/footer.js
@@ -1,10 +1,10 @@
-import React from 'react';
-import { connect } from 'react-redux';
+import { List as ImmutableList } from 'immutable';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
-import { List as ImmutableList } from 'immutable';
import { getSettings } from 'soapbox/actions/settings';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
diff --git a/app/soapbox/features/public_layout/components/header.js b/app/soapbox/features/public_layout/components/header.js
index 2c155a13e..92a5badf8 100644
--- a/app/soapbox/features/public_layout/components/header.js
+++ b/app/soapbox/features/public_layout/components/header.js
@@ -1,16 +1,16 @@
+import PropTypes from 'prop-types';
import React from 'react';
-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 { 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 { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
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 LoginForm from 'soapbox/features/auth_login/components/login_form';
+import OtpAuthForm from 'soapbox/features/auth_login/components/otp_auth_form';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import SiteLogo from './site_logo';
const messages = defineMessages({
diff --git a/app/soapbox/features/public_layout/components/site_banner.js b/app/soapbox/features/public_layout/components/site_banner.js
index 2f0775bed..07c71a51a 100644
--- a/app/soapbox/features/public_layout/components/site_banner.js
+++ b/app/soapbox/features/public_layout/components/site_banner.js
@@ -1,6 +1,6 @@
import React from 'react';
-import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
const mapStateToProps = (state, props) => ({
diff --git a/app/soapbox/features/public_layout/components/site_logo.js b/app/soapbox/features/public_layout/components/site_logo.js
index 14a24f691..2bdb9ae9c 100644
--- a/app/soapbox/features/public_layout/components/site_logo.js
+++ b/app/soapbox/features/public_layout/components/site_logo.js
@@ -1,6 +1,6 @@
import React from 'react';
-import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
const mapStateToProps = (state, props) => ({
diff --git a/app/soapbox/features/public_layout/index.js b/app/soapbox/features/public_layout/index.js
index 61dd21331..96896ac08 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 { connect } from 'react-redux';
import { Switch, Route, Redirect } from 'react-router-dom';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import {
NotificationsContainer,
ModalContainer,
} from 'soapbox/features/ui/util/async-components';
-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 LandingPage from '../landing_page';
import Footer from './components/footer';
+import Header from './components/header';
const mapStateToProps = (state, props) => ({
soapbox: getSoapboxConfig(state),
diff --git a/app/soapbox/features/public_timeline/components/column_settings.js b/app/soapbox/features/public_timeline/components/column_settings.js
index 51c267b7f..c980bf412 100644
--- a/app/soapbox/features/public_timeline/components/column_settings.js
+++ b/app/soapbox/features/public_timeline/components/column_settings.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
import IconButton from 'soapbox/components/icon_button';
diff --git a/app/soapbox/features/public_timeline/containers/column_settings_container.js b/app/soapbox/features/public_timeline/containers/column_settings_container.js
index ac001bcab..3bf4cba70 100644
--- a/app/soapbox/features/public_timeline/containers/column_settings_container.js
+++ b/app/soapbox/features/public_timeline/containers/column_settings_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import ColumnSettings from '../components/column_settings';
import { getSettings, changeSetting } from '../../../actions/settings';
+import ColumnSettings from '../components/column_settings';
const mapStateToProps = state => ({
settings: getSettings(state).get('public'),
diff --git a/app/soapbox/features/public_timeline/index.js b/app/soapbox/features/public_timeline/index.js
index 616eb3a6f..c3e488deb 100644
--- a/app/soapbox/features/public_timeline/index.js
+++ b/app/soapbox/features/public_timeline/index.js
@@ -1,16 +1,16 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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 Accordion from 'soapbox/features/ui/components/accordion';
+import { connectPublicStream } from '../../actions/streaming';
+import { expandPublicTimeline } from '../../actions/timelines';
import Column from '../../components/column';
import PinnedHostsPicker from '../remote_timeline/components/pinned_hosts_picker';
-import { expandPublicTimeline } from '../../actions/timelines';
-import { connectPublicStream } from '../../actions/streaming';
+import StatusListContainer from '../ui/containers/status_list_container';
import ColumnSettings from './containers/column_settings_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/register_invite/index.js b/app/soapbox/features/register_invite/index.js
index f9d0bf1e0..1b3119a24 100644
--- a/app/soapbox/features/register_invite/index.js
+++ b/app/soapbox/features/register_invite/index.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import RegistrationForm from 'soapbox/features/auth_login/components/registration_form';
const mapStateToProps = state => {
diff --git a/app/soapbox/features/remote_timeline/components/pinned_hosts_picker.js b/app/soapbox/features/remote_timeline/components/pinned_hosts_picker.js
index a9af2c57c..f75cd827e 100644
--- a/app/soapbox/features/remote_timeline/components/pinned_hosts_picker.js
+++ b/app/soapbox/features/remote_timeline/components/pinned_hosts_picker.js
@@ -1,10 +1,10 @@
'use strict';
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
import { getSettings } from 'soapbox/actions/settings';
diff --git a/app/soapbox/features/remote_timeline/index.js b/app/soapbox/features/remote_timeline/index.js
index 6c123154f..2e2b8b6c5 100644
--- a/app/soapbox/features/remote_timeline/index.js
+++ b/app/soapbox/features/remote_timeline/index.js
@@ -1,12 +1,12 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
-import Column from 'soapbox/features/ui/components/column';
-import IconButton from 'soapbox/components/icon_button';
+import React from 'react';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { getSettings } from 'soapbox/actions/settings';
-import { expandRemoteTimeline } from '../../actions/timelines';
+import IconButton from 'soapbox/components/icon_button';
+import Column from 'soapbox/features/ui/components/column';
import { connectRemoteStream } from '../../actions/streaming';
+import { expandRemoteTimeline } from '../../actions/timelines';
import StatusListContainer from '../ui/containers/status_list_container';
import PinnedHostsPicker from './components/pinned_hosts_picker';
diff --git a/app/soapbox/features/reply_mentions/account.js b/app/soapbox/features/reply_mentions/account.js
index a8c23152e..a48eb13b1 100644
--- a/app/soapbox/features/reply_mentions/account.js
+++ b/app/soapbox/features/reply_mentions/account.js
@@ -1,14 +1,14 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
-import { makeGetAccount } from 'soapbox/selectors';
+import { connect } from 'react-redux';
+import { fetchAccount } from 'soapbox/actions/accounts';
+import { addToMentions, removeFromMentions } from 'soapbox/actions/compose';
import Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
import IconButton from 'soapbox/components/icon_button';
-import { addToMentions, removeFromMentions } from 'soapbox/actions/compose';
-import { fetchAccount } from 'soapbox/actions/accounts';
+import { makeGetAccount } from 'soapbox/selectors';
const messages = defineMessages({
remove: { id: 'reply_mentions.account.remove', defaultMessage: 'Remove from mentions' },
diff --git a/app/soapbox/features/report/components/status_check_box.js b/app/soapbox/features/report/components/status_check_box.js
index 8543d7b0d..a27f0beee 100644
--- a/app/soapbox/features/report/components/status_check_box.js
+++ b/app/soapbox/features/report/components/status_check_box.js
@@ -1,11 +1,11 @@
-import React from 'react';
+import noop from 'lodash/noop';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import Toggle from 'react-toggle';
-import noop from 'lodash/noop';
import StatusContent from '../../../components/status_content';
-import { MediaGallery, Video, Audio } from '../../ui/util/async-components';
import Bundle from '../../ui/components/bundle';
+import { MediaGallery, Video, Audio } from '../../ui/util/async-components';
export default class StatusCheckBox extends React.PureComponent {
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 16fbf9c68..ab1c343dc 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 { connect } from 'react-redux';
import { toggleStatusReport } from '../../../actions/reports';
+import StatusCheckBox from '../components/status_check_box';
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 014572e18..e210ee570 100644
--- a/app/soapbox/features/scheduled_statuses/components/scheduled_status.js
+++ b/app/soapbox/features/scheduled_statuses/components/scheduled_status.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import classNames from 'classnames';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
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 AttachmentThumbs from 'soapbox/components/attachment_thumbs';
import Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
-import AttachmentThumbs from 'soapbox/components/attachment_thumbs';
+import RelativeTimestamp from 'soapbox/components/relative_timestamp';
+import StatusContent from 'soapbox/components/status_content';
import PollPreview from 'soapbox/features/ui/components/poll_preview';
+import { getDomain } from 'soapbox/utils/accounts';
import { buildStatus } from '../builder';
import ScheduledStatusActionBar from './scheduled_status_action_bar';
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 3fcb65e10..415d64fbf 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
@@ -1,14 +1,14 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import IconButton from 'soapbox/components/icon_button';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { openModal } from 'soapbox/actions/modal';
import { cancelScheduledStatus } from 'soapbox/actions/scheduled_statuses';
import { getSettings } from 'soapbox/actions/settings';
+import IconButton from 'soapbox/components/icon_button';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
const messages = defineMessages({
cancel: { id: 'scheduled_status.cancel', defaultMessage: 'Cancel' },
diff --git a/app/soapbox/features/scheduled_statuses/index.js b/app/soapbox/features/scheduled_statuses/index.js
index fd72e59b7..5b4c8a149 100644
--- a/app/soapbox/features/scheduled_statuses/index.js
+++ b/app/soapbox/features/scheduled_statuses/index.js
@@ -1,13 +1,13 @@
-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 { debounce } from 'lodash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import ScrollableList from 'soapbox/components/scrollable_list';
-import Column from '../ui/components/column';
import { fetchScheduledStatuses, expandScheduledStatuses } from '../../actions/scheduled_statuses';
+import Column from '../ui/components/column';
import ScheduledStatus from './components/scheduled_status';
const messages = defineMessages({
diff --git a/app/soapbox/features/search/components/header.js b/app/soapbox/features/search/components/header.js
index 6c047ffb1..14f9d5ddb 100644
--- a/app/soapbox/features/search/components/header.js
+++ b/app/soapbox/features/search/components/header.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { NavLink } from 'react-router-dom';
const mapStateToProps = state => ({
diff --git a/app/soapbox/features/search/index.js b/app/soapbox/features/search/index.js
index cb1148460..6a404f7fc 100644
--- a/app/soapbox/features/search/index.js
+++ b/app/soapbox/features/search/index.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types';
import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
-import PropTypes from 'prop-types';
import Column from 'soapbox/components/column';
import ColumnHeader from 'soapbox/components/column_header';
import SearchContainer from 'soapbox/features/compose/containers/search_container';
diff --git a/app/soapbox/features/security/index.js b/app/soapbox/features/security/index.js
index 35149341a..ffe0f5171 100644
--- a/app/soapbox/features/security/index.js
+++ b/app/soapbox/features/security/index.js
@@ -1,9 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedDate } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedDate } from 'react-intl';
+import { connect } from 'react-redux';
+import {
+ changeEmail,
+ changePassword,
+ deleteAccount,
+} from 'soapbox/actions/security';
+import { fetchOAuthTokens, revokeOAuthTokenById } from 'soapbox/actions/security';
+import { getSettings } from 'soapbox/actions/settings';
+import snackbar from 'soapbox/actions/snackbar';
import Button from 'soapbox/components/button';
import ShowablePassword from 'soapbox/components/showable_password';
import {
@@ -11,14 +19,6 @@ import {
FieldsGroup,
TextInput,
} from 'soapbox/features/forms';
-import {
- changeEmail,
- changePassword,
- deleteAccount,
-} from 'soapbox/actions/security';
-import { fetchOAuthTokens, revokeOAuthTokenById } from 'soapbox/actions/security';
-import snackbar from 'soapbox/actions/snackbar';
-import { getSettings } from 'soapbox/actions/settings';
import { fetchMfa } from '../../actions/mfa';
import Column from '../ui/components/column';
diff --git a/app/soapbox/features/security/mfa_form.js b/app/soapbox/features/security/mfa_form.js
index 9a5374d93..18f4aec49 100644
--- a/app/soapbox/features/security/mfa_form.js
+++ b/app/soapbox/features/security/mfa_form.js
@@ -1,21 +1,19 @@
-import React from 'react';
-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 ImmutablePropTypes from 'react-immutable-proptypes';
import QRCode from 'qrcode.react';
-import LoadingIndicator from 'soapbox/components/loading_indicator';
-import Button from 'soapbox/components/button';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import snackbar from 'soapbox/actions/snackbar';
+import Button from 'soapbox/components/button';
+import LoadingIndicator from 'soapbox/components/loading_indicator';
import ShowablePassword from 'soapbox/components/showable_password';
import {
SimpleForm,
FieldsGroup,
TextInput,
} from 'soapbox/features/forms';
-import ColumnSubheading from '../ui/components/column_subheading';
-import Column from '../ui/components/column';
import {
fetchMfa,
fetchBackupCodes,
@@ -23,6 +21,8 @@ import {
confirmMfa,
disableMfa,
} from '../../actions/mfa';
+import Column from '../ui/components/column';
+import ColumnSubheading from '../ui/components/column_subheading';
/*
Security settings page for user account
diff --git a/app/soapbox/features/server_info/index.js b/app/soapbox/features/server_info/index.js
index f6c6193ae..c8772bee5 100644
--- a/app/soapbox/features/server_info/index.js
+++ b/app/soapbox/features/server_info/index.js
@@ -1,11 +1,11 @@
+import PropTypes from 'prop-types';
import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import PropTypes from 'prop-types';
import Column from '../ui/components/column';
-import PromoPanel from '../ui/components/promo_panel';
import LinkFooter from '../ui/components/link_footer';
+import PromoPanel from '../ui/components/promo_panel';
const messages = defineMessages({
heading: { id: 'column.info', defaultMessage: 'Server information' },
diff --git a/app/soapbox/features/share/index.js b/app/soapbox/features/share/index.js
index 7649f5540..af980b7a4 100644
--- a/app/soapbox/features/share/index.js
+++ b/app/soapbox/features/share/index.js
@@ -1,7 +1,7 @@
+import PropTypes from 'prop-types';
import React from 'react';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
-import PropTypes from 'prop-types';
import { openComposeWithText } from '../../actions/compose';
const mapDispatchToProps = dispatch => ({
diff --git a/app/soapbox/features/soapbox_config/components/icon_picker_dropdown.js b/app/soapbox/features/soapbox_config/components/icon_picker_dropdown.js
index a414c96e7..aabd4484f 100644
--- a/app/soapbox/features/soapbox_config/components/icon_picker_dropdown.js
+++ b/app/soapbox/features/soapbox_config/components/icon_picker_dropdown.js
@@ -1,10 +1,10 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
-import Picker from 'emoji-mart/dist-es/components/picker/picker';
-import Overlay from 'react-overlays/lib/Overlay';
import classNames from 'classnames';
import { supportsPassiveEvents } from 'detect-passive-events';
+import Picker from 'emoji-mart/dist-es/components/picker/picker';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
+import Overlay from 'react-overlays/lib/Overlay';
import Icon from 'soapbox/components/icon';
const messages = defineMessages({
diff --git a/app/soapbox/features/soapbox_config/components/site_preview.js b/app/soapbox/features/soapbox_config/components/site_preview.js
index ee8714588..2643f945e 100644
--- a/app/soapbox/features/soapbox_config/components/site_preview.js
+++ b/app/soapbox/features/soapbox_config/components/site_preview.js
@@ -1,6 +1,6 @@
+import classNames from 'classnames';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import classNames from 'classnames';
import { defaultSettings } from 'soapbox/actions/settings';
import { brandColorToCSS } from 'soapbox/utils/theme';
diff --git a/app/soapbox/features/soapbox_config/index.js b/app/soapbox/features/soapbox_config/index.js
index 7f1a1ad2f..dbfcb21a5 100644
--- a/app/soapbox/features/soapbox_config/index.js
+++ b/app/soapbox/features/soapbox_config/index.js
@@ -1,13 +1,18 @@
-import React from 'react';
-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 ImmutablePropTypes from 'react-immutable-proptypes';
-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 { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { SketchPicker } from 'react-color';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import Overlay from 'react-overlays/lib/Overlay';
+import { connect } from 'react-redux';
+import { updateConfig } from 'soapbox/actions/admin';
+import { uploadMedia } from 'soapbox/actions/media';
+import snackbar from 'soapbox/actions/snackbar';
+import { makeDefaultConfig } from 'soapbox/actions/soapbox';
+import Icon from 'soapbox/components/icon';
import {
SimpleForm,
FieldsGroup,
@@ -18,18 +23,13 @@ import {
FormPropTypes,
Checkbox,
} from 'soapbox/features/forms';
-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 { isMobile } from 'soapbox/is_mobile';
import ThemeToggle from 'soapbox/features/ui/components/theme_toggle';
-import snackbar from 'soapbox/actions/snackbar';
+import { isMobile } from 'soapbox/is_mobile';
+import { getFeatures } from 'soapbox/utils/features';
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';
+import SitePreview from './components/site_preview';
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 658d782f1..f3cff6897 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 PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
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 { connect } from 'react-redux';
import EmojiSelector from 'soapbox/components/emoji_selector';
+import { isUserTouching } from 'soapbox/is_mobile';
+import { isStaff, isAdmin } from 'soapbox/utils/accounts';
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 SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { openModal } from '../../../actions/modal';
+import IconButton from '../../../components/icon_button';
+import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
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 608fab7e8..9f0190e0d 100644
--- a/app/soapbox/features/status/components/card.js
+++ b/app/soapbox/features/status/components/card.js
@@ -1,9 +1,9 @@
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 classnames from 'classnames';
+import { is, fromJS } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import Icon from 'soapbox/components/icon';
const IDNA_PREFIX = 'xn--';
diff --git a/app/soapbox/features/status/components/detailed_status.js b/app/soapbox/features/status/components/detailed_status.js
index c62d71055..06f437ee9 100644
--- a/app/soapbox/features/status/components/detailed_status.js
+++ b/app/soapbox/features/status/components/detailed_status.js
@@ -1,22 +1,22 @@
-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 PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl } from 'react-intl';
+import { FormattedDate } from 'react-intl';
+import { Link, NavLink } from 'react-router-dom';
+import HoverRefWrapper from 'soapbox/components/hover_ref_wrapper';
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 MediaGallery from '../../../components/media_gallery';
import StatusContent from '../../../components/status_content';
import StatusReplyMentions from '../../../components/status_reply_mentions';
-import MediaGallery from '../../../components/media_gallery';
-import Video from '../../video';
import Audio from '../../audio';
import scheduleIdleTask from '../../ui/util/schedule_idle_task';
+import Video from '../../video';
import Card from './card';
import StatusInteractionBar from './status_interaction_bar';
diff --git a/app/soapbox/features/status/components/status_interaction_bar.js b/app/soapbox/features/status/components/status_interaction_bar.js
index 2080b71a6..04048b7b0 100644
--- a/app/soapbox/features/status/components/status_interaction_bar.js
+++ b/app/soapbox/features/status/components/status_interaction_bar.js
@@ -1,16 +1,16 @@
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { connect } from 'react-redux';
import { FormattedNumber } from 'react-intl';
+import { connect } from 'react-redux';
+import { openModal } from 'soapbox/actions/modal';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import Icon from 'soapbox/components/icon';
import emojify from 'soapbox/features/emoji/emoji';
import { reduceEmoji } from 'soapbox/utils/emoji_reacts';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { getFeatures } from 'soapbox/utils/features';
-import Icon from 'soapbox/components/icon';
-import { getSoapboxConfig } from 'soapbox/actions/soapbox';
-import { openModal } from 'soapbox/actions/modal';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/features/status/components/thread_status.js b/app/soapbox/features/status/components/thread_status.js
index 5f1f0cf83..659f7622f 100644
--- a/app/soapbox/features/status/components/thread_status.js
+++ b/app/soapbox/features/status/components/thread_status.js
@@ -1,8 +1,8 @@
+import classNames from 'classnames';
+import { OrderedSet as ImmutableOrderedSet } from 'immutable';
+import PropTypes from 'prop-types';
import React from 'react';
import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import { OrderedSet as ImmutableOrderedSet } from 'immutable';
-import classNames from 'classnames';
import StatusContainer from 'soapbox/containers/status_container';
import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder_status';
diff --git a/app/soapbox/features/status/containers/detailed_status_container.js b/app/soapbox/features/status/containers/detailed_status_container.js
index 8c07eba07..4fbc10347 100644
--- a/app/soapbox/features/status/containers/detailed_status_container.js
+++ b/app/soapbox/features/status/containers/detailed_status_container.js
@@ -1,11 +1,11 @@
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 { connect } from 'react-redux';
import { launchChat } from 'soapbox/actions/chats';
-import DetailedStatus from '../components/detailed_status';
-import { makeGetStatus } from '../../../selectors';
+import { deactivateUserModal, deleteUserModal, deleteStatusModal, toggleStatusSensitivityModal } from 'soapbox/actions/moderation';
+import { getSettings } from 'soapbox/actions/settings';
+import { blockAccount } from '../../../actions/accounts';
+import { showAlertForError } from '../../../actions/alerts';
import {
replyCompose,
mentionCompose,
@@ -21,7 +21,9 @@ import {
pin,
unpin,
} from '../../../actions/interactions';
-import { blockAccount } from '../../../actions/accounts';
+import { openModal } from '../../../actions/modal';
+import { initMuteModal } from '../../../actions/mutes';
+import { initReport } from '../../../actions/reports';
import {
muteStatus,
unmuteStatus,
@@ -29,10 +31,8 @@ import {
hideStatus,
revealStatus,
} from '../../../actions/statuses';
-import { initMuteModal } from '../../../actions/mutes';
-import { initReport } from '../../../actions/reports';
-import { openModal } from '../../../actions/modal';
-import { showAlertForError } from '../../../actions/alerts';
+import { makeGetStatus } from '../../../selectors';
+import DetailedStatus from '../components/detailed_status';
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 b7294db50..018c38fe6 100644
--- a/app/soapbox/features/status/index.js
+++ b/app/soapbox/features/status/index.js
@@ -1,26 +1,33 @@
-import { List as ImmutableList, OrderedSet as ImmutableOrderedSet } from 'immutable';
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
-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 { List as ImmutableList, OrderedSet as ImmutableOrderedSet } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
import { HotKeys } from 'react-hotkeys';
-import Column from 'soapbox/components/column';
-import { getSettings } from 'soapbox/actions/settings';
-import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { createSelector } from 'reselect';
+import { launchChat } from 'soapbox/actions/chats';
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 { getSettings } from 'soapbox/actions/settings';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import Column from 'soapbox/components/column';
import PullToRefresh from 'soapbox/components/pull_to_refresh';
+import SubNavigation from 'soapbox/components/sub_navigation';
+import PendingStatus from 'soapbox/features/ui/components/pending_status';
+import { blockAccount } from '../../actions/accounts';
+import {
+ replyCompose,
+ mentionCompose,
+ directCompose,
+} from '../../actions/compose';
+import { simpleEmojiReact } from '../../actions/emoji_reacts';
import {
favourite,
unfavourite,
@@ -31,13 +38,9 @@ import {
pin,
unpin,
} from '../../actions/interactions';
-import { simpleEmojiReact } from '../../actions/emoji_reacts';
-import {
- replyCompose,
- mentionCompose,
- directCompose,
-} from '../../actions/compose';
-import { blockAccount } from '../../actions/accounts';
+import { openModal } from '../../actions/modal';
+import { initMuteModal } from '../../actions/mutes';
+import { initReport } from '../../actions/reports';
import {
muteStatus,
unmuteStatus,
@@ -45,17 +48,14 @@ import {
hideStatus,
revealStatus,
} from '../../actions/statuses';
-import { initMuteModal } from '../../actions/mutes';
-import { initReport } from '../../actions/reports';
-import { makeGetStatus } from '../../selectors';
-import { openModal } from '../../actions/modal';
-import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen';
-import { textForScreenReader, defaultMediaVisibility } from '../../components/status';
-import MissingIndicator from '../../components/missing_indicator';
import { fetchStatusWithContext } from '../../actions/statuses';
-import ThreadStatus from './components/thread_status';
+import MissingIndicator from '../../components/missing_indicator';
+import { textForScreenReader, defaultMediaVisibility } from '../../components/status';
+import { makeGetStatus } from '../../selectors';
+import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen';
import ActionBar from './components/action_bar';
import DetailedStatus from './components/detailed_status';
+import ThreadStatus from './components/thread_status';
const messages = defineMessages({
title: { id: 'status.title', defaultMessage: 'Post' },
diff --git a/app/soapbox/features/ui/components/accordion.js b/app/soapbox/features/ui/components/accordion.js
index e537c9471..09227653c 100644
--- a/app/soapbox/features/ui/components/accordion.js
+++ b/app/soapbox/features/ui/components/accordion.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl } from 'react-intl';
import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/components/account_list_panel.js b/app/soapbox/features/ui/components/account_list_panel.js
index 1ca90c40f..8bc462571 100644
--- a/app/soapbox/features/ui/components/account_list_panel.js
+++ b/app/soapbox/features/ui/components/account_list_panel.js
@@ -1,7 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { Link } from 'react-router-dom';
import Icon from 'soapbox/components/icon';
import AccountContainer from '../../../containers/account_container';
diff --git a/app/soapbox/features/ui/components/action_button.js b/app/soapbox/features/ui/components/action_button.js
index 61aa16471..1fcb5af36 100644
--- a/app/soapbox/features/ui/components/action_button.js
+++ b/app/soapbox/features/ui/components/action_button.js
@@ -1,12 +1,10 @@
-import React from 'react';
-import { connect } from 'react-redux';
-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 classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
-import Button from 'soapbox/components/button';
+import PropTypes from 'prop-types';
+import React from 'react';
+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 {
followAccount,
unfollowAccount,
@@ -14,6 +12,8 @@ import {
unblockAccount,
} from 'soapbox/actions/accounts';
import { openModal } from 'soapbox/actions/modal';
+import Button from 'soapbox/components/button';
+import Icon from 'soapbox/components/icon';
import { getFeatures } from 'soapbox/utils/features';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/components/actions_modal.js b/app/soapbox/features/ui/components/actions_modal.js
index 046bd9519..f364dab81 100644
--- a/app/soapbox/features/ui/components/actions_modal.js
+++ b/app/soapbox/features/ui/components/actions_modal.js
@@ -1,16 +1,16 @@
-import React from 'react';
+import classNames from 'classnames';
import PropTypes from 'prop-types';
+import React from 'react';
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';
+import Button from '../../../components/button';
import DisplayName from '../../../components/display_name';
import Icon from '../../../components/icon';
-import Button from '../../../components/button';
+import RelativeTimestamp from '../../../components/relative_timestamp';
+import StatusContent from '../../../components/status_content';
import Motion from '../util/optional_motion';
export default @injectIntl
diff --git a/app/soapbox/features/ui/components/better_column.js b/app/soapbox/features/ui/components/better_column.js
index 2c02bd223..79ae3b8a1 100644
--- a/app/soapbox/features/ui/components/better_column.js
+++ b/app/soapbox/features/ui/components/better_column.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import Column from 'soapbox/components/column';
import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
import ColumnHeader from './column_header';
diff --git a/app/soapbox/features/ui/components/boost_modal.js b/app/soapbox/features/ui/components/boost_modal.js
index ec3872808..7103345a3 100644
--- a/app/soapbox/features/ui/components/boost_modal.js
+++ b/app/soapbox/features/ui/components/boost_modal.js
@@ -1,15 +1,15 @@
+import PropTypes from 'prop-types';
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 { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import AttachmentThumbs from 'soapbox/components/attachment_thumbs';
-import Button from '../../../components/button';
-import StatusContent from '../../../components/status_content';
+import Icon from 'soapbox/components/icon';
import Avatar from '../../../components/avatar';
-import RelativeTimestamp from '../../../components/relative_timestamp';
+import Button from '../../../components/button';
import DisplayName from '../../../components/display_name';
+import RelativeTimestamp from '../../../components/relative_timestamp';
+import StatusContent from '../../../components/status_content';
const messages = defineMessages({
cancel_reblog: { id: 'status.cancel_reblog_private', defaultMessage: 'Un-repost' },
diff --git a/app/soapbox/features/ui/components/bundle.js b/app/soapbox/features/ui/components/bundle.js
index 7089597b6..11622ec19 100644
--- a/app/soapbox/features/ui/components/bundle.js
+++ b/app/soapbox/features/ui/components/bundle.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
const emptyComponent = () => null;
const noop = () => { };
diff --git a/app/soapbox/features/ui/components/bundle_column_error.js b/app/soapbox/features/ui/components/bundle_column_error.js
index 28867edb5..8a57465c2 100644
--- a/app/soapbox/features/ui/components/bundle_column_error.js
+++ b/app/soapbox/features/ui/components/bundle_column_error.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
import IconButton from '../../../components/icon_button';
diff --git a/app/soapbox/features/ui/components/bundle_modal_error.js b/app/soapbox/features/ui/components/bundle_modal_error.js
index 4c5c82dcb..9f4749893 100644
--- a/app/soapbox/features/ui/components/bundle_modal_error.js
+++ b/app/soapbox/features/ui/components/bundle_modal_error.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
import IconButton from '../../../components/icon_button';
diff --git a/app/soapbox/features/ui/components/column.js b/app/soapbox/features/ui/components/column.js
index 328fe7a3b..07d8976c6 100644
--- a/app/soapbox/features/ui/components/column.js
+++ b/app/soapbox/features/ui/components/column.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import Column from 'soapbox/components/column';
import Pullable from 'soapbox/components/pullable';
import ColumnHeader from './column_header';
diff --git a/app/soapbox/features/ui/components/column_forbidden.js b/app/soapbox/features/ui/components/column_forbidden.js
index d57d2f547..d4df027b3 100644
--- a/app/soapbox/features/ui/components/column_forbidden.js
+++ b/app/soapbox/features/ui/components/column_forbidden.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { defineMessages, injectIntl } from 'react-intl';
import Column from './column';
diff --git a/app/soapbox/features/ui/components/column_header.js b/app/soapbox/features/ui/components/column_header.js
index 021421194..3bd8516d6 100644
--- a/app/soapbox/features/ui/components/column_header.js
+++ b/app/soapbox/features/ui/components/column_header.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
// import classNames from 'classnames';
// import Icon from 'soapbox/components/icon';
import SubNavigation from 'soapbox/components/sub_navigation';
diff --git a/app/soapbox/features/ui/components/column_link.js b/app/soapbox/features/ui/components/column_link.js
index b85d0d0b7..0586c67b9 100644
--- a/app/soapbox/features/ui/components/column_link.js
+++ b/app/soapbox/features/ui/components/column_link.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { Link } from 'react-router-dom';
import Icon from 'soapbox/components/icon';
diff --git a/app/soapbox/features/ui/components/column_loading.js b/app/soapbox/features/ui/components/column_loading.js
index ca26c258e..c45707e5a 100644
--- a/app/soapbox/features/ui/components/column_loading.js
+++ b/app/soapbox/features/ui/components/column_loading.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Column from 'soapbox/components/column';
import LoadingIndicator from 'soapbox/components/loading_indicator';
diff --git a/app/soapbox/features/ui/components/column_subheading.js b/app/soapbox/features/ui/components/column_subheading.js
index 8160c4aa3..c586e27b7 100644
--- a/app/soapbox/features/ui/components/column_subheading.js
+++ b/app/soapbox/features/ui/components/column_subheading.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
const ColumnSubheading = ({ text }) => {
return (
diff --git a/app/soapbox/features/ui/components/columns_area.js b/app/soapbox/features/ui/components/columns_area.js
index 3f74e19d6..f2409b589 100644
--- a/app/soapbox/features/ui/components/columns_area.js
+++ b/app/soapbox/features/ui/components/columns_area.js
@@ -1,8 +1,8 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { injectIntl } from 'react-intl';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl } from 'react-intl';
export default @(component => injectIntl(component, { withRef: true }))
class ColumnsArea extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/component_modal.js b/app/soapbox/features/ui/components/component_modal.js
index f84609f14..51c23a8e1 100644
--- a/app/soapbox/features/ui/components/component_modal.js
+++ b/app/soapbox/features/ui/components/component_modal.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
export default class ComponentModal extends React.PureComponent {
diff --git a/app/soapbox/features/ui/components/compose_modal.js b/app/soapbox/features/ui/components/compose_modal.js
index 7468383c7..cc84b3dfd 100644
--- a/app/soapbox/features/ui/components/compose_modal.js
+++ b/app/soapbox/features/ui/components/compose_modal.js
@@ -1,13 +1,13 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
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 { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
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';
+import { openModal } from '../../../actions/modal';
+import ComposeFormContainer from '../../compose/containers/compose_form_container';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/ui/components/confirmation_modal.js b/app/soapbox/features/ui/components/confirmation_modal.js
index 6e576d612..25452027a 100644
--- a/app/soapbox/features/ui/components/confirmation_modal.js
+++ b/app/soapbox/features/ui/components/confirmation_modal.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { injectIntl, FormattedMessage } from 'react-intl';
import { SimpleForm, FieldsGroup, Checkbox } from 'soapbox/features/forms';
import Button from '../../../components/button';
diff --git a/app/soapbox/features/ui/components/crypto_donate_modal.js b/app/soapbox/features/ui/components/crypto_donate_modal.js
index 90ae87842..9b1583e77 100644
--- a/app/soapbox/features/ui/components/crypto_donate_modal.js
+++ b/app/soapbox/features/ui/components/crypto_donate_modal.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import DetailedCryptoAddress from 'soapbox/features/crypto_donate/components/detailed_crypto_address';
export default class CryptoDonateModal extends React.PureComponent {
diff --git a/app/soapbox/features/ui/components/edit_federation_modal.js b/app/soapbox/features/ui/components/edit_federation_modal.js
index e6f0bc4f9..c4f54811d 100644
--- a/app/soapbox/features/ui/components/edit_federation_modal.js
+++ b/app/soapbox/features/ui/components/edit_federation_modal.js
@@ -1,14 +1,14 @@
-import React from 'react';
+import { Map as ImmutableMap, is } from 'immutable';
import PropTypes from 'prop-types';
+import React from 'react';
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 { connect } from 'react-redux';
import { updateMrf } from 'soapbox/actions/mrf';
import snackbar from 'soapbox/actions/snackbar';
+import { SimpleForm, Checkbox } from 'soapbox/features/forms';
+import { makeGetRemoteInstance } from 'soapbox/selectors';
const getRemoteInstance = makeGetRemoteInstance();
diff --git a/app/soapbox/features/ui/components/embed_modal.js b/app/soapbox/features/ui/components/embed_modal.js
index 86b79e2f3..6d10ee5bc 100644
--- a/app/soapbox/features/ui/components/embed_modal.js
+++ b/app/soapbox/features/ui/components/embed_modal.js
@@ -1,8 +1,8 @@
-import React from 'react';
+import axios from 'axios';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage, injectIntl } from 'react-intl';
-import axios from 'axios';
export default @injectIntl
class EmbedModal extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/favourites_modal.js b/app/soapbox/features/ui/components/favourites_modal.js
index e81a251e2..333d6cb2d 100644
--- a/app/soapbox/features/ui/components/favourites_modal.js
+++ b/app/soapbox/features/ui/components/favourites_modal.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
+import { fetchFavourites } from 'soapbox/actions/interactions';
import IconButton from 'soapbox/components/icon_button';
import LoadingIndicator from 'soapbox/components/loading_indicator';
-import AccountContainer from 'soapbox/containers/account_container';
import ScrollableList from 'soapbox/components/scrollable_list';
-import { fetchFavourites } from 'soapbox/actions/interactions';
+import AccountContainer from 'soapbox/containers/account_container';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/ui/components/features_panel.js b/app/soapbox/features/ui/components/features_panel.js
index dcb0b5b5e..02bbd3e6d 100644
--- a/app/soapbox/features/ui/components/features_panel.js
+++ b/app/soapbox/features/ui/components/features_panel.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-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 PropTypes from 'prop-types';
+import React from 'react';
+import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
+import { NavLink } from 'react-router-dom';
import Icon from 'soapbox/components/icon';
-import { getFeatures } from 'soapbox/utils/features';
+import IconWithCounter from 'soapbox/components/icon_with_counter';
import { getBaseURL } from 'soapbox/utils/accounts';
+import { getFeatures } from 'soapbox/utils/features';
const messages = defineMessages({
edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit Profile' },
diff --git a/app/soapbox/features/ui/components/focal_point_modal.js b/app/soapbox/features/ui/components/focal_point_modal.js
index b919af6c4..b89078ff1 100644
--- a/app/soapbox/features/ui/components/focal_point_modal.js
+++ b/app/soapbox/features/ui/components/focal_point_modal.js
@@ -1,8 +1,8 @@
+import classNames from 'classnames';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
-import classNames from 'classnames';
import { changeUploadCompose } from '../../../actions/compose';
import { getPointerPosition } from '../../video';
import ImageLoader from './image_loader';
diff --git a/app/soapbox/features/ui/components/funding_panel.js b/app/soapbox/features/ui/components/funding_panel.js
index cd3e893f3..f7bd7fe2a 100644
--- a/app/soapbox/features/ui/components/funding_panel.js
+++ b/app/soapbox/features/ui/components/funding_panel.js
@@ -1,8 +1,8 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import { Map as ImmutableMap } from 'immutable';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { fetchPatronInstance } from 'soapbox/actions/patron';
import Icon from 'soapbox/components/icon';
import ProgressBar from '../../../components/progress_bar';
diff --git a/app/soapbox/features/ui/components/hotkeys_modal.js b/app/soapbox/features/ui/components/hotkeys_modal.js
index efbc8573f..db8b1468f 100644
--- a/app/soapbox/features/ui/components/hotkeys_modal.js
+++ b/app/soapbox/features/ui/components/hotkeys_modal.js
@@ -1,7 +1,7 @@
-import React from 'react';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import IconButton from 'soapbox/components/icon_button';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/components/image_loader.js b/app/soapbox/features/ui/components/image_loader.js
index 99f7c2981..f03853ed4 100644
--- a/app/soapbox/features/ui/components/image_loader.js
+++ b/app/soapbox/features/ui/components/image_loader.js
@@ -1,6 +1,6 @@
-import React from 'react';
-import PropTypes from 'prop-types';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
import ZoomableImage from './zoomable_image';
export default class ImageLoader extends React.PureComponent {
diff --git a/app/soapbox/features/ui/components/instance_info_panel.js b/app/soapbox/features/ui/components/instance_info_panel.js
index c1e192cf6..8bd8b3baf 100644
--- a/app/soapbox/features/ui/components/instance_info_panel.js
+++ b/app/soapbox/features/ui/components/instance_info_panel.js
@@ -1,15 +1,15 @@
'use strict';
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { injectIntl, defineMessages } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { makeGetRemoteInstance } from 'soapbox/selectors';
-import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
+import { injectIntl, defineMessages } from 'react-intl';
+import { connect } from 'react-redux';
import { pinHost, unpinHost } from 'soapbox/actions/remote_timeline';
import { getSettings } from 'soapbox/actions/settings';
+import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
+import { makeGetRemoteInstance } from 'soapbox/selectors';
const getRemoteInstance = makeGetRemoteInstance();
diff --git a/app/soapbox/features/ui/components/instance_moderation_panel.js b/app/soapbox/features/ui/components/instance_moderation_panel.js
index 719813edb..03c7bfddc 100644
--- a/app/soapbox/features/ui/components/instance_moderation_panel.js
+++ b/app/soapbox/features/ui/components/instance_moderation_panel.js
@@ -1,15 +1,15 @@
'use strict';
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { makeGetRemoteInstance } from 'soapbox/selectors';
-import InstanceRestrictions from 'soapbox/features/federation_restrictions/components/instance_restrictions';
-import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
+import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { openModal } from 'soapbox/actions/modal';
+import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
+import InstanceRestrictions from 'soapbox/features/federation_restrictions/components/instance_restrictions';
+import { makeGetRemoteInstance } from 'soapbox/selectors';
import { isAdmin } from 'soapbox/utils/accounts';
const getRemoteInstance = makeGetRemoteInstance();
diff --git a/app/soapbox/features/ui/components/link_footer.js b/app/soapbox/features/ui/components/link_footer.js
index 838a5795e..a0d5c7c57 100644
--- a/app/soapbox/features/ui/components/link_footer.js
+++ b/app/soapbox/features/ui/components/link_footer.js
@@ -1,9 +1,9 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage, injectIntl } from 'react-intl';
-import { Link } from 'react-router-dom';
import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import { logOut } from 'soapbox/actions/auth';
import { getBaseURL, isAdmin } from 'soapbox/utils/accounts';
import sourceCode from 'soapbox/utils/code';
diff --git a/app/soapbox/features/ui/components/list_panel.js b/app/soapbox/features/ui/components/list_panel.js
index adc25d23d..2e657563d 100644
--- a/app/soapbox/features/ui/components/list_panel.js
+++ b/app/soapbox/features/ui/components/list_panel.js
@@ -1,10 +1,10 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
-import { createSelector } from 'reselect';
import { NavLink, withRouter } from 'react-router-dom';
+import { createSelector } from 'reselect';
import { fetchLists } from 'soapbox/actions/lists';
import Icon from 'soapbox/components/icon';
diff --git a/app/soapbox/features/ui/components/media_modal.js b/app/soapbox/features/ui/components/media_modal.js
index 7e9780c9b..b4be56f53 100644
--- a/app/soapbox/features/ui/components/media_modal.js
+++ b/app/soapbox/features/ui/components/media_modal.js
@@ -1,15 +1,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 PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Video from 'soapbox/features/video';
-import Audio from 'soapbox/features/audio';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import ReactSwipeableViews from 'react-swipeable-views';
import ExtendedVideoPlayer from 'soapbox/components/extended_video_player';
-import IconButton from 'soapbox/components/icon_button';
import Icon from 'soapbox/components/icon';
+import IconButton from 'soapbox/components/icon_button';
+import Audio from 'soapbox/features/audio';
+import Video from 'soapbox/features/video';
import ImageLoader from './image_loader';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/components/mentions_modal.js b/app/soapbox/features/ui/components/mentions_modal.js
index 4e75ecb33..fcc295007 100644
--- a/app/soapbox/features/ui/components/mentions_modal.js
+++ b/app/soapbox/features/ui/components/mentions_modal.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { fetchStatusWithContext } from 'soapbox/actions/statuses';
import IconButton from 'soapbox/components/icon_button';
import LoadingIndicator from 'soapbox/components/loading_indicator';
-import AccountContainer from 'soapbox/containers/account_container';
import ScrollableList from 'soapbox/components/scrollable_list';
+import AccountContainer from 'soapbox/containers/account_container';
import { makeGetStatus } from 'soapbox/selectors';
-import { fetchStatusWithContext } from 'soapbox/actions/statuses';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/ui/components/missing_description_modal.js b/app/soapbox/features/ui/components/missing_description_modal.js
index 0cbdad660..9e88bb3a8 100644
--- a/app/soapbox/features/ui/components/missing_description_modal.js
+++ b/app/soapbox/features/ui/components/missing_description_modal.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { injectIntl, FormattedMessage } from 'react-intl';
import Button from '../../../components/button';
diff --git a/app/soapbox/features/ui/components/modal_root.js b/app/soapbox/features/ui/components/modal_root.js
index d898dec3c..84bb947a2 100644
--- a/app/soapbox/features/ui/components/modal_root.js
+++ b/app/soapbox/features/ui/components/modal_root.js
@@ -1,7 +1,6 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import Base from '../../../components/modal_root';
-import BundleContainer from '../containers/bundle_container';
import {
MediaModal,
VideoModal,
@@ -27,6 +26,7 @@ import {
ReblogsModal,
MentionsModal,
} from '../../../features/ui/util/async-components';
+import BundleContainer from '../containers/bundle_container';
import BundleModalError from './bundle_modal_error';
import ModalLoading from './modal_loading';
diff --git a/app/soapbox/features/ui/components/mute_modal.js b/app/soapbox/features/ui/components/mute_modal.js
index b6fca0418..7f1171c15 100644
--- a/app/soapbox/features/ui/components/mute_modal.js
+++ b/app/soapbox/features/ui/components/mute_modal.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import { injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import Toggle from 'react-toggle';
+import { muteAccount } from 'soapbox/actions/accounts';
+import { closeModal } from 'soapbox/actions/modal';
+import { toggleHideNotifications } from 'soapbox/actions/mutes';
import Button from 'soapbox/components/button';
import Icon from 'soapbox/components/icon';
-import { closeModal } from 'soapbox/actions/modal';
-import { muteAccount } from 'soapbox/actions/accounts';
-import { toggleHideNotifications } from 'soapbox/actions/mutes';
const mapStateToProps = state => {
diff --git a/app/soapbox/features/ui/components/pending_status.js b/app/soapbox/features/ui/components/pending_status.js
index 15d36cbb0..a142ea61d 100644
--- a/app/soapbox/features/ui/components/pending_status.js
+++ b/app/soapbox/features/ui/components/pending_status.js
@@ -1,16 +1,16 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import classNames from 'classnames';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
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 RelativeTimestamp from 'soapbox/components/relative_timestamp';
+import StatusContent from 'soapbox/components/status_content';
import PlaceholderCard from 'soapbox/features/placeholder/components/placeholder_card';
-import { buildStatus } from '../util/pending_status_builder';
+import { getDomain } from 'soapbox/utils/accounts';
import PlaceholderMediaGallery from '../../placeholder/components/placeholder_media_gallery';
+import { buildStatus } from '../util/pending_status_builder';
import PollPreview from './poll_preview';
const shouldHaveCard = pendingStatus => {
diff --git a/app/soapbox/features/ui/components/poll_preview.js b/app/soapbox/features/ui/components/poll_preview.js
index edc3c9ed2..40766abe4 100644
--- a/app/soapbox/features/ui/components/poll_preview.js
+++ b/app/soapbox/features/ui/components/poll_preview.js
@@ -1,7 +1,7 @@
+import classNames from 'classnames';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import classNames from 'classnames';
export default class PollPreview extends ImmutablePureComponent {
diff --git a/app/soapbox/features/ui/components/profile_dropdown.js b/app/soapbox/features/ui/components/profile_dropdown.js
index 8df508d3c..8345e0002 100644
--- a/app/soapbox/features/ui/components/profile_dropdown.js
+++ b/app/soapbox/features/ui/components/profile_dropdown.js
@@ -1,16 +1,16 @@
-import React from 'react';
-import { connect } from 'react-redux';
+import { is as ImmutableIs } from 'immutable';
import { throttle } from 'lodash';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl } from 'react-intl';
-import { is as ImmutableIs } from 'immutable';
-import { isStaff } from 'soapbox/utils/accounts';
+import { connect } from 'react-redux';
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 { isStaff } from 'soapbox/utils/accounts';
import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/components/profile_info_panel.js b/app/soapbox/features/ui/components/profile_info_panel.js
index af408087b..4891f03f4 100644
--- a/app/soapbox/features/ui/components/profile_info_panel.js
+++ b/app/soapbox/features/ui/components/profile_info_panel.js
@@ -1,20 +1,20 @@
'use strict';
+import classNames from 'classnames';
+import { List as ImmutableList } from 'immutable';
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
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 { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import Badge from 'soapbox/components/badge';
import Icon from 'soapbox/components/icon';
import VerificationBadge from 'soapbox/components/verification_badge';
-import Badge from 'soapbox/components/badge';
+import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
+import { CryptoAddress } from 'soapbox/features/ui/util/async-components';
import { getAcct, isAdmin, isModerator, isLocal, isVerified } from 'soapbox/utils/accounts';
import { displayFqn } from 'soapbox/utils/state';
-import { CryptoAddress } from 'soapbox/features/ui/util/async-components';
import ProfileStats from './profile_stats';
const TICKER_REGEX = /\$([a-zA-Z]*)/i;
diff --git a/app/soapbox/features/ui/components/profile_media_panel.js b/app/soapbox/features/ui/components/profile_media_panel.js
index cbbb6eaa5..fba395289 100644
--- a/app/soapbox/features/ui/components/profile_media_panel.js
+++ b/app/soapbox/features/ui/components/profile_media_panel.js
@@ -1,13 +1,13 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-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 { getAccountGallery } from 'soapbox/selectors';
import { expandAccountMediaTimeline } from '../../../actions/timelines';
import MediaItem from '../../account_gallery/components/media_item';
diff --git a/app/soapbox/features/ui/components/profile_stats.js b/app/soapbox/features/ui/components/profile_stats.js
index 2b0cf0120..5898f70c1 100644
--- a/app/soapbox/features/ui/components/profile_stats.js
+++ b/app/soapbox/features/ui/components/profile_stats.js
@@ -1,9 +1,9 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { NavLink } from 'react-router-dom';
-import { injectIntl, defineMessages } from 'react-intl';
import classNames from 'classnames';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { injectIntl, defineMessages } from 'react-intl';
+import { NavLink } from 'react-router-dom';
import { shortNumberFormat } from 'soapbox/utils/numbers';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/components/promo_panel.js b/app/soapbox/features/ui/components/promo_panel.js
index fa7b71752..40492b97d 100644
--- a/app/soapbox/features/ui/components/promo_panel.js
+++ b/app/soapbox/features/ui/components/promo_panel.js
@@ -1,10 +1,10 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
-import Icon from 'soapbox/components/icon';
import { getSettings } from 'soapbox/actions/settings';
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import Icon from 'soapbox/components/icon';
const mapStateToProps = state => ({
promoItems: getSoapboxConfig(state).getIn(['promoPanel', 'items']),
diff --git a/app/soapbox/features/ui/components/reactions_modal.js b/app/soapbox/features/ui/components/reactions_modal.js
index 1181fa2df..eb2651269 100644
--- a/app/soapbox/features/ui/components/reactions_modal.js
+++ b/app/soapbox/features/ui/components/reactions_modal.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
import { List as ImmutableList } from 'immutable';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
-import IconButton from 'soapbox/components/icon_button';
-import LoadingIndicator from 'soapbox/components/loading_indicator';
-import AccountContainer from 'soapbox/containers/account_container';
-import ScrollableList from 'soapbox/components/scrollable_list';
+import { connect } from 'react-redux';
import { fetchFavourites, fetchReactions } from 'soapbox/actions/interactions';
import FilterBar from 'soapbox/components/filter_bar';
+import IconButton from 'soapbox/components/icon_button';
+import LoadingIndicator from 'soapbox/components/loading_indicator';
+import ScrollableList from 'soapbox/components/scrollable_list';
+import AccountContainer from 'soapbox/containers/account_container';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/ui/components/reblogs_modal.js b/app/soapbox/features/ui/components/reblogs_modal.js
index 585273538..a81ddd007 100644
--- a/app/soapbox/features/ui/components/reblogs_modal.js
+++ b/app/soapbox/features/ui/components/reblogs_modal.js
@@ -1,14 +1,14 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
-import IconButton from 'soapbox/components/icon_button';
-import LoadingIndicator from 'soapbox/components/loading_indicator';
-import AccountContainer from 'soapbox/containers/account_container';
-import ScrollableList from 'soapbox/components/scrollable_list';
+import { connect } from 'react-redux';
import { fetchReblogs } from 'soapbox/actions/interactions';
import { fetchStatus } from 'soapbox/actions/statuses';
+import IconButton from 'soapbox/components/icon_button';
+import LoadingIndicator from 'soapbox/components/loading_indicator';
+import ScrollableList from 'soapbox/components/scrollable_list';
+import AccountContainer from 'soapbox/containers/account_container';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/soapbox/features/ui/components/reply_mentions_modal.js b/app/soapbox/features/ui/components/reply_mentions_modal.js
index f034eaced..ef1268aa1 100644
--- a/app/soapbox/features/ui/components/reply_mentions_modal.js
+++ b/app/soapbox/features/ui/components/reply_mentions_modal.js
@@ -1,9 +1,9 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
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 { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import IconButton from 'soapbox/components/icon_button';
import { statusToMentionsAccountIdsArray } from 'soapbox/reducers/compose';
import { makeGetStatus } from 'soapbox/selectors';
diff --git a/app/soapbox/features/ui/components/report_modal.js b/app/soapbox/features/ui/components/report_modal.js
index 76845c60e..b5fb52aa2 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 PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { defineMessages, FormattedMessage, injectIntl } from 'react-intl';
import { OrderedSet } from 'immutable';
+import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, FormattedMessage, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import Toggle from 'react-toggle';
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';
+import { expandAccountTimeline } from '../../../actions/timelines';
+import Button from '../../../components/button';
+import IconButton from '../../../components/icon_button';
+import { makeGetAccount } from '../../../selectors';
+import StatusCheckBox from '../../report/containers/status_check_box_container';
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 e8f19b0fb..733dca140 100644
--- a/app/soapbox/features/ui/components/sign_up_panel.js
+++ b/app/soapbox/features/ui/components/sign_up_panel.js
@@ -1,7 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import { FormattedMessage, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
const mapStateToProps = state => {
diff --git a/app/soapbox/features/ui/components/subscription_button.js b/app/soapbox/features/ui/components/subscription_button.js
index 238ea0729..7cc28f74c 100644
--- a/app/soapbox/features/ui/components/subscription_button.js
+++ b/app/soapbox/features/ui/components/subscription_button.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Button from 'soapbox/components/button';
-import Icon from 'soapbox/components/icon';
+import { defineMessages, injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import {
subscribeAccount,
unsubscribeAccount,
} from 'soapbox/actions/accounts';
+import Button from 'soapbox/components/button';
+import Icon from 'soapbox/components/icon';
const messages = defineMessages({
subscribe: { id: 'account.subscribe', defaultMessage: 'Subscribe to notifications from @{name}' },
diff --git a/app/soapbox/features/ui/components/tabs_bar.js b/app/soapbox/features/ui/components/tabs_bar.js
index e74c46373..5d87437f3 100644
--- a/app/soapbox/features/ui/components/tabs_bar.js
+++ b/app/soapbox/features/ui/components/tabs_bar.js
@@ -1,20 +1,20 @@
-import React from 'react';
+import classNames from 'classnames';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { Link, NavLink, withRouter } from 'react-router-dom';
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
import { connect } from 'react-redux';
-import classNames from 'classnames';
+import { Link, NavLink, withRouter } from 'react-router-dom';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import Icon from 'soapbox/components/icon';
import IconWithCounter from 'soapbox/components/icon_with_counter';
import SearchContainer from 'soapbox/features/compose/containers/search_container';
-import Icon from 'soapbox/components/icon';
-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 ThemeToggle from '../../ui/components/theme_toggle_container';
import ProfileDropdown from './profile_dropdown';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/components/theme_toggle.js b/app/soapbox/features/ui/components/theme_toggle.js
index addcf6135..ef9751fe5 100644
--- a/app/soapbox/features/ui/components/theme_toggle.js
+++ b/app/soapbox/features/ui/components/theme_toggle.js
@@ -1,7 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { defineMessages } from 'react-intl';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages } from 'react-intl';
import Toggle from 'react-toggle';
import Icon from '../../../components/icon';
diff --git a/app/soapbox/features/ui/components/theme_toggle_container.js b/app/soapbox/features/ui/components/theme_toggle_container.js
index 6cf6352b2..fd1c4f270 100644
--- a/app/soapbox/features/ui/components/theme_toggle_container.js
+++ b/app/soapbox/features/ui/components/theme_toggle_container.js
@@ -1,5 +1,5 @@
-import { connect } from 'react-redux';
import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
import { changeSetting, getSettings } from 'soapbox/actions/settings';
import ThemeToggle from './theme_toggle';
diff --git a/app/soapbox/features/ui/components/trends_panel.js b/app/soapbox/features/ui/components/trends_panel.js
index 26913093b..8fa63343c 100644
--- a/app/soapbox/features/ui/components/trends_panel.js
+++ b/app/soapbox/features/ui/components/trends_panel.js
@@ -1,9 +1,9 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-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';
diff --git a/app/soapbox/features/ui/components/unauthorized_modal.js b/app/soapbox/features/ui/components/unauthorized_modal.js
index 6a9a5e5df..5ceaebe57 100644
--- a/app/soapbox/features/ui/components/unauthorized_modal.js
+++ b/app/soapbox/features/ui/components/unauthorized_modal.js
@@ -1,12 +1,12 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { Link } from 'react-router-dom';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import IconButton from 'soapbox/components/icon_button';
-import snackbar from 'soapbox/actions/snackbar';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import { remoteInteraction } from 'soapbox/actions/interactions';
+import snackbar from 'soapbox/actions/snackbar';
+import IconButton from 'soapbox/components/icon_button';
import { getFeatures } from 'soapbox/utils/features';
const messages = defineMessages({
diff --git a/app/soapbox/features/ui/components/upload_area.js b/app/soapbox/features/ui/components/upload_area.js
index 0c2cb79d7..548e6ae0a 100644
--- a/app/soapbox/features/ui/components/upload_area.js
+++ b/app/soapbox/features/ui/components/upload_area.js
@@ -1,7 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import spring from 'react-motion/lib/spring';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
+import spring from 'react-motion/lib/spring';
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 ffeecc9a4..c40f76e8d 100644
--- a/app/soapbox/features/ui/components/user_panel.js
+++ b/app/soapbox/features/ui/components/user_panel.js
@@ -1,16 +1,16 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { Link } from 'react-router-dom';
-import { injectIntl, FormattedMessage } from 'react-intl';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
import Avatar from 'soapbox/components/avatar';
-import { shortNumberFormat } from 'soapbox/utils/numbers';
-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 { getAcct, isVerified } from 'soapbox/utils/accounts';
+import { shortNumberFormat } from 'soapbox/utils/numbers';
+import { displayFqn } from 'soapbox/utils/state';
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 f7397f628..6a4b61bbb 100644
--- a/app/soapbox/features/ui/components/video_modal.js
+++ b/app/soapbox/features/ui/components/video_modal.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
import Video from 'soapbox/features/video';
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 248a97fd3..8fcbb7cda 100644
--- a/app/soapbox/features/ui/components/who_to_follow_panel.js
+++ b/app/soapbox/features/ui/components/who_to_follow_panel.js
@@ -1,9 +1,9 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-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';
diff --git a/app/soapbox/features/ui/components/zoomable_image.js b/app/soapbox/features/ui/components/zoomable_image.js
index eec87aafd..b9064fa4f 100644
--- a/app/soapbox/features/ui/components/zoomable_image.js
+++ b/app/soapbox/features/ui/components/zoomable_image.js
@@ -1,5 +1,5 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
const MIN_SCALE = 1;
const MAX_SCALE = 4;
diff --git a/app/soapbox/features/ui/containers/bundle_container.js b/app/soapbox/features/ui/containers/bundle_container.js
index 3af058789..dc2802822 100644
--- a/app/soapbox/features/ui/containers/bundle_container.js
+++ b/app/soapbox/features/ui/containers/bundle_container.js
@@ -1,8 +1,8 @@
import { connect } from 'react-redux';
+import { fetchBundleRequest, fetchBundleSuccess, fetchBundleFail } from '../../../actions/bundles';
import Bundle from '../components/bundle';
-import { fetchBundleRequest, fetchBundleSuccess, fetchBundleFail } from '../../../actions/bundles';
const mapDispatchToProps = dispatch => ({
onFetch() {
diff --git a/app/soapbox/features/ui/containers/modal_container.js b/app/soapbox/features/ui/containers/modal_container.js
index f0f81e59b..89e0d9037 100644
--- a/app/soapbox/features/ui/containers/modal_container.js
+++ b/app/soapbox/features/ui/containers/modal_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
-import { closeModal } from '../../../actions/modal';
import { cancelReplyCompose } from '../../../actions/compose';
+import { closeModal } from '../../../actions/modal';
import ModalRoot from '../components/modal_root';
const mapStateToProps = state => ({
diff --git a/app/soapbox/features/ui/containers/notifications_container.js b/app/soapbox/features/ui/containers/notifications_container.js
index 79488b1af..616e6090f 100644
--- a/app/soapbox/features/ui/containers/notifications_container.js
+++ b/app/soapbox/features/ui/containers/notifications_container.js
@@ -1,6 +1,6 @@
import { injectIntl } from 'react-intl';
-import { connect } from 'react-redux';
import { NotificationStack } from 'react-notification';
+import { connect } from 'react-redux';
import { dismissAlert } from '../../../actions/alerts';
import { getAlerts } from '../../../selectors';
diff --git a/app/soapbox/features/ui/containers/status_list_container.js b/app/soapbox/features/ui/containers/status_list_container.js
index a1e0454c4..27c6e7b12 100644
--- a/app/soapbox/features/ui/containers/status_list_container.js
+++ b/app/soapbox/features/ui/containers/status_list_container.js
@@ -1,10 +1,10 @@
-import { connect } from 'react-redux';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
import { debounce } from 'lodash';
-import { makeGetStatusIds } from 'soapbox/selectors';
+import { connect } from 'react-redux';
import { dequeueTimeline } from 'soapbox/actions/timelines';
-import StatusList from '../../../components/status_list';
+import { makeGetStatusIds } from 'soapbox/selectors';
import { scrollTopTimeline } from '../../../actions/timelines';
+import StatusList from '../../../components/status_list';
const makeMapStateToProps = () => {
const getStatusIds = makeGetStatusIds();
diff --git a/app/soapbox/features/ui/index.js b/app/soapbox/features/ui/index.js
index 1a5e5429d..c14082fe5 100644
--- a/app/soapbox/features/ui/index.js
+++ b/app/soapbox/features/ui/index.js
@@ -1,51 +1,49 @@
'use strict';
import classNames from 'classnames';
+import { debounce } from 'lodash';
+import PropTypes from 'prop-types';
import React from 'react';
import { HotKeys } from 'react-hotkeys';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
import { Switch, withRouter } from 'react-router-dom';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { debounce } from 'lodash';
import { Redirect } from 'react-router-dom';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import { fetchMarker } from 'soapbox/actions/markers';
import { fetchChats } from 'soapbox/actions/chats';
-import ProfilePage from 'soapbox/pages/profile_page';
+import { fetchCustomEmojis } from 'soapbox/actions/custom_emojis';
+import { fetchMarker } from 'soapbox/actions/markers';
+import { register as registerPushNotifications } from 'soapbox/actions/push_notifications';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import Icon from 'soapbox/components/icon';
+import ThumbNavigation from 'soapbox/components/thumb_navigation';
+import AdminPage from 'soapbox/pages/admin_page';
+import DefaultPage from 'soapbox/pages/default_page';
// import GroupsPage from 'soapbox/pages/groups_page';
// import GroupPage from 'soapbox/pages/group_page';
-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 HomePage from 'soapbox/pages/home_page';
+import ProfilePage from 'soapbox/pages/profile_page';
import RemoteInstancePage from 'soapbox/pages/remote_instance_page';
-import { register as registerPushNotifications } from 'soapbox/actions/push_notifications';
-import Icon from 'soapbox/components/icon';
+import StatusPage from 'soapbox/pages/status_page';
import { isStaff, isAdmin } from 'soapbox/utils/accounts';
import { getAccessToken } from 'soapbox/utils/auth';
-import { getFeatures } from 'soapbox/utils/features';
-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 { getFeatures } from 'soapbox/utils/features';
+import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
+import { fetchFollowRequests } from '../../actions/accounts';
+import { fetchReports, fetchUsers, fetchConfig } from '../../actions/admin';
+import { uploadCompose, resetCompose } from '../../actions/compose';
+import { fetchFilters } from '../../actions/filters';
+import { clearHeight } from '../../actions/height_cache';
+import { openModal } from '../../actions/modal';
+import { expandNotifications } from '../../actions/notifications';
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 BundleContainer from './containers/bundle_container';
import {
Status,
CommunityTimeline,
@@ -118,6 +116,8 @@ import {
CreateApp,
SettingsStore,
} from './util/async-components';
+import { WrappedRoute } from './util/react_router_helpers';
+
// Dummy import, to make sure that ends up in the application bundle.
// Without this it ends up in ~8 very commonly used bundles.
diff --git a/app/soapbox/features/ui/util/optional_motion.js b/app/soapbox/features/ui/util/optional_motion.js
index b2acbfea4..b475fd3c9 100644
--- a/app/soapbox/features/ui/util/optional_motion.js
+++ b/app/soapbox/features/ui/util/optional_motion.js
@@ -1,7 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
+import React from 'react';
import Motion from 'react-motion/lib/Motion';
+import { connect } from 'react-redux';
import { getSettings } from 'soapbox/actions/settings';
import ReducedMotion from './reduced_motion';
diff --git a/app/soapbox/features/ui/util/react_router_helpers.js b/app/soapbox/features/ui/util/react_router_helpers.js
index 521022706..a2ec3144b 100644
--- a/app/soapbox/features/ui/util/react_router_helpers.js
+++ b/app/soapbox/features/ui/util/react_router_helpers.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import { connect } from 'react-redux';
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 ColumnForbidden from '../components/column_forbidden';
+import ColumnLoading from '../components/column_loading';
import BundleContainer from '../containers/bundle_container';
+import ColumnsAreaContainer from '../containers/columns_area_container';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/features/ui/util/reduced_motion.js b/app/soapbox/features/ui/util/reduced_motion.js
index 95519042b..62d36f626 100644
--- a/app/soapbox/features/ui/util/reduced_motion.js
+++ b/app/soapbox/features/ui/util/reduced_motion.js
@@ -1,8 +1,8 @@
// Like react-motion's Motion, but reduces all animations to cross-fades
// for the benefit of users with motion sickness.
+import PropTypes from 'prop-types';
import React from 'react';
import Motion from 'react-motion/lib/Motion';
-import PropTypes from 'prop-types';
const stylesToKeep = ['opacity', 'backgroundOpacity'];
diff --git a/app/soapbox/features/video/index.js b/app/soapbox/features/video/index.js
index ece4e135b..6a9d1b708 100644
--- a/app/soapbox/features/video/index.js
+++ b/app/soapbox/features/video/index.js
@@ -1,13 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import classNames from 'classnames';
import { fromJS, is } from 'immutable';
import { throttle, debounce } from 'lodash';
-import classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
-import Blurhash from 'soapbox/components/blurhash';
+import PropTypes from 'prop-types';
+import React from 'react';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { getSettings } from 'soapbox/actions/settings';
+import Blurhash from 'soapbox/components/blurhash';
+import Icon from 'soapbox/components/icon';
import { isPanoramic, isPortrait, minimumAspectRatio, maximumAspectRatio } from '../../utils/media_aspect_ratio';
import { isFullscreen, requestFullscreen, exitFullscreen } from '../ui/util/fullscreen';
diff --git a/app/soapbox/main.js b/app/soapbox/main.js
index dc3b1241f..da8ae51bd 100644
--- a/app/soapbox/main.js
+++ b/app/soapbox/main.js
@@ -1,13 +1,13 @@
'use strict';
import './precheck';
+import * as OfflinePluginRuntime from '@lcdp/offline-plugin/runtime';
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 * as perf from './performance';
import ready from './ready';
function main() {
diff --git a/app/soapbox/pages/default_page.js b/app/soapbox/pages/default_page.js
index 2e7520357..e1948a024 100644
--- a/app/soapbox/pages/default_page.js
+++ b/app/soapbox/pages/default_page.js
@@ -1,8 +1,9 @@
import React from 'react';
-import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import Sticky from 'react-stickynode';
import PrimaryNavigation from 'soapbox/components/primary_navigation';
+import LinkFooter from 'soapbox/features/ui/components/link_footer';
import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import {
WhoToFollowPanel,
@@ -11,7 +12,6 @@ import {
FeaturesPanel,
SignUpPanel,
} from 'soapbox/features/ui/util/async-components';
-import LinkFooter from 'soapbox/features/ui/components/link_footer';
import { getFeatures } from 'soapbox/utils/features';
const mapStateToProps = state => {
diff --git a/app/soapbox/pages/group_page.js b/app/soapbox/pages/group_page.js
index d4da40a3f..df2301b7e 100644
--- a/app/soapbox/pages/group_page.js
+++ b/app/soapbox/pages/group_page.js
@@ -1,15 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
import { PropTypes } from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import WhoToFollowPanel from '../features/ui/components/who_to_follow_panel';
-import LinkFooter from '../features/ui/components/link_footer';
-import PromoPanel from '../features/ui/components/promo_panel';
-import HeaderContainer from '../features/groups/timeline/containers/header_container';
-import GroupPanel from '../features/groups/timeline/components/panel';
+import { connect } from 'react-redux';
import { fetchGroup } from '../actions/groups';
import GroupSidebarPanel from '../features/groups/sidebar_panel';
+import GroupPanel from '../features/groups/timeline/components/panel';
+import HeaderContainer from '../features/groups/timeline/containers/header_container';
+import LinkFooter from '../features/ui/components/link_footer';
+import PromoPanel from '../features/ui/components/promo_panel';
+import WhoToFollowPanel from '../features/ui/components/who_to_follow_panel';
const mapStateToProps = (state, { params: { id } }) => ({
group: state.getIn(['groups', id]),
diff --git a/app/soapbox/pages/groups_page.js b/app/soapbox/pages/groups_page.js
index 8d7683cb9..a19847f0b 100644
--- a/app/soapbox/pages/groups_page.js
+++ b/app/soapbox/pages/groups_page.js
@@ -1,12 +1,12 @@
import React from 'react';
-import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import WhoToFollowPanel from '../features/ui/components/who_to_follow_panel';
+import { connect } from 'react-redux';
+import GroupSidebarPanel from '../features/groups/sidebar_panel';
import LinkFooter from '../features/ui/components/link_footer';
import PromoPanel from '../features/ui/components/promo_panel';
import UserPanel from '../features/ui/components/user_panel';
-import GroupSidebarPanel from '../features/groups/sidebar_panel';
+import WhoToFollowPanel from '../features/ui/components/who_to_follow_panel';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/pages/home_page.js b/app/soapbox/pages/home_page.js
index aad8e8192..fea58803b 100644
--- a/app/soapbox/pages/home_page.js
+++ b/app/soapbox/pages/home_page.js
@@ -1,9 +1,11 @@
import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import Sticky from 'react-stickynode';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import PrimaryNavigation from 'soapbox/components/primary_navigation';
+import LinkFooter from 'soapbox/features/ui/components/link_footer';
import {
WhoToFollowPanel,
CryptoDonatePanel,
@@ -15,8 +17,6 @@ import {
SignUpPanel,
} from 'soapbox/features/ui/util/async-components';
// import GroupSidebarPanel from '../features/groups/sidebar_panel';
-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';
diff --git a/app/soapbox/pages/profile_page.js b/app/soapbox/pages/profile_page.js
index 1a5fa738c..37f24bf96 100644
--- a/app/soapbox/pages/profile_page.js
+++ b/app/soapbox/pages/profile_page.js
@@ -1,10 +1,10 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import Sticky from 'react-stickynode';
+import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
+import Sticky from 'react-stickynode';
import Helmet from 'soapbox/components/helmet';
import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import {
@@ -13,13 +13,13 @@ import {
ProfileInfoPanel,
ProfileMediaPanel,
} from 'soapbox/features/ui/util/async-components';
-import { getAcct } from 'soapbox/utils/accounts';
-import { displayFqn } from 'soapbox/utils/state';
-import { getFeatures } from 'soapbox/utils/features';
import { findAccountByUsername } from 'soapbox/selectors';
-import { makeGetAccount } from '../selectors';
-import LinkFooter from '../features/ui/components/link_footer';
+import { getAcct } from 'soapbox/utils/accounts';
+import { getFeatures } from 'soapbox/utils/features';
+import { displayFqn } from 'soapbox/utils/state';
import HeaderContainer from '../features/account_timeline/containers/header_container';
+import LinkFooter from '../features/ui/components/link_footer';
+import { makeGetAccount } from '../selectors';
const mapStateToProps = (state, { params, withReplies = false }) => {
const username = params.username || '';
diff --git a/app/soapbox/pages/remote_instance_page.js b/app/soapbox/pages/remote_instance_page.js
index 7805c6daa..f6c3a9024 100644
--- a/app/soapbox/pages/remote_instance_page.js
+++ b/app/soapbox/pages/remote_instance_page.js
@@ -1,18 +1,18 @@
import React from 'react';
-import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import Sticky from 'react-stickynode';
-import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import PrimaryNavigation from 'soapbox/components/primary_navigation';
+import LinkFooter from 'soapbox/features/ui/components/link_footer';
+import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
import {
PromoPanel,
FeaturesPanel,
InstanceInfoPanel,
InstanceModerationPanel,
} from 'soapbox/features/ui/util/async-components';
-import LinkFooter from 'soapbox/features/ui/components/link_footer';
-import { federationRestrictionsDisclosed } from 'soapbox/utils/state';
import { isAdmin } from 'soapbox/utils/accounts';
+import { federationRestrictionsDisclosed } from 'soapbox/utils/state';
const mapStateToProps = state => {
const me = state.get('me');
diff --git a/app/soapbox/pages/status_page.js b/app/soapbox/pages/status_page.js
index 1bc44fee4..03874aa71 100644
--- a/app/soapbox/pages/status_page.js
+++ b/app/soapbox/pages/status_page.js
@@ -1,8 +1,9 @@
import React from 'react';
-import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import Sticky from 'react-stickynode';
import PrimaryNavigation from 'soapbox/components/primary_navigation';
+import LinkFooter from 'soapbox/features/ui/components/link_footer';
import {
WhoToFollowPanel,
TrendsPanel,
@@ -11,7 +12,6 @@ import {
SignUpPanel,
} from 'soapbox/features/ui/util/async-components';
// 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';
diff --git a/app/soapbox/reducers/__tests__/compose-test.js b/app/soapbox/reducers/__tests__/compose-test.js
index 28e497015..c7f747bfe 100644
--- a/app/soapbox/reducers/__tests__/compose-test.js
+++ b/app/soapbox/reducers/__tests__/compose-test.js
@@ -1,7 +1,7 @@
import { Map as ImmutableMap } from 'immutable';
+import * as actions from 'soapbox/actions/compose';
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';
diff --git a/app/soapbox/reducers/__tests__/contexts-test.js b/app/soapbox/reducers/__tests__/contexts-test.js
index 231de1286..b2289315f 100644
--- a/app/soapbox/reducers/__tests__/contexts-test.js
+++ b/app/soapbox/reducers/__tests__/contexts-test.js
@@ -3,10 +3,10 @@ import {
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 { CONTEXT_FETCH_SUCCESS } from 'soapbox/actions/statuses';
+import { TIMELINE_DELETE } from 'soapbox/actions/timelines';
import reducer from '../contexts';
describe('contexts reducer', () => {
diff --git a/app/soapbox/reducers/__tests__/notifications-test.js b/app/soapbox/reducers/__tests__/notifications-test.js
index 8707d1c87..4c2cd5e31 100644
--- a/app/soapbox/reducers/__tests__/notifications-test.js
+++ b/app/soapbox/reducers/__tests__/notifications-test.js
@@ -1,6 +1,15 @@
import { Map as ImmutableMap, OrderedMap as ImmutableOrderedMap, fromJS } from 'immutable';
import { take } from 'lodash';
+import intlMessages from 'soapbox/__fixtures__/intlMessages.json';
+import notification from 'soapbox/__fixtures__/notification.json';
import notifications from 'soapbox/__fixtures__/notifications.json';
+import relationship from 'soapbox/__fixtures__/relationship.json';
+import { ACCOUNT_BLOCK_SUCCESS, ACCOUNT_MUTE_SUCCESS } from 'soapbox/actions/accounts';
+import {
+ MARKER_FETCH_SUCCESS,
+ MARKER_SAVE_REQUEST,
+ MARKER_SAVE_SUCCESS,
+} from 'soapbox/actions/markers';
import {
NOTIFICATIONS_EXPAND_SUCCESS,
NOTIFICATIONS_EXPAND_REQUEST,
@@ -13,16 +22,7 @@ import {
NOTIFICATIONS_CLEAR,
NOTIFICATIONS_MARK_READ_REQUEST,
} from 'soapbox/actions/notifications';
-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';
-import relationship from 'soapbox/__fixtures__/relationship.json';
import { TIMELINE_DELETE } from 'soapbox/actions/timelines';
-import {
- MARKER_FETCH_SUCCESS,
- MARKER_SAVE_REQUEST,
- MARKER_SAVE_SUCCESS,
-} from 'soapbox/actions/markers';
import reducer from '../notifications';
describe('notifications reducer', () => {
diff --git a/app/soapbox/reducers/__tests__/patron-test.js b/app/soapbox/reducers/__tests__/patron-test.js
index c3e4f7569..da3dce78b 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 reducer from '../patron';
describe('patron 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 c7939d2fd..e680116ca 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 reducer from '../relationships';
describe('relationships 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 0dabe423b..52b5d4ec3 100644
--- a/app/soapbox/reducers/__tests__/soapbox-test.js
+++ b/app/soapbox/reducers/__tests__/soapbox-test.js
@@ -1,8 +1,8 @@
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 soapbox from 'soapbox/__fixtures__/soapbox.json';
+import { ADMIN_CONFIG_UPDATE_SUCCESS } from 'soapbox/actions/admin';
+import * as actions from 'soapbox/actions/soapbox';
import reducer from '../soapbox';
describe('soapbox reducer', () => {
diff --git a/app/soapbox/reducers/__tests__/statuses-test.js b/app/soapbox/reducers/__tests__/statuses-test.js
index 351420ac2..e16463714 100644
--- a/app/soapbox/reducers/__tests__/statuses-test.js
+++ b/app/soapbox/reducers/__tests__/statuses-test.js
@@ -1,9 +1,9 @@
import { Map as ImmutableMap, fromJS } from 'immutable';
+import { STATUS_IMPORT } from 'soapbox/actions/importer';
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', () => {
diff --git a/app/soapbox/reducers/accounts.js b/app/soapbox/reducers/accounts.js
index dd83e3379..35387f500 100644
--- a/app/soapbox/reducers/accounts.js
+++ b/app/soapbox/reducers/accounts.js
@@ -3,10 +3,6 @@ import {
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,
ADMIN_USERS_TAG_REQUEST,
@@ -30,6 +26,10 @@ import {
ADMIN_USERS_UNSUGGEST_REQUEST,
ADMIN_USERS_UNSUGGEST_FAIL,
} from 'soapbox/actions/admin';
+import { CHATS_FETCH_SUCCESS, CHATS_EXPAND_SUCCESS, CHAT_FETCH_SUCCESS } from 'soapbox/actions/chats';
+import { normalizeAccount as normalizeAccount2 } from 'soapbox/actions/importer/normalizer';
+import { STREAMING_CHAT_UPDATE } from 'soapbox/actions/streaming';
+import { normalizePleromaUserFields } from 'soapbox/utils/pleroma';
import {
ACCOUNT_IMPORT,
ACCOUNTS_IMPORT,
diff --git a/app/soapbox/reducers/accounts_meta.js b/app/soapbox/reducers/accounts_meta.js
index 5fb6f4834..00b143005 100644
--- a/app/soapbox/reducers/accounts_meta.js
+++ b/app/soapbox/reducers/accounts_meta.js
@@ -4,8 +4,8 @@
*/
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 { ME_FETCH_SUCCESS, ME_PATCH_SUCCESS } from 'soapbox/actions/me';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/auth.js b/app/soapbox/reducers/auth.js
index bfc3857ce..df1be86d8 100644
--- a/app/soapbox/reducers/auth.js
+++ b/app/soapbox/reducers/auth.js
@@ -1,10 +1,9 @@
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 { validId, isURL } from 'soapbox/utils/auth';
import {
AUTH_APP_CREATED,
AUTH_LOGGED_IN,
@@ -14,6 +13,7 @@ import {
VERIFY_CREDENTIALS_SUCCESS,
VERIFY_CREDENTIALS_FAIL,
} from '../actions/auth';
+import { ME_FETCH_SKIP } from '../actions/me';
const defaultState = ImmutableMap({
app: ImmutableMap(),
diff --git a/app/soapbox/reducers/chats.js b/app/soapbox/reducers/chats.js
index 056676e0a..922099c9a 100644
--- a/app/soapbox/reducers/chats.js
+++ b/app/soapbox/reducers/chats.js
@@ -8,8 +8,8 @@ import {
CHAT_READ_SUCCESS,
CHAT_READ_REQUEST,
} from 'soapbox/actions/chats';
-import { STREAMING_CHAT_UPDATE } from 'soapbox/actions/streaming';
import { normalizeChat } from 'soapbox/actions/importer/normalizer';
+import { STREAMING_CHAT_UPDATE } from 'soapbox/actions/streaming';
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 24d7578a0..def17599c 100644
--- a/app/soapbox/reducers/compose.js
+++ b/app/soapbox/reducers/compose.js
@@ -44,12 +44,12 @@ import {
COMPOSE_ADD_TO_MENTIONS,
COMPOSE_REMOVE_FROM_MENTIONS,
} from '../actions/compose';
-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 uuid from '../uuid';
+import { REDRAFT } from '../actions/statuses';
+import { TIMELINE_DELETE } from '../actions/timelines';
import { unescapeHTML } from '../utils/html';
+import uuid from '../uuid';
const initialState = ImmutableMap({
id: null,
diff --git a/app/soapbox/reducers/custom_emojis.js b/app/soapbox/reducers/custom_emojis.js
index f1b37a6af..55d279c08 100644
--- a/app/soapbox/reducers/custom_emojis.js
+++ b/app/soapbox/reducers/custom_emojis.js
@@ -1,6 +1,6 @@
import { List as ImmutableList, fromJS } from 'immutable';
-import { addCustomToPool } from 'soapbox/features/emoji/emoji_mart_search_light';
import { emojis as emojiData } from 'soapbox/features/emoji/emoji_mart_data_light';
+import { addCustomToPool } from 'soapbox/features/emoji/emoji_mart_search_light';
import { CUSTOM_EMOJIS_FETCH_SUCCESS } from '../actions/custom_emojis';
import { buildCustomEmojis } from '../features/emoji/emoji';
diff --git a/app/soapbox/reducers/groups.js b/app/soapbox/reducers/groups.js
index fe7c158a2..70070a1b7 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_UPDATE_SUCCESS } from '../actions/group_editor';
import {
GROUP_FETCH_SUCCESS,
GROUP_FETCH_FAIL,
GROUPS_FETCH_SUCCESS,
} from '../actions/groups';
-import { GROUP_UPDATE_SUCCESS } from '../actions/group_editor';
const initialState = ImmutableMap();
diff --git a/app/soapbox/reducers/index.js b/app/soapbox/reducers/index.js
index d438b32eb..2cd55236d 100644
--- a/app/soapbox/reducers/index.js
+++ b/app/soapbox/reducers/index.js
@@ -1,59 +1,59 @@
-import { combineReducers } from 'redux-immutable';
import { Map as ImmutableMap } from 'immutable';
+import { combineReducers } from 'redux-immutable';
import { AUTH_LOGGED_OUT } from 'soapbox/actions/auth';
-import dropdown_menu from './dropdown_menu';
-import timelines from './timelines';
-import meta from './meta';
-import alerts from './alerts';
-import modal from './modal';
-import user_lists from './user_lists';
-import domain_lists from './domain_lists';
import accounts from './accounts';
import accounts_counters from './accounts_counters';
-import statuses from './statuses';
-import relationships from './relationships';
-import settings from './settings';
-import push_notifications from './push_notifications';
-import status_lists from './status_lists';
-import mutes from './mutes';
-import reports from './reports';
-import contexts from './contexts';
-import compose from './compose';
-import search from './search';
-import notifications from './notifications';
-import height_cache from './height_cache';
-import custom_emojis from './custom_emojis';
-import lists from './lists';
-import listEditor from './list_editor';
-import listAdder from './list_adder';
-import filters from './filters';
-import conversations from './conversations';
-import suggestions from './suggestions';
-import polls from './polls';
-import identity_proofs from './identity_proofs';
-import trends from './trends';
-import groups from './groups';
-import group_relationships from './group_relationships';
-import group_lists from './group_lists';
-import group_editor from './group_editor';
-import sidebar from './sidebar';
-import patron from './patron';
-import soapbox from './soapbox';
-import instance from './instance';
-import me from './me';
-import auth from './auth';
-import admin from './admin';
-import chats from './chats';
-import chat_messages from './chat_messages';
-import chat_message_lists from './chat_message_lists';
-import profile_hover_card from './profile_hover_card';
-import backups from './backups';
-import admin_log from './admin_log';
-import security from './security';
-import scheduled_statuses from './scheduled_statuses';
-import aliases from './aliases';
import accounts_meta from './accounts_meta';
+import admin from './admin';
+import admin_log from './admin_log';
+import alerts from './alerts';
+import aliases from './aliases';
+import auth from './auth';
+import backups from './backups';
+import chat_message_lists from './chat_message_lists';
+import chat_messages from './chat_messages';
+import chats from './chats';
+import compose from './compose';
+import contexts from './contexts';
+import conversations from './conversations';
+import custom_emojis from './custom_emojis';
+import domain_lists from './domain_lists';
+import dropdown_menu from './dropdown_menu';
+import filters from './filters';
+import group_editor from './group_editor';
+import group_lists from './group_lists';
+import group_relationships from './group_relationships';
+import groups from './groups';
+import height_cache from './height_cache';
+import identity_proofs from './identity_proofs';
+import instance from './instance';
+import listAdder from './list_adder';
+import listEditor from './list_editor';
+import lists from './lists';
+import me from './me';
+import meta from './meta';
+import modal from './modal';
+import mutes from './mutes';
+import notifications from './notifications';
+import patron from './patron';
import pending_statuses from './pending_statuses';
+import polls from './polls';
+import profile_hover_card from './profile_hover_card';
+import push_notifications from './push_notifications';
+import relationships from './relationships';
+import reports from './reports';
+import scheduled_statuses from './scheduled_statuses';
+import search from './search';
+import security from './security';
+import settings from './settings';
+import sidebar from './sidebar';
+import soapbox from './soapbox';
+import status_lists from './status_lists';
+import statuses from './statuses';
+import suggestions from './suggestions';
+import timelines from './timelines';
+import trends from './trends';
+import user_lists from './user_lists';
const appReducer = combineReducers({
dropdown_menu,
diff --git a/app/soapbox/reducers/instance.js b/app/soapbox/reducers/instance.js
index 14714f771..c0f3f417e 100644
--- a/app/soapbox/reducers/instance.js
+++ b/app/soapbox/reducers/instance.js
@@ -1,8 +1,8 @@
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 { PLEROMA_PRELOAD_IMPORT } from 'soapbox/actions/preload';
import KVStore from 'soapbox/storage/kv_store';
+import { ConfigDB } from 'soapbox/utils/config_db';
import {
INSTANCE_REMEMBER_SUCCESS,
INSTANCE_FETCH_SUCCESS,
diff --git a/app/soapbox/reducers/me.js b/app/soapbox/reducers/me.js
index 021855a14..f5fc11f20 100644
--- a/app/soapbox/reducers/me.js
+++ b/app/soapbox/reducers/me.js
@@ -1,14 +1,14 @@
+import {
+ AUTH_LOGGED_OUT,
+ AUTH_ACCOUNT_REMEMBER_SUCCESS,
+ VERIFY_CREDENTIALS_SUCCESS,
+} from '../actions/auth';
import {
ME_FETCH_SUCCESS,
ME_FETCH_FAIL,
ME_FETCH_SKIP,
ME_PATCH_SUCCESS,
} from '../actions/me';
-import {
- AUTH_LOGGED_OUT,
- AUTH_ACCOUNT_REMEMBER_SUCCESS,
- VERIFY_CREDENTIALS_SUCCESS,
-} from '../actions/auth';
const initialState = null;
diff --git a/app/soapbox/reducers/notifications.js b/app/soapbox/reducers/notifications.js
index 35e553599..44691b9ed 100644
--- a/app/soapbox/reducers/notifications.js
+++ b/app/soapbox/reducers/notifications.js
@@ -4,6 +4,12 @@ import {
MARKER_SAVE_REQUEST,
MARKER_SAVE_SUCCESS,
} from 'soapbox/actions/markers';
+import {
+ ACCOUNT_BLOCK_SUCCESS,
+ ACCOUNT_MUTE_SUCCESS,
+ FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
+ FOLLOW_REQUEST_REJECT_SUCCESS,
+} from '../actions/accounts';
import {
NOTIFICATIONS_UPDATE,
NOTIFICATIONS_EXPAND_SUCCESS,
@@ -17,12 +23,6 @@ import {
NOTIFICATIONS_MARK_READ_REQUEST,
MAX_QUEUED_NOTIFICATIONS,
} from '../actions/notifications';
-import {
- ACCOUNT_BLOCK_SUCCESS,
- ACCOUNT_MUTE_SUCCESS,
- FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
- FOLLOW_REQUEST_REJECT_SUCCESS,
-} from '../actions/accounts';
import { TIMELINE_DELETE } from '../actions/timelines';
const initialState = ImmutableMap({
diff --git a/app/soapbox/reducers/relationships.js b/app/soapbox/reducers/relationships.js
index 1f0068dc8..f0c507b01 100644
--- a/app/soapbox/reducers/relationships.js
+++ b/app/soapbox/reducers/relationships.js
@@ -18,14 +18,14 @@ import {
ACCOUNT_UNPIN_SUCCESS,
RELATIONSHIPS_FETCH_SUCCESS,
} from '../actions/accounts';
-import {
- ACCOUNT_IMPORT,
- ACCOUNTS_IMPORT,
-} from '../actions/importer';
import {
DOMAIN_BLOCK_SUCCESS,
DOMAIN_UNBLOCK_SUCCESS,
} from '../actions/domain_blocks';
+import {
+ ACCOUNT_IMPORT,
+ ACCOUNTS_IMPORT,
+} from '../actions/importer';
const normalizeRelationship = (state, relationship) => state.set(relationship.id, fromJS(relationship));
diff --git a/app/soapbox/reducers/scheduled_statuses.js b/app/soapbox/reducers/scheduled_statuses.js
index af74daa53..3da90a120 100644
--- a/app/soapbox/reducers/scheduled_statuses.js
+++ b/app/soapbox/reducers/scheduled_statuses.js
@@ -1,10 +1,10 @@
import { Map as ImmutableMap, fromJS } from 'immutable';
-import { STATUS_CREATE_SUCCESS } from 'soapbox/actions/statuses';
import {
SCHEDULED_STATUSES_FETCH_SUCCESS,
SCHEDULED_STATUS_CANCEL_REQUEST,
SCHEDULED_STATUS_CANCEL_SUCCESS,
} from 'soapbox/actions/scheduled_statuses';
+import { STATUS_CREATE_SUCCESS } from 'soapbox/actions/statuses';
import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer';
const importStatus = (state, status) => {
diff --git a/app/soapbox/reducers/search.js b/app/soapbox/reducers/search.js
index 2ba1f2158..af0e3960d 100644
--- a/app/soapbox/reducers/search.js
+++ b/app/soapbox/reducers/search.js
@@ -1,4 +1,9 @@
import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable';
+import {
+ COMPOSE_MENTION,
+ COMPOSE_REPLY,
+ COMPOSE_DIRECT,
+} from '../actions/compose';
import {
SEARCH_CHANGE,
SEARCH_CLEAR,
@@ -9,11 +14,6 @@ import {
SEARCH_EXPAND_REQUEST,
SEARCH_EXPAND_SUCCESS,
} from '../actions/search';
-import {
- COMPOSE_MENTION,
- COMPOSE_REPLY,
- COMPOSE_DIRECT,
-} from '../actions/compose';
const initialState = ImmutableMap({
value: '',
diff --git a/app/soapbox/reducers/security.js b/app/soapbox/reducers/security.js
index d87297d54..b1c3d1bf5 100644
--- a/app/soapbox/reducers/security.js
+++ b/app/soapbox/reducers/security.js
@@ -1,8 +1,4 @@
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
-import {
- FETCH_TOKENS_SUCCESS,
- REVOKE_TOKEN_SUCCESS,
-} from '../actions/security';
import {
MFA_FETCH_SUCCESS,
MFA_CONFIRM_SUCCESS,
@@ -10,6 +6,10 @@ import {
MFA_DISABLE_SUCCESS,
MFA_DISABLE_FAIL,
} from '../actions/mfa';
+import {
+ FETCH_TOKENS_SUCCESS,
+ REVOKE_TOKEN_SUCCESS,
+} from '../actions/security';
const initialState = ImmutableMap({
tokens: ImmutableList(),
diff --git a/app/soapbox/reducers/settings.js b/app/soapbox/reducers/settings.js
index a42d76646..ae161dba2 100644
--- a/app/soapbox/reducers/settings.js
+++ b/app/soapbox/reducers/settings.js
@@ -1,14 +1,14 @@
import { Map as ImmutableMap, fromJS } from 'immutable';
import { ME_FETCH_SUCCESS } from 'soapbox/actions/me';
+import { EMOJI_USE } from '../actions/emojis';
+import { NOTIFICATIONS_FILTER_SET } from '../actions/notifications';
+import { SEARCH_FILTER_SET } from '../actions/search';
import {
SETTING_CHANGE,
SETTING_SAVE,
SETTINGS_UPDATE,
FE_NAME,
} from '../actions/settings';
-import { NOTIFICATIONS_FILTER_SET } from '../actions/notifications';
-import { SEARCH_FILTER_SET } from '../actions/search';
-import { EMOJI_USE } from '../actions/emojis';
// Default settings are in action/settings.js
//
diff --git a/app/soapbox/reducers/soapbox.js b/app/soapbox/reducers/soapbox.js
index dad6255b0..db31d4f49 100644
--- a/app/soapbox/reducers/soapbox.js
+++ b/app/soapbox/reducers/soapbox.js
@@ -1,12 +1,12 @@
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 { ConfigDB } from 'soapbox/utils/config_db';
+import { ADMIN_CONFIG_UPDATE_SUCCESS } from '../actions/admin';
import {
SOAPBOX_CONFIG_REQUEST_SUCCESS,
SOAPBOX_CONFIG_REQUEST_FAIL,
} from '../actions/soapbox';
-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 d0b7dbf71..ba7885002 100644
--- a/app/soapbox/reducers/status_lists.js
+++ b/app/soapbox/reducers/status_lists.js
@@ -1,4 +1,12 @@
import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
+import {
+ BOOKMARKED_STATUSES_FETCH_REQUEST,
+ BOOKMARKED_STATUSES_FETCH_SUCCESS,
+ BOOKMARKED_STATUSES_FETCH_FAIL,
+ BOOKMARKED_STATUSES_EXPAND_REQUEST,
+ BOOKMARKED_STATUSES_EXPAND_SUCCESS,
+ BOOKMARKED_STATUSES_EXPAND_FAIL,
+} from '../actions/bookmarks';
import {
FAVOURITED_STATUSES_FETCH_REQUEST,
FAVOURITED_STATUSES_FETCH_SUCCESS,
@@ -13,17 +21,6 @@ import {
ACCOUNT_FAVOURITED_STATUSES_EXPAND_SUCCESS,
ACCOUNT_FAVOURITED_STATUSES_EXPAND_FAIL,
} from '../actions/favourites';
-import {
- BOOKMARKED_STATUSES_FETCH_REQUEST,
- BOOKMARKED_STATUSES_FETCH_SUCCESS,
- BOOKMARKED_STATUSES_FETCH_FAIL,
- BOOKMARKED_STATUSES_EXPAND_REQUEST,
- BOOKMARKED_STATUSES_EXPAND_SUCCESS,
- BOOKMARKED_STATUSES_EXPAND_FAIL,
-} from '../actions/bookmarks';
-import {
- PINNED_STATUSES_FETCH_SUCCESS,
-} from '../actions/pin_statuses';
import {
FAVOURITE_SUCCESS,
UNFAVOURITE_SUCCESS,
@@ -32,6 +29,9 @@ import {
PIN_SUCCESS,
UNPIN_SUCCESS,
} from '../actions/interactions';
+import {
+ PINNED_STATUSES_FETCH_SUCCESS,
+} from '../actions/pin_statuses';
import {
SCHEDULED_STATUSES_FETCH_REQUEST,
SCHEDULED_STATUSES_FETCH_SUCCESS,
diff --git a/app/soapbox/reducers/statuses.js b/app/soapbox/reducers/statuses.js
index dfe4dfc24..b3d1e3932 100644
--- a/app/soapbox/reducers/statuses.js
+++ b/app/soapbox/reducers/statuses.js
@@ -1,5 +1,10 @@
import { Map as ImmutableMap, fromJS } from 'immutable';
import { simulateEmojiReact, simulateUnEmojiReact } from 'soapbox/utils/emoji_reacts';
+import {
+ EMOJI_REACT_REQUEST,
+ UNEMOJI_REACT_REQUEST,
+} from '../actions/emoji_reacts';
+import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer';
import {
REBLOG_REQUEST,
REBLOG_FAIL,
@@ -17,12 +22,7 @@ import {
STATUS_REVEAL,
STATUS_HIDE,
} from '../actions/statuses';
-import {
- EMOJI_REACT_REQUEST,
- UNEMOJI_REACT_REQUEST,
-} from '../actions/emoji_reacts';
import { TIMELINE_DELETE } from '../actions/timelines';
-import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer';
// Fix order of mentions
const fixMentions = status => {
diff --git a/app/soapbox/reducers/timelines.js b/app/soapbox/reducers/timelines.js
index f43b1c60a..fbe825364 100644
--- a/app/soapbox/reducers/timelines.js
+++ b/app/soapbox/reducers/timelines.js
@@ -4,6 +4,16 @@ import {
OrderedSet as ImmutableOrderedSet,
fromJS,
} from 'immutable';
+import {
+ ACCOUNT_BLOCK_SUCCESS,
+ ACCOUNT_MUTE_SUCCESS,
+ ACCOUNT_UNFOLLOW_SUCCESS,
+} from '../actions/accounts';
+import { GROUP_REMOVE_STATUS_SUCCESS } from '../actions/groups';
+import {
+ STATUS_CREATE_REQUEST,
+ STATUS_CREATE_SUCCESS,
+} from '../actions/statuses';
import {
TIMELINE_UPDATE,
TIMELINE_DELETE,
@@ -18,16 +28,6 @@ import {
MAX_QUEUED_ITEMS,
TIMELINE_SCROLL_TOP,
} from '../actions/timelines';
-import {
- ACCOUNT_BLOCK_SUCCESS,
- ACCOUNT_MUTE_SUCCESS,
- ACCOUNT_UNFOLLOW_SUCCESS,
-} from '../actions/accounts';
-import {
- STATUS_CREATE_REQUEST,
- STATUS_CREATE_SUCCESS,
-} from '../actions/statuses';
-import { GROUP_REMOVE_STATUS_SUCCESS } from '../actions/groups';
const TRUNCATE_LIMIT = 40;
const TRUNCATE_SIZE = 20;
diff --git a/app/soapbox/reducers/user_lists.js b/app/soapbox/reducers/user_lists.js
index d291fb9b2..252ece7e5 100644
--- a/app/soapbox/reducers/user_lists.js
+++ b/app/soapbox/reducers/user_lists.js
@@ -1,7 +1,4 @@
import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
-import {
- NOTIFICATIONS_UPDATE,
-} from '../actions/notifications';
import {
FOLLOWERS_FETCH_SUCCESS,
FOLLOWERS_EXPAND_SUCCESS,
@@ -12,19 +9,10 @@ import {
FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
FOLLOW_REQUEST_REJECT_SUCCESS,
} from '../actions/accounts';
-import {
- REBLOGS_FETCH_SUCCESS,
- FAVOURITES_FETCH_SUCCESS,
- REACTIONS_FETCH_SUCCESS,
-} from '../actions/interactions';
import {
BLOCKS_FETCH_SUCCESS,
BLOCKS_EXPAND_SUCCESS,
} from '../actions/blocks';
-import {
- MUTES_FETCH_SUCCESS,
- MUTES_EXPAND_SUCCESS,
-} from '../actions/mutes';
import {
DIRECTORY_FETCH_REQUEST,
DIRECTORY_FETCH_SUCCESS,
@@ -40,6 +28,18 @@ import {
GROUP_REMOVED_ACCOUNTS_EXPAND_SUCCESS,
GROUP_REMOVED_ACCOUNTS_REMOVE_SUCCESS,
} from '../actions/groups';
+import {
+ REBLOGS_FETCH_SUCCESS,
+ FAVOURITES_FETCH_SUCCESS,
+ REACTIONS_FETCH_SUCCESS,
+} from '../actions/interactions';
+import {
+ MUTES_FETCH_SUCCESS,
+ MUTES_EXPAND_SUCCESS,
+} from '../actions/mutes';
+import {
+ NOTIFICATIONS_UPDATE,
+} from '../actions/notifications';
const initialState = ImmutableMap({
followers: ImmutableMap(),
diff --git a/app/soapbox/selectors/index.js b/app/soapbox/selectors/index.js
index 3f182c222..825a7e7cd 100644
--- a/app/soapbox/selectors/index.js
+++ b/app/soapbox/selectors/index.js
@@ -1,14 +1,14 @@
-import { createSelector } from 'reselect';
import {
Map as ImmutableMap,
List as ImmutableList,
OrderedSet as ImmutableOrderedSet,
} from 'immutable';
-import { getDomain } from 'soapbox/utils/accounts';
-import ConfigDB from 'soapbox/utils/config_db';
+import { createSelector } from 'reselect';
import { getSettings } from 'soapbox/actions/settings';
-import { shouldFilter } from 'soapbox/utils/timelines';
+import { getDomain } from 'soapbox/utils/accounts';
import { validId } from 'soapbox/utils/auth';
+import ConfigDB from 'soapbox/utils/config_db';
+import { shouldFilter } from 'soapbox/utils/timelines';
const getAccountBase = (state, id) => state.getIn(['accounts', id], null);
const getAccountCounters = (state, id) => state.getIn(['accounts_counters', id], null);
diff --git a/app/soapbox/store/configureStore.js b/app/soapbox/store/configureStore.js
index 63f92cf53..0ce23eb89 100644
--- a/app/soapbox/store/configureStore.js
+++ b/app/soapbox/store/configureStore.js
@@ -1,8 +1,8 @@
import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
-import appReducer from '../reducers';
import errorsMiddleware from '../middleware/errors';
import soundsMiddleware from '../middleware/sounds';
+import appReducer from '../reducers';
export default function configureStore() {
return createStore(appReducer, compose(applyMiddleware(
diff --git a/app/soapbox/test_helpers.js b/app/soapbox/test_helpers.js
index e77985e91..d562f1f95 100644
--- a/app/soapbox/test_helpers.js
+++ b/app/soapbox/test_helpers.js
@@ -1,13 +1,13 @@
'use strict';
-import React from 'react';
-import thunk from 'redux-thunk';
-import renderer from 'react-test-renderer';
-import { Provider } from 'react-redux';
-import { IntlProvider } from 'react-intl';
-import { BrowserRouter } from 'react-router-dom';
-import configureMockStore from 'redux-mock-store';
import { Map as ImmutableMap } from 'immutable';
+import React from 'react';
+import { IntlProvider } from 'react-intl';
+import { Provider } from 'react-redux';
+import { BrowserRouter } from 'react-router-dom';
+import renderer from 'react-test-renderer';
+import configureMockStore from 'redux-mock-store';
+import thunk from 'redux-thunk';
import rootReducer from 'soapbox/reducers';
// Mock Redux
diff --git a/app/soapbox/utils/features.js b/app/soapbox/utils/features.js
index ddab89c73..7d73a5535 100644
--- a/app/soapbox/utils/features.js
+++ b/app/soapbox/utils/features.js
@@ -1,8 +1,8 @@
// Detect backend features to conditionally render elements
-import gte from 'semver/functions/gte';
-import lt from 'semver/functions/lt';
import { List as ImmutableList, Map as ImmutableMap } from 'immutable';
import { createSelector } from 'reselect';
+import gte from 'semver/functions/gte';
+import lt from 'semver/functions/lt';
const any = arr => arr.some(Boolean);
diff --git a/app/soapbox/utils/state.js b/app/soapbox/utils/state.js
index 8cd6db20d..5ccb4284d 100644
--- a/app/soapbox/utils/state.js
+++ b/app/soapbox/utils/state.js
@@ -4,10 +4,10 @@
*/
import { getSoapboxConfig } from'soapbox/actions/soapbox';
-import { isPrerendered } from 'soapbox/precheck';
-import { isURL } from 'soapbox/utils/auth';
-import { getBaseURL as getAccountBaseURL } from 'soapbox/utils/accounts';
import { BACKEND_URL } from 'soapbox/build_config';
+import { isPrerendered } from 'soapbox/precheck';
+import { getBaseURL as getAccountBaseURL } from 'soapbox/utils/accounts';
+import { isURL } from 'soapbox/utils/auth';
export const displayFqn = state => {
const soapbox = getSoapboxConfig(state);
diff --git a/webpack/production.js b/webpack/production.js
index 37a1a4397..65869c476 100644
--- a/webpack/production.js
+++ b/webpack/production.js
@@ -2,9 +2,9 @@
console.log('Running in production mode'); // eslint-disable-line no-console
const { join } = require('path');
-const { merge } = require('webpack-merge');
-const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const OfflinePlugin = require('@lcdp/offline-plugin');
+const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
+const { merge } = require('webpack-merge');
const sharedConfig = require('./shared');
const { FE_SUBDIRECTORY } = require(join(__dirname, '..', 'app', 'soapbox', 'build_config'));
diff --git a/webpack/rules/index.js b/webpack/rules/index.js
index d3290659e..39324e159 100644
--- a/webpack/rules/index.js
+++ b/webpack/rules/index.js
@@ -1,9 +1,9 @@
-const babel = require('./babel');
-const git = require('./babel-git');
-const gitRefresh = require('./git-refresh');
-const buildConfig = require('./babel-build-config');
-const css = require('./css');
const assets = require('./assets');
+const babel = require('./babel');
+const buildConfig = require('./babel-build-config');
+const git = require('./babel-git');
+const css = require('./css');
+const gitRefresh = require('./git-refresh');
const nodeModules = require('./node_modules');
// Webpack loaders are processed in reverse order
diff --git a/webpack/shared.js b/webpack/shared.js
index 3e13fcbf2..38cefd08d 100644
--- a/webpack/shared.js
+++ b/webpack/shared.js
@@ -1,12 +1,12 @@
// Note: You must restart bin/webpack-dev-server for changes to take effect
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');
-const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
const CopyPlugin = require('copy-webpack-plugin');
+const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+const MiniCssExtractPlugin = require('mini-css-extract-plugin');
+const webpack = require('webpack');
+const AssetsManifestPlugin = require('webpack-assets-manifest');
const { env, settings, output } = require('./configuration');
const rules = require('./rules');