fizzbuzz() }}
+ values={{ function: soapbox() }}
/>
{challenge}
diff --git a/app/soapbox/features/developers/developers_menu.js b/app/soapbox/features/developers/developers_menu.js
index 3caa036d8..a0031497e 100644
--- a/app/soapbox/features/developers/developers_menu.js
+++ b/app/soapbox/features/developers/developers_menu.js
@@ -1,12 +1,14 @@
-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 Column from '../ui/components/column';
-import Icon from 'soapbox/components/icon';
-import { changeSetting } from 'soapbox/actions/settings';
+
+import { changeSettingImmediate } 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({
heading: { id: 'column.developers', defaultMessage: 'Developers' },
@@ -29,7 +31,7 @@ class DevelopersMenu extends React.Component {
leaveDevelopers = e => {
const { intl, dispatch } = this.props;
- dispatch(changeSetting(['isDeveloper'], false));
+ dispatch(changeSettingImmediate(['isDeveloper'], false));
dispatch(snackbar.success(intl.formatMessage(messages.leave)));
this.context.router.history.push('/');
diff --git a/app/soapbox/features/developers/index.js b/app/soapbox/features/developers/index.js
index 1302eab92..3d58c9249 100644
--- a/app/soapbox/features/developers/index.js
+++ b/app/soapbox/features/developers/index.js
@@ -1,9 +1,11 @@
-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..cf589615e 100644
--- a/app/soapbox/features/developers/settings_store.js
+++ b/app/soapbox/features/developers/settings_store.js
@@ -1,14 +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, 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 946a29ad3..5d0dd2d5b 100644
--- a/app/soapbox/features/direct_timeline/index.js
+++ b/app/soapbox/features/direct_timeline/index.js
@@ -1,15 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
import PropTypes from 'prop-types';
-import StatusListContainer from '../ui/containers/status_list_container';
-import Column from '../../components/column';
-import ColumnHeader from '../../components/column_header';
-import { expandDirectTimeline } from '../../actions/timelines';
+import React from 'react';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { connectDirectStream } from '../../actions/streaming';
+import { connect } from 'react-redux';
+
import { directComposeById } from 'soapbox/actions/compose';
import AccountSearch from 'soapbox/components/account_search';
+import { connectDirectStream } from '../../actions/streaming';
+import { expandDirectTimeline } from '../../actions/timelines';
+import Column from '../../components/column';
+import ColumnHeader from '../../components/column_header';
+import StatusListContainer from '../ui/containers/status_list_container';
+
const messages = defineMessages({
title: { id: 'column.direct', defaultMessage: 'Direct messages' },
searchPlaceholder: { id: 'direct.search_placeholder', defaultMessage: 'Send a message to…' },
diff --git a/app/soapbox/features/directory/components/account_card.js b/app/soapbox/features/directory/components/account_card.js
index 05975ed8f..36b53d416 100644
--- a/app/soapbox/features/directory/components/account_card.js
+++ b/app/soapbox/features/directory/components/account_card.js
@@ -1,19 +1,20 @@
-import React from 'react';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import { connect } from 'react-redux';
import classNames from 'classnames';
-import { makeGetAccount } from 'soapbox/selectors';
+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 { 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 { FormattedMessage, injectIntl } from 'react-intl';
-import { getSettings } from 'soapbox/actions/settings';
-import { shortNumberFormat } from 'soapbox/utils/numbers';
import ActionButton from 'soapbox/features/ui/components/action_button';
+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 52209e9f1..ada1010cf 100644
--- a/app/soapbox/features/directory/index.js
+++ b/app/soapbox/features/directory/index.js
@@ -1,17 +1,19 @@
-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 Column from 'soapbox/features/ui/components/column';
-import { fetchDirectory, expandDirectory } from 'soapbox/actions/directory';
-import { List as ImmutableList } from 'immutable';
-import AccountCard from './components/account_card';
-import RadioButton from 'soapbox/components/radio_button';
import classNames from 'classnames';
+import { 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 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';
+
const messages = defineMessages({
title: { id: 'column.directory', defaultMessage: 'Browse profiles' },
recentlyActive: { id: 'directory.recently_active', defaultMessage: 'Recently active' },
diff --git a/app/soapbox/features/domain_blocks/index.js b/app/soapbox/features/domain_blocks/index.js
index bbbc9d60f..d9d376293 100644
--- a/app/soapbox/features/domain_blocks/index.js
+++ b/app/soapbox/features/domain_blocks/index.js
@@ -1,15 +1,16 @@
-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..3b73e48f8 100644
--- a/app/soapbox/features/edit_profile/components/profile_preview.js
+++ b/app/soapbox/features/edit_profile/components/profile_preview.js
@@ -1,11 +1,12 @@
-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 64f99a000..f38197653 100644
--- a/app/soapbox/features/edit_profile/index.js
+++ b/app/soapbox/features/edit_profile/index.js
@@ -1,11 +1,20 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import {
+ Map as ImmutableMap,
+ List as ImmutableList,
+} from 'immutable';
+import { unescape } 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 { updateNotificationSettings } from 'soapbox/actions/accounts';
+import { patchMe } from 'soapbox/actions/me';
import snackbar from 'soapbox/actions/snackbar';
-import Column from '../ui/components/column';
+import { getSoapboxConfig } from 'soapbox/actions/soapbox';
+import Icon from 'soapbox/components/icon';
import {
SimpleForm,
FieldsGroup,
@@ -14,21 +23,15 @@ import {
FileChooser,
SimpleTextarea,
} from 'soapbox/features/forms';
-import ProfilePreview from './components/profile_preview';
-import {
- Map as ImmutableMap,
- List as ImmutableList,
-} from 'immutable';
-import { patchMe } from 'soapbox/actions/me';
-import { updateNotificationSettings } from 'soapbox/actions/accounts';
-import Icon from 'soapbox/components/icon';
-import { unescape } from 'lodash';
-import { 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';
+
const hidesNetwork = account => {
const pleroma = account.get('pleroma');
if (!pleroma) return false;
diff --git a/app/soapbox/features/emoji/__tests__/emoji_index-test.js b/app/soapbox/features/emoji/__tests__/emoji_index-test.js
index 9df2d34a0..90ae0993d 100644
--- a/app/soapbox/features/emoji/__tests__/emoji_index-test.js
+++ b/app/soapbox/features/emoji/__tests__/emoji_index-test.js
@@ -1,5 +1,6 @@
-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.js b/app/soapbox/features/emoji/emoji.js
index e43f67ac7..0ce74c4de 100644
--- a/app/soapbox/features/emoji/emoji.js
+++ b/app/soapbox/features/emoji/emoji.js
@@ -1,7 +1,9 @@
-import unicodeMapping from './emoji_unicode_mapping_light';
import Trie from 'substring-trie';
+
import { joinPublicPath } from 'soapbox/utils/static';
+import unicodeMapping from './emoji_unicode_mapping_light';
+
const trie = new Trie(Object.keys(unicodeMapping));
const emojify = (str, customEmojis = {}, autoplay = false) => {
diff --git a/app/soapbox/features/emoji/emoji_compressed.js b/app/soapbox/features/emoji/emoji_compressed.js
index 4fb51ed0a..c95bccf08 100644
--- a/app/soapbox/features/emoji/emoji_compressed.js
+++ b/app/soapbox/features/emoji/emoji_compressed.js
@@ -5,13 +5,14 @@
// It's designed to be emitted in an array format to take up less space
// over the wire.
-const { unicodeToFilename } = require('./unicode_to_filename');
-const { unicodeToUnifiedName } = require('./unicode_to_unified_name');
-const emojiMap = require('./emoji_map.json');
const { emojiIndex } = require('emoji-mart');
+let data = require('emoji-mart/data/all.json');
const { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data');
-let data = require('emoji-mart/data/all.json');
+const emojiMap = require('./emoji_map.json');
+const { unicodeToFilename } = require('./unicode_to_filename');
+const { unicodeToUnifiedName } = require('./unicode_to_unified_name');
+
if(data.compressed) {
data = emojiMartUncompress(data);
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..87ca8ba50 100644
--- a/app/soapbox/features/export_data/components/csv_exporter.js
+++ b/app/soapbox/features/export_data/components/csv_exporter.js
@@ -1,8 +1,9 @@
-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 1c472edce..0d86bfd69 100644
--- a/app/soapbox/features/export_data/index.js
+++ b/app/soapbox/features/export_data/index.js
@@ -1,17 +1,20 @@
-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 Column from '../ui/components/column';
+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,
exportMutes,
} from 'soapbox/actions/export_data';
-import CSVExporter from './components/csv_exporter';
import { getFeatures } from 'soapbox/utils/features';
+import Column from '../ui/components/column';
+
+import CSVExporter from './components/csv_exporter';
+
const messages = defineMessages({
heading: { id: 'column.export_data', defaultMessage: 'Export data' },
submit: { id: 'export_data.actions.export', defaultMessage: 'Export' },
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..c5da61efb 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,11 @@
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/external_login/index.js b/app/soapbox/features/external_login/index.js
index 1971b1813..881c2e08f 100644
--- a/app/soapbox/features/external_login/index.js
+++ b/app/soapbox/features/external_login/index.js
@@ -1,5 +1,6 @@
import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
+
import ExternalLoginForm from './components/external_login_form';
export default class ExternalLoginPage extends ImmutablePureComponent {
diff --git a/app/soapbox/features/favourited_statuses/index.js b/app/soapbox/features/favourited_statuses/index.js
index e70f24634..8239b9071 100644
--- a/app/soapbox/features/favourited_statuses/index.js
+++ b/app/soapbox/features/favourited_statuses/index.js
@@ -1,18 +1,20 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { fetchFavouritedStatuses, expandFavouritedStatuses, fetchAccountFavouritedStatuses, expandAccountFavouritedStatuses } from '../../actions/favourites';
-import Column from '../ui/components/column';
-import StatusList from '../../components/status_list';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import { debounce } from 'lodash';
+import 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 { fetchAccount, fetchAccountByUsername } from '../../actions/accounts';
-import LoadingIndicator from '../../components/loading_indicator';
import { findAccountByUsername } from 'soapbox/selectors';
+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..f4f1145f4 100644
--- a/app/soapbox/features/federation_restrictions/components/instance_restrictions.js
+++ b/app/soapbox/features/federation_restrictions/components/instance_restrictions.js
@@ -1,11 +1,12 @@
'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 a725aacfb..38ca1b602 100644
--- a/app/soapbox/features/federation_restrictions/components/restricted_instance.js
+++ b/app/soapbox/features/federation_restrictions/components/restricted_instance.js
@@ -1,11 +1,13 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { makeGetRemoteInstance } from 'soapbox/selectors';
import classNames from 'classnames';
-import InstanceRestrictions from './instance_restrictions';
+import 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 1332218e8..dc83d0e27 100644
--- a/app/soapbox/features/federation_restrictions/index.js
+++ b/app/soapbox/features/federation_restrictions/index.js
@@ -1,14 +1,17 @@
-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 Column from '../ui/components/column';
-import RestrictedInstance from './components/restricted_instance';
-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';
const messages = defineMessages({
heading: { id: 'column.federation_restrictions', defaultMessage: 'Federation Restrictions' },
diff --git a/app/soapbox/features/filters/index.js b/app/soapbox/features/filters/index.js
index abd497fa5..9a7ffac37 100644
--- a/app/soapbox/features/filters/index.js
+++ b/app/soapbox/features/filters/index.js
@@ -1,12 +1,12 @@
-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 Column from '../ui/components/column';
-import { fetchFilters, createFilter, deleteFilter } from '../../actions/filters';
-import ScrollableList from '../../components/scrollable_list';
+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,
@@ -14,8 +14,10 @@ import {
SelectDropdown,
Checkbox,
} from 'soapbox/features/forms';
-import snackbar from 'soapbox/actions/snackbar';
-import Icon from 'soapbox/components/icon';
+
+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';
const messages = defineMessages({
diff --git a/app/soapbox/features/follow_recommendations/components/account.js b/app/soapbox/features/follow_recommendations/components/account.js
index 1796aceea..bca3c8400 100644
--- a/app/soapbox/features/follow_recommendations/components/account.js
+++ b/app/soapbox/features/follow_recommendations/components/account.js
@@ -1,13 +1,14 @@
-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..0fe648dca 100644
--- a/app/soapbox/features/follow_recommendations/components/follow_recommendations_container.js
+++ b/app/soapbox/features/follow_recommendations/components/follow_recommendations_container.js
@@ -1,7 +1,9 @@
-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';
export default class FollowRecommendationsContainer extends React.Component {
diff --git a/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js b/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js
index 7eab96bc7..63175786b 100644
--- a/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js
+++ b/app/soapbox/features/follow_recommendations/components/follow_recommendations_list.js
@@ -1,13 +1,15 @@
-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 Account from './account';
import LoadingIndicator from 'soapbox/components/loading_indicator';
+import Account from './account';
+
const mapStateToProps = state => ({
suggestions: state.getIn(['suggestions', 'items']),
isLoading: state.getIn(['suggestions', 'isLoading']),
diff --git a/app/soapbox/features/follow_recommendations/index.js b/app/soapbox/features/follow_recommendations/index.js
index b3aa44ea6..5941f1f97 100644
--- a/app/soapbox/features/follow_recommendations/index.js
+++ b/app/soapbox/features/follow_recommendations/index.js
@@ -1,6 +1,8 @@
-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';
export default class FollowRecommendations extends React.Component {
diff --git a/app/soapbox/features/follow_requests/components/account_authorize.js b/app/soapbox/features/follow_requests/components/account_authorize.js
index ba8606690..8dd6a9252 100644
--- a/app/soapbox/features/follow_requests/components/account_authorize.js
+++ b/app/soapbox/features/follow_requests/components/account_authorize.js
@@ -1,12 +1,13 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import Permalink from '../../../components/permalink';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl } from 'react-intl';
+
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+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..cf38b3c69 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,8 @@
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 74b2ac7fb..49fd31793 100644
--- a/app/soapbox/features/follow_requests/index.js
+++ b/app/soapbox/features/follow_requests/index.js
@@ -1,15 +1,17 @@
-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 AccountAuthorizeContainer from './containers/account_authorize_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 { 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({
heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' },
diff --git a/app/soapbox/features/followers/index.js b/app/soapbox/features/followers/index.js
index ef760cef5..be3336fd0 100644
--- a/app/soapbox/features/followers/index.js
+++ b/app/soapbox/features/followers/index.js
@@ -1,23 +1,25 @@
-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 LoadingIndicator from '../../components/loading_indicator';
+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 { getFollowDifference } from 'soapbox/utils/accounts';
+
import {
fetchAccount,
fetchFollowers,
expandFollowers,
fetchAccountByUsername,
} from '../../actions/accounts';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+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';
-import MissingIndicator from 'soapbox/components/missing_indicator';
-import { getFollowDifference } from 'soapbox/utils/accounts';
-import { findAccountByUsername } from 'soapbox/selectors';
const messages = defineMessages({
heading: { id: 'column.followers', defaultMessage: 'Followers' },
diff --git a/app/soapbox/features/following/index.js b/app/soapbox/features/following/index.js
index acf17f3e3..da1a0beb9 100644
--- a/app/soapbox/features/following/index.js
+++ b/app/soapbox/features/following/index.js
@@ -1,23 +1,25 @@
-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 LoadingIndicator from '../../components/loading_indicator';
+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 { getFollowDifference } from 'soapbox/utils/accounts';
+
import {
fetchAccount,
fetchFollowing,
expandFollowing,
fetchAccountByUsername,
} from '../../actions/accounts';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+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';
-import MissingIndicator from 'soapbox/components/missing_indicator';
-import { getFollowDifference } from 'soapbox/utils/accounts';
-import { findAccountByUsername } from 'soapbox/selectors';
const messages = defineMessages({
heading: { id: 'column.following', defaultMessage: 'Following' },
diff --git a/app/soapbox/features/forms/__tests__/forms-test.js b/app/soapbox/features/forms/__tests__/forms-test.js
index 881f6f053..566e87c0f 100644
--- a/app/soapbox/features/forms/__tests__/forms-test.js
+++ b/app/soapbox/features/forms/__tests__/forms-test.js
@@ -1,5 +1,6 @@
import React from 'react';
import renderer from 'react-test-renderer';
+
import {
InputContainer,
SimpleInput,
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..4c45a1359 100644
--- a/app/soapbox/features/generic_not_found/index.js
+++ b/app/soapbox/features/generic_not_found/index.js
@@ -1,6 +1,7 @@
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 cba67711b..271ac8402 100644
--- a/app/soapbox/features/groups/create/index.js
+++ b/app/soapbox/features/groups/create/index.js
@@ -1,9 +1,10 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import { changeValue, submit, reset } from '../../../actions/group_editor';
-import { defineMessages, injectIntl } from 'react-intl';
import classNames from 'classnames';
+import 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({
title: { id: 'groups.form.title', defaultMessage: 'Enter a new group title' },
diff --git a/app/soapbox/features/groups/edit/index.js b/app/soapbox/features/groups/edit/index.js
index 756b2640f..16a691bd6 100644
--- a/app/soapbox/features/groups/edit/index.js
+++ b/app/soapbox/features/groups/edit/index.js
@@ -1,13 +1,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { changeValue, submit, setUp } from '../../../actions/group_editor';
-import { defineMessages, injectIntl } from 'react-intl';
-import LoadingIndicator from '../../../components/loading_indicator';
-import MissingIndicator from 'soapbox/components/missing_indicator';
-import Column from '../../../components/column';
import classNames from 'classnames';
+import 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 MissingIndicator from 'soapbox/components/missing_indicator';
+
+import { changeValue, submit, setUp } from '../../../actions/group_editor';
+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 880f8a8a7..0632a053e 100644
--- a/app/soapbox/features/groups/index/card.js
+++ b/app/soapbox/features/groups/index/card.js
@@ -2,9 +2,10 @@ 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 { shortNumberFormat } from '../../../utils/numbers';
import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
+
+import { shortNumberFormat } from '../../../utils/numbers';
const messages = defineMessages({
members: { id: 'groups.card.members', defaultMessage: 'Members' },
diff --git a/app/soapbox/features/groups/index/index.js b/app/soapbox/features/groups/index/index.js
index 36269b08a..13be53b13 100644
--- a/app/soapbox/features/groups/index/index.js
+++ b/app/soapbox/features/groups/index/index.js
@@ -1,15 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import { fetchGroups } from '../../../actions/groups';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { Link } from 'react-router-dom';
import classNames from 'classnames';
-import GroupCard from './card';
+import 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';
+
const messages = defineMessages({
heading: { id: 'column.groups', defaultMessage: 'Groups' },
create: { id: 'groups.create', defaultMessage: 'Create group' },
diff --git a/app/soapbox/features/groups/members/index.js b/app/soapbox/features/groups/members/index.js
index 5629dcfcd..2ab6383aa 100644
--- a/app/soapbox/features/groups/members/index.js
+++ b/app/soapbox/features/groups/members/index.js
@@ -1,18 +1,19 @@
-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 LoadingIndicator from '../../../components/loading_indicator';
+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 {
fetchMembers,
expandMembers,
} from '../../../actions/groups';
-import { FormattedMessage } from 'react-intl';
+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 d4d77a0fb..8e0d129e6 100644
--- a/app/soapbox/features/groups/removed_accounts/index.js
+++ b/app/soapbox/features/groups/removed_accounts/index.js
@@ -1,20 +1,21 @@
-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 LoadingIndicator from '../../../components/loading_indicator';
+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 { connect } from 'react-redux';
+
import {
fetchRemovedAccounts,
expandRemovedAccounts,
removeRemovedAccount,
} from '../../../actions/groups';
-import { FormattedMessage } from 'react-intl';
+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';
-import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
remove: { id: 'groups.removed_accounts', defaultMessage: 'Allow joining' },
diff --git a/app/soapbox/features/groups/sidebar_panel/index.js b/app/soapbox/features/groups/sidebar_panel/index.js
index a091d876f..088fbee73 100644
--- a/app/soapbox/features/groups/sidebar_panel/index.js
+++ b/app/soapbox/features/groups/sidebar_panel/index.js
@@ -3,10 +3,12 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import Item from './item';
-import Icon from 'soapbox/components/icon';
import { Link } from 'react-router-dom';
+import Icon from 'soapbox/components/icon';
+
+import Item from './item';
+
const messages = defineMessages({
title: { id: 'groups.sidebar-panel.title', defaultMessage: 'Groups You\'re In' },
show_all: { id: 'groups.sidebar-panel.show_all', defaultMessage: 'Show all' },
diff --git a/app/soapbox/features/groups/sidebar_panel/item.js b/app/soapbox/features/groups/sidebar_panel/item.js
index 98b3fc92c..40ed8d421 100644
--- a/app/soapbox/features/groups/sidebar_panel/item.js
+++ b/app/soapbox/features/groups/sidebar_panel/item.js
@@ -2,9 +2,10 @@ 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 { shortNumberFormat } from '../../../utils/numbers';
import { connect } from 'react-redux';
+import { Link } from 'react-router-dom';
+
+import { shortNumberFormat } from '../../../utils/numbers';
const messages = defineMessages({
new_statuses: { id: 'groups.sidebar-panel.item.view', defaultMessage: 'new posts' },
diff --git a/app/soapbox/features/groups/timeline/components/header.js b/app/soapbox/features/groups/timeline/components/header.js
index 3dcf522a2..1b1faa08f 100644
--- a/app/soapbox/features/groups/timeline/components/header.js
+++ b/app/soapbox/features/groups/timeline/components/header.js
@@ -1,10 +1,12 @@
+import PropTypes from 'prop-types';
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import Button from 'soapbox/components/button';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
import { NavLink } from 'react-router-dom';
+
+import Button from 'soapbox/components/button';
+
import DropdownMenuContainer from '../../../../containers/dropdown_menu_container';
const messages = defineMessages({
diff --git a/app/soapbox/features/groups/timeline/components/panel.js b/app/soapbox/features/groups/timeline/components/panel.js
index 3f431f559..9009bf33e 100644
--- a/app/soapbox/features/groups/timeline/components/panel.js
+++ b/app/soapbox/features/groups/timeline/components/panel.js
@@ -1,7 +1,8 @@
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';
const messages = defineMessages({
diff --git a/app/soapbox/features/groups/timeline/containers/header_container.js b/app/soapbox/features/groups/timeline/containers/header_container.js
index 3602eebe9..bce37c3a9 100644
--- a/app/soapbox/features/groups/timeline/containers/header_container.js
+++ b/app/soapbox/features/groups/timeline/containers/header_container.js
@@ -1,6 +1,7 @@
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 c9f7d08cd..be58f51cd 100644
--- a/app/soapbox/features/groups/timeline/index.js
+++ b/app/soapbox/features/groups/timeline/index.js
@@ -1,17 +1,18 @@
+import PropTypes from 'prop-types';
import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import { FormattedMessage, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import StatusListContainer from '../../ui/containers/status_list_container';
-import Column from '../../../components/column';
-import { FormattedMessage, injectIntl } from 'react-intl';
+
+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 a489c669e..ac4dfa2d8 100644
--- a/app/soapbox/features/hashtag_timeline/index.js
+++ b/app/soapbox/features/hashtag_timeline/index.js
@@ -1,13 +1,14 @@
-import React from 'react';
-import { connect } from 'react-redux';
+import { isEqual } from 'lodash';
import PropTypes from 'prop-types';
-import StatusListContainer from '../ui/containers/status_list_container';
+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 { FormattedMessage } from 'react-intl';
-import { connectHashtagStream } from '../../actions/streaming';
-import { isEqual } from 'lodash';
+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 892d4d813..78ca71919 100644
--- a/app/soapbox/features/home_timeline/components/column_settings.js
+++ b/app/soapbox/features/home_timeline/components/column_settings.js
@@ -1,10 +1,12 @@
-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 SettingToggle from '../../notifications/components/setting_toggle';
+
import IconButton from 'soapbox/components/icon_button';
+import SettingToggle from '../../notifications/components/setting_toggle';
+
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
});
diff --git a/app/soapbox/features/home_timeline/containers/column_settings_container.js b/app/soapbox/features/home_timeline/containers/column_settings_container.js
index 69217a54c..0bcbafae8 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,11 @@
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 51d96beb5..2eb1a49f3 100644
--- a/app/soapbox/features/home_timeline/index.js
+++ b/app/soapbox/features/home_timeline/index.js
@@ -1,15 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { expandHomeTimeline } from '../../actions/timelines';
-import PropTypes from 'prop-types';
-import StatusListContainer from '../ui/containers/status_list_container';
-import Column from '../../components/column';
-import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { Link } from 'react-router-dom';
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
+import 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';
+
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..c0cc0114f 100644
--- a/app/soapbox/features/import_data/components/csv_importer.js
+++ b/app/soapbox/features/import_data/components/csv_importer.js
@@ -1,8 +1,9 @@
-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 106c41cc0..5ca07e832 100644
--- a/app/soapbox/features/import_data/index.js
+++ b/app/soapbox/features/import_data/index.js
@@ -1,17 +1,20 @@
-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 Column from '../ui/components/column';
+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,
importMutes,
} from 'soapbox/actions/import_data';
-import CSVImporter from './components/csv_importer';
import { getFeatures } from 'soapbox/utils/features';
+import Column from '../ui/components/column';
+
+import CSVImporter from './components/csv_importer';
+
const messages = defineMessages({
heading: { id: 'column.import_data', defaultMessage: 'Import data' },
submit: { id: 'import_data.actions.import', defaultMessage: 'Import' },
diff --git a/app/soapbox/features/introduction/index.js b/app/soapbox/features/introduction/index.js
index 55408ceef..45af64e0c 100644
--- a/app/soapbox/features/introduction/index.js
+++ b/app/soapbox/features/introduction/index.js
@@ -1,9 +1,10 @@
-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..463412557 100644
--- a/app/soapbox/features/landing_page/index.js
+++ b/app/soapbox/features/landing_page/index.js
@@ -1,8 +1,9 @@
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 770e81e30..bbf792d17 100644
--- a/app/soapbox/features/list_adder/components/account.js
+++ b/app/soapbox/features/list_adder/components/account.js
@@ -1,11 +1,12 @@
import React from 'react';
-import { connect } from 'react-redux';
-import { makeGetAccount } from '../../../selectors';
-import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { injectIntl } from 'react-intl';
+import { connect } from 'react-redux';
+
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
-import { injectIntl } from 'react-intl';
+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 159e9a01e..d9b23ec3e 100644
--- a/app/soapbox/features/list_adder/components/list.js
+++ b/app/soapbox/features/list_adder/components/list.js
@@ -1,13 +1,15 @@
-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 IconButton from '../../../components/icon_button';
+import ImmutablePureComponent from 'react-immutable-pure-component';
import { defineMessages, injectIntl } from 'react-intl';
-import { removeFromListAdder, addToListAdder } from '../../../actions/lists';
+import { connect } from 'react-redux';
+
import Icon from 'soapbox/components/icon';
+import { removeFromListAdder, addToListAdder } from '../../../actions/lists';
+import IconButton from '../../../components/icon_button';
+
const messages = defineMessages({
remove: { id: 'lists.account.remove', defaultMessage: 'Remove from list' },
add: { id: 'lists.account.add', defaultMessage: 'Add to list' },
diff --git a/app/soapbox/features/list_adder/index.js b/app/soapbox/features/list_adder/index.js
index 0c159bc90..3283ac04f 100644
--- a/app/soapbox/features/list_adder/index.js
+++ b/app/soapbox/features/list_adder/index.js
@@ -1,16 +1,19 @@
-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 { setupListAdder, resetListAdder } from '../../actions/lists';
+import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import List from './components/list';
-import Account from './components/account';
+
import IconButton from 'soapbox/components/icon_button';
+
+import { setupListAdder, resetListAdder } from '../../actions/lists';
import NewListForm from '../lists/components/new_list_form';
import ColumnSubheading from '../ui/components/column_subheading';
+
+import Account from './components/account';
+import List from './components/list';
// hack
const getOrderedLists = createSelector([state => state.get('lists')], lists => {
diff --git a/app/soapbox/features/list_editor/components/account.js b/app/soapbox/features/list_editor/components/account.js
index 2ef3ed097..eee56b97a 100644
--- a/app/soapbox/features/list_editor/components/account.js
+++ b/app/soapbox/features/list_editor/components/account.js
@@ -1,14 +1,15 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { makeGetAccount } from '../../../selectors';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import 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 { removeFromListEditor, addToListEditor } from '../../../actions/lists';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
-import { removeFromListEditor, addToListEditor } from '../../../actions/lists';
+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 a3694508f..c0f893ff8 100644
--- a/app/soapbox/features/list_editor/components/edit_list_form.js
+++ b/app/soapbox/features/list_editor/components/edit_list_form.js
@@ -1,9 +1,10 @@
-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';
-import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
title: { id: 'lists.edit.submit', defaultMessage: 'Change title' },
diff --git a/app/soapbox/features/list_editor/components/search.js b/app/soapbox/features/list_editor/components/search.js
index c3d883745..e644acd37 100644
--- a/app/soapbox/features/list_editor/components/search.js
+++ b/app/soapbox/features/list_editor/components/search.js
@@ -1,11 +1,13 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl } from 'react-intl';
-import { fetchListSuggestions, clearListSuggestions, changeListSuggestions } from '../../../actions/lists';
import classNames from 'classnames';
-import Icon from 'soapbox/components/icon';
+import 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({
search: { id: 'lists.search', defaultMessage: 'Search among people you follow' },
diff --git a/app/soapbox/features/list_editor/index.js b/app/soapbox/features/list_editor/index.js
index 1e07ce853..0dad99ee8 100644
--- a/app/soapbox/features/list_editor/index.js
+++ b/app/soapbox/features/list_editor/index.js
@@ -1,16 +1,19 @@
-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 { setupListEditor, clearListSuggestions, resetListEditor } from '../../actions/lists';
-import Account from './components/account';
-import Search from './components/search';
-import EditListForm from './components/edit_list_form';
-import ColumnSubheading from '../ui/components/column_subheading';
+import { 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 EditListForm from './components/edit_list_form';
+import Search from './components/search';
+
const mapStateToProps = state => ({
accountIds: state.getIn(['listEditor', 'accounts', 'items']),
searchAccountIds: state.getIn(['listEditor', 'suggestions', 'items']),
diff --git a/app/soapbox/features/list_timeline/index.js b/app/soapbox/features/list_timeline/index.js
index b1fa3c16b..01d3de38f 100644
--- a/app/soapbox/features/list_timeline/index.js
+++ b/app/soapbox/features/list_timeline/index.js
@@ -1,17 +1,19 @@
-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 StatusListContainer from '../ui/containers/status_list_container';
-import Column from 'soapbox/features/ui/components/column';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
-import { connectListStream } from '../../actions/streaming';
-import { expandListTimeline } from '../../actions/timelines';
+import { connect } from 'react-redux';
+
+import Button from 'soapbox/components/button';
+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 Button from 'soapbox/components/button';
+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 dd6075783..717bc757e 100644
--- a/app/soapbox/features/lists/components/new_list_form.js
+++ b/app/soapbox/features/lists/components/new_list_form.js
@@ -1,9 +1,10 @@
-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';
-import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
label: { id: 'lists.new.title_placeholder', defaultMessage: 'New list title' },
diff --git a/app/soapbox/features/lists/index.js b/app/soapbox/features/lists/index.js
index 0fa072551..8e619869c 100644
--- a/app/soapbox/features/lists/index.js
+++ b/app/soapbox/features/lists/index.js
@@ -1,17 +1,19 @@
-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 LoadingIndicator from '../../components/loading_indicator';
-import Column from '../ui/components/column';
-import { fetchLists } from '../../actions/lists';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { createSelector } from 'reselect';
+
+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 NewListForm from './components/new_list_form';
-import { createSelector } from 'reselect';
-import ScrollableList from '../../components/scrollable_list';
const messages = defineMessages({
heading: { id: 'column.lists', defaultMessage: 'Lists' },
diff --git a/app/soapbox/features/mutes/index.js b/app/soapbox/features/mutes/index.js
index 26278ec26..39b0b63f6 100644
--- a/app/soapbox/features/mutes/index.js
+++ b/app/soapbox/features/mutes/index.js
@@ -1,15 +1,16 @@
-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..941cd296b 100644
--- a/app/soapbox/features/new_status/index.js
+++ b/app/soapbox/features/new_status/index.js
@@ -1,7 +1,8 @@
+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..ebb27cfbe 100644
--- a/app/soapbox/features/notifications/components/clear_column_button.js
+++ b/app/soapbox/features/notifications/components/clear_column_button.js
@@ -1,6 +1,7 @@
-import React from 'react';
import PropTypes from 'prop-types';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
+
import Icon from 'soapbox/components/icon';
export default class ClearColumnButton extends React.PureComponent {
diff --git a/app/soapbox/features/notifications/components/column_settings.js b/app/soapbox/features/notifications/components/column_settings.js
index aa55f5296..e033eb6be 100644
--- a/app/soapbox/features/notifications/components/column_settings.js
+++ b/app/soapbox/features/notifications/components/column_settings.js
@@ -1,12 +1,14 @@
-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 ClearColumnButton from './clear_column_button';
-import SettingToggle from './setting_toggle';
-import MultiSettingToggle from './multi_setting_toggle';
+
import IconButton from 'soapbox/components/icon_button';
+import ClearColumnButton from './clear_column_button';
+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..a95574036 100644
--- a/app/soapbox/features/notifications/components/filter_bar.js
+++ b/app/soapbox/features/notifications/components/filter_bar.js
@@ -1,8 +1,9 @@
-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 d1c9c6402..2a2e79269 100644
--- a/app/soapbox/features/notifications/components/follow_request.js
+++ b/app/soapbox/features/notifications/components/follow_request.js
@@ -1,12 +1,13 @@
+import PropTypes from 'prop-types';
import React, { Fragment } 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 Avatar from 'soapbox/components/avatar';
import DisplayName from 'soapbox/components/display_name';
-import Permalink from 'soapbox/components/permalink';
import IconButton from 'soapbox/components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+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 b16d0b542..9f1598e24 100644
--- a/app/soapbox/features/notifications/components/notification.js
+++ b/app/soapbox/features/notifications/components/notification.js
@@ -1,16 +1,18 @@
-import React from 'react';
+import classNames from 'classnames';
import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import StatusContainer from '../../../containers/status_container';
-import AccountContainer from '../../../containers/account_container';
-import { injectIntl, FormattedMessage } from 'react-intl';
-import Permalink from '../../../components/permalink';
-import ImmutablePureComponent from 'react-immutable-pure-component';
+import React from 'react';
import { HotKeys } from 'react-hotkeys';
-import FollowRequestContainer from '../containers/follow_request_container';
+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 classNames from 'classnames';
+
+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) => {
const output = [message];
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 7d44486c2..da37f306f 100644
--- a/app/soapbox/features/notifications/containers/column_settings_container.js
+++ b/app/soapbox/features/notifications/containers/column_settings_container.js
@@ -1,12 +1,14 @@
-import { connect } from 'react-redux';
import { defineMessages, injectIntl } from 'react-intl';
-import ColumnSettings from '../components/column_settings';
-import { getSettings, changeSetting } from '../../../actions/settings';
+import { connect } from 'react-redux';
+
+import { getFeatures } from 'soapbox/utils/features';
+
+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 { getFeatures } from 'soapbox/utils/features';
+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 231795c6f..82805136a 100644
--- a/app/soapbox/features/notifications/containers/filter_bar_container.js
+++ b/app/soapbox/features/notifications/containers/filter_bar_container.js
@@ -1,9 +1,11 @@
import { connect } from 'react-redux';
-import FilterBar from '../components/filter_bar';
-import { setFilter } from '../../../actions/notifications';
+
import { getSettings } from 'soapbox/actions/settings';
import { getFeatures } from 'soapbox/utils/features';
+import { setFilter } from '../../../actions/notifications';
+import FilterBar from '../components/filter_bar';
+
const makeMapStateToProps = state => {
const settings = getSettings(state);
const instance = state.get('instance');
diff --git a/app/soapbox/features/notifications/containers/follow_request_container.js b/app/soapbox/features/notifications/containers/follow_request_container.js
index a539fc08c..c793ac3de 100644
--- a/app/soapbox/features/notifications/containers/follow_request_container.js
+++ b/app/soapbox/features/notifications/containers/follow_request_container.js
@@ -1,7 +1,9 @@
import { connect } from 'react-redux';
-import { makeGetAccount } from 'soapbox/selectors';
-import FollowRequest from '../components/follow_request';
+
import { authorizeFollowRequest, rejectFollowRequest } from 'soapbox/actions/accounts';
+import { makeGetAccount } from 'soapbox/selectors';
+
+import FollowRequest from '../components/follow_request';
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
diff --git a/app/soapbox/features/notifications/containers/notification_container.js b/app/soapbox/features/notifications/containers/notification_container.js
index fb407263a..8b061fba2 100644
--- a/app/soapbox/features/notifications/containers/notification_container.js
+++ b/app/soapbox/features/notifications/containers/notification_container.js
@@ -1,7 +1,7 @@
import { connect } from 'react-redux';
-import { makeGetNotification } from '../../../selectors';
-import Notification from '../components/notification';
-import { openModal } from '../../../actions/modal';
+
+import { getSettings } from 'soapbox/actions/settings';
+
import { mentionCompose } from '../../../actions/compose';
import {
reblog,
@@ -9,11 +9,13 @@ import {
unreblog,
unfavourite,
} from '../../../actions/interactions';
+import { openModal } from '../../../actions/modal';
import {
hideStatus,
revealStatus,
} from '../../../actions/statuses';
-import { getSettings } from 'soapbox/actions/settings';
+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 58f567f7d..b174d776e 100644
--- a/app/soapbox/features/notifications/index.js
+++ b/app/soapbox/features/notifications/index.js
@@ -1,26 +1,29 @@
-import React from 'react';
-import { connect } from 'react-redux';
+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 Column from '../../components/column';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+import { createSelector } from 'reselect';
+
+import { getSettings } from 'soapbox/actions/settings';
+import SubNavigation from 'soapbox/components/sub_navigation';
+import PlaceholderNotification from 'soapbox/features/placeholder/components/placeholder_notification';
+
import {
expandNotifications,
scrollTopNotifications,
dequeueNotifications,
} from '../../actions/notifications';
-import NotificationContainer from './containers/notification_container';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import Column from '../../components/column';
+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 { createSelector } from 'reselect';
-import { List as ImmutableList } from 'immutable';
-import { debounce } from 'lodash';
-import ScrollableList from '../../components/scrollable_list';
-import LoadGap from '../../components/load_gap';
-import TimelineQueueButtonHeader from '../../components/timeline_queue_button_header';
-import { getSettings } from 'soapbox/actions/settings';
-import PlaceholderNotification from 'soapbox/features/placeholder/components/placeholder_notification';
-import SubNavigation from 'soapbox/components/sub_navigation';
+import NotificationContainer from './containers/notification_container';
const messages = defineMessages({
title: { id: 'column.notifications', defaultMessage: 'Notifications' },
diff --git a/app/soapbox/features/pinned_statuses/index.js b/app/soapbox/features/pinned_statuses/index.js
index 5221d5c9b..9309d24e2 100644
--- a/app/soapbox/features/pinned_statuses/index.js
+++ b/app/soapbox/features/pinned_statuses/index.js
@@ -1,14 +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 { fetchPinnedStatuses } from '../../actions/pin_statuses';
-import Column from '../ui/components/column';
-import StatusList from '../../components/status_list';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { 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 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_account.js b/app/soapbox/features/placeholder/components/placeholder_account.js
index 95771ec8a..4d638046b 100644
--- a/app/soapbox/features/placeholder/components/placeholder_account.js
+++ b/app/soapbox/features/placeholder/components/placeholder_account.js
@@ -1,4 +1,5 @@
import React from 'react';
+
import PlaceholderAvatar from './placeholder_avatar';
import PlaceholderDisplayName from './placeholder_display_name';
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_card.js b/app/soapbox/features/placeholder/components/placeholder_card.js
index 81df75492..4f2a67c13 100644
--- a/app/soapbox/features/placeholder/components/placeholder_card.js
+++ b/app/soapbox/features/placeholder/components/placeholder_card.js
@@ -1,4 +1,5 @@
import React from 'react';
+
import { randomIntFromInterval, generateText } from '../utils';
export default class PlaceholderCard extends React.Component {
diff --git a/app/soapbox/features/placeholder/components/placeholder_chat.js b/app/soapbox/features/placeholder/components/placeholder_chat.js
index 062cfee26..a3763b416 100644
--- a/app/soapbox/features/placeholder/components/placeholder_chat.js
+++ b/app/soapbox/features/placeholder/components/placeholder_chat.js
@@ -1,7 +1,9 @@
import React from 'react';
+
+import { randomIntFromInterval, generateText } from '../utils';
+
import PlaceholderAvatar from './placeholder_avatar';
import PlaceholderDisplayName from './placeholder_display_name';
-import { randomIntFromInterval, generateText } from '../utils';
export default class PlaceholderAccount extends React.Component {
diff --git a/app/soapbox/features/placeholder/components/placeholder_display_name.js b/app/soapbox/features/placeholder/components/placeholder_display_name.js
index 96216ffab..8278297c9 100644
--- a/app/soapbox/features/placeholder/components/placeholder_display_name.js
+++ b/app/soapbox/features/placeholder/components/placeholder_display_name.js
@@ -1,5 +1,6 @@
-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_hashtag.js b/app/soapbox/features/placeholder/components/placeholder_hashtag.js
index 66f11a479..81c788238 100644
--- a/app/soapbox/features/placeholder/components/placeholder_hashtag.js
+++ b/app/soapbox/features/placeholder/components/placeholder_hashtag.js
@@ -1,4 +1,5 @@
import React from 'react';
+
import { generateText, randomIntFromInterval } from '../utils';
export default class PlaceholderHashtag extends React.Component {
diff --git a/app/soapbox/features/placeholder/components/placeholder_material_status.js b/app/soapbox/features/placeholder/components/placeholder_material_status.js
index f55d9d086..3199d42aa 100644
--- a/app/soapbox/features/placeholder/components/placeholder_material_status.js
+++ b/app/soapbox/features/placeholder/components/placeholder_material_status.js
@@ -1,4 +1,5 @@
import React from 'react';
+
import PlaceholderStatus from './placeholder_status';
export default class PlaceholderMaterialStatus 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_notification.js b/app/soapbox/features/placeholder/components/placeholder_notification.js
index 813124e0e..aea226c4d 100644
--- a/app/soapbox/features/placeholder/components/placeholder_notification.js
+++ b/app/soapbox/features/placeholder/components/placeholder_notification.js
@@ -1,7 +1,9 @@
import React from 'react';
-import PlaceholderAccount from './placeholder_account';
+
import { randomIntFromInterval, generateText } from '../utils';
+import PlaceholderAccount from './placeholder_account';
+
export default class PlaceholderNotification extends React.Component {
shouldComponentUpdate() {
diff --git a/app/soapbox/features/placeholder/components/placeholder_status.js b/app/soapbox/features/placeholder/components/placeholder_status.js
index 1fea821ca..52346f1e4 100644
--- a/app/soapbox/features/placeholder/components/placeholder_status.js
+++ b/app/soapbox/features/placeholder/components/placeholder_status.js
@@ -1,4 +1,5 @@
import React from 'react';
+
import PlaceholderAvatar from './placeholder_avatar';
import PlaceholderDisplayName from './placeholder_display_name';
import PlaceholderStatusContent from './placeholder_status_content';
diff --git a/app/soapbox/features/placeholder/components/placeholder_status_content.js b/app/soapbox/features/placeholder/components/placeholder_status_content.js
index b51fa44c1..02d2bb206 100644
--- a/app/soapbox/features/placeholder/components/placeholder_status_content.js
+++ b/app/soapbox/features/placeholder/components/placeholder_status_content.js
@@ -1,5 +1,6 @@
-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 39a394d2f..4cf74d702 100644
--- a/app/soapbox/features/preferences/index.js
+++ b/app/soapbox/features/preferences/index.js
@@ -1,12 +1,12 @@
-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 Column from '../ui/components/column';
+import SettingsCheckbox from 'soapbox/components/settings_checkbox';
import {
SimpleForm,
FieldsGroup,
@@ -14,8 +14,10 @@ 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 = {
en: 'English',
diff --git a/app/soapbox/features/public_layout/components/footer.js b/app/soapbox/features/public_layout/components/footer.js
index 1c6d38354..2290276a5 100644
--- a/app/soapbox/features/public_layout/components/footer.js
+++ b/app/soapbox/features/public_layout/components/footer.js
@@ -1,10 +1,11 @@
-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 5f7d065e2..2cb003b84 100644
--- a/app/soapbox/features/public_layout/components/header.js
+++ b/app/soapbox/features/public_layout/components/header.js
@@ -1,17 +1,19 @@
+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 LoginForm from 'soapbox/features/auth_login/components/login_form';
-import SiteLogo from './site_logo';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
import { defineMessages, injectIntl } from 'react-intl';
-import PropTypes from 'prop-types';
+import { 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({
home: { id: 'header.home.label', defaultMessage: 'Home' },
diff --git a/app/soapbox/features/public_layout/components/site_banner.js b/app/soapbox/features/public_layout/components/site_banner.js
index 2f0775bed..cdf685a9d 100644
--- a/app/soapbox/features/public_layout/components/site_banner.js
+++ b/app/soapbox/features/public_layout/components/site_banner.js
@@ -1,6 +1,7 @@
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..0ee382e7b 100644
--- a/app/soapbox/features/public_layout/components/site_logo.js
+++ b/app/soapbox/features/public_layout/components/site_logo.js
@@ -1,6 +1,7 @@
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 fa33ef48a..19d83e3b9 100644
--- a/app/soapbox/features/public_layout/index.js
+++ b/app/soapbox/features/public_layout/index.js
@@ -1,19 +1,22 @@
import React from 'react';
-import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import BundleContainer from 'soapbox/features/ui/containers/bundle_container';
+import { 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 Header from './components/header';
-import Footer from './components/footer';
-import LandingPage from '../landing_page';
-import AboutPage from '../about';
-import { getSoapboxConfig } from 'soapbox/actions/soapbox';
import { isStandalone } from 'soapbox/utils/state';
+import AboutPage from '../about';
+import LandingPage from '../landing_page';
+
+import Footer from './components/footer';
+import Header from './components/header';
+
const mapStateToProps = (state, props) => ({
soapbox: getSoapboxConfig(state),
standalone: isStandalone(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..a2b2ca6f8 100644
--- a/app/soapbox/features/public_timeline/components/column_settings.js
+++ b/app/soapbox/features/public_timeline/components/column_settings.js
@@ -1,8 +1,10 @@
-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 SettingToggle from '../../notifications/components/setting_toggle';
const messages = defineMessages({
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..63a629007 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,7 @@
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 1b3b0e358..224151b17 100644
--- a/app/soapbox/features/public_timeline/index.js
+++ b/app/soapbox/features/public_timeline/index.js
@@ -1,17 +1,20 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
-import StatusListContainer from '../ui/containers/status_list_container';
-import Column from '../../components/column';
-import ColumnSettings from './containers/column_settings_container';
-import Accordion from 'soapbox/features/ui/components/accordion';
-import PinnedHostsPicker from '../remote_timeline/components/pinned_hosts_picker';
-import { expandPublicTimeline } from '../../actions/timelines';
-import { connectPublicStream } from '../../actions/streaming';
+import React from 'react';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
+
import { changeSetting, getSettings } from 'soapbox/actions/settings';
import SubNavigation from 'soapbox/components/sub_navigation';
+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 StatusListContainer from '../ui/containers/status_list_container';
+
+import ColumnSettings from './containers/column_settings_container';
const messages = defineMessages({
title: { id: 'column.public', defaultMessage: 'Fediverse timeline' },
diff --git a/app/soapbox/features/register_invite/index.js b/app/soapbox/features/register_invite/index.js
index f9d0bf1e0..486647bd2 100644
--- a/app/soapbox/features/register_invite/index.js
+++ b/app/soapbox/features/register_invite/index.js
@@ -1,7 +1,8 @@
-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..a5858de9e 100644
--- a/app/soapbox/features/remote_timeline/components/pinned_hosts_picker.js
+++ b/app/soapbox/features/remote_timeline/components/pinned_hosts_picker.js
@@ -1,11 +1,12 @@
'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';
const mapStateToProps = state => {
diff --git a/app/soapbox/features/remote_timeline/index.js b/app/soapbox/features/remote_timeline/index.js
index 4aa515661..d6b6ab2ef 100644
--- a/app/soapbox/features/remote_timeline/index.js
+++ b/app/soapbox/features/remote_timeline/index.js
@@ -1,14 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
-import StatusListContainer from '../ui/containers/status_list_container';
-import Column from 'soapbox/features/ui/components/column';
-import PinnedHostsPicker from './components/pinned_hosts_picker';
-import IconButton from 'soapbox/components/icon_button';
-import { expandRemoteTimeline } from '../../actions/timelines';
-import { connectRemoteStream } from '../../actions/streaming';
+import React from 'react';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { connect } from 'react-redux';
+
import { getSettings } from 'soapbox/actions/settings';
+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';
const messages = defineMessages({
title: { id: 'column.remote', defaultMessage: 'Federated timeline' },
diff --git a/app/soapbox/features/reply_mentions/account.js b/app/soapbox/features/reply_mentions/account.js
index c9da9b6a4..1ef60ddf6 100644
--- a/app/soapbox/features/reply_mentions/account.js
+++ b/app/soapbox/features/reply_mentions/account.js
@@ -1,14 +1,15 @@
-import React from 'react';
import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { makeGetAccount } from 'soapbox/selectors';
+import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
+import { defineMessages, injectIntl } from 'react-intl';
+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 { defineMessages, injectIntl } from 'react-intl';
-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..fcb73c902 100644
--- a/app/soapbox/features/report/components/status_check_box.js
+++ b/app/soapbox/features/report/components/status_check_box.js
@@ -1,11 +1,12 @@
-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 b3ef4cbd6..75daf7e2d 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,8 @@
-import { connect } from 'react-redux';
-import StatusCheckBox from '../components/status_check_box';
-import { toggleStatusReport } from '../../../actions/reports';
import { Set as ImmutableSet } from 'immutable';
+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/builder.js b/app/soapbox/features/scheduled_statuses/builder.js
index 196a0f6f2..05cef642c 100644
--- a/app/soapbox/features/scheduled_statuses/builder.js
+++ b/app/soapbox/features/scheduled_statuses/builder.js
@@ -1,4 +1,5 @@
import { fromJS } from 'immutable';
+
import { normalizeStatus } from 'soapbox/actions/importer/normalizer';
import { makeGetAccount } from 'soapbox/selectors';
diff --git a/app/soapbox/features/scheduled_statuses/components/scheduled_status.js b/app/soapbox/features/scheduled_statuses/components/scheduled_status.js
index f7d6a8151..b47e2b6d0 100644
--- a/app/soapbox/features/scheduled_statuses/components/scheduled_status.js
+++ b/app/soapbox/features/scheduled_statuses/components/scheduled_status.js
@@ -1,16 +1,19 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import StatusContent from 'soapbox/components/status_content';
-import { buildStatus } from '../builder';
import classNames from 'classnames';
-import RelativeTimestamp from 'soapbox/components/relative_timestamp';
+import React from 'react';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import { connect } from 'react-redux';
import { Link, NavLink } from 'react-router-dom';
-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';
const mapStateToProps = (state, props) => {
diff --git a/app/soapbox/features/scheduled_statuses/components/scheduled_status_action_bar.js b/app/soapbox/features/scheduled_statuses/components/scheduled_status_action_bar.js
index 780c46797..ed77fdd82 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,15 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
-import SoapboxPropTypes from 'soapbox/utils/soapbox_prop_types';
-import IconButton from 'soapbox/components/icon_button';
-import { defineMessages, injectIntl } from 'react-intl';
+import 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 { 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 03a4496ca..8b2fe3a56 100644
--- a/app/soapbox/features/scheduled_statuses/index.js
+++ b/app/soapbox/features/scheduled_statuses/index.js
@@ -1,14 +1,17 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import Column from '../ui/components/column';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import ScrollableList from 'soapbox/components/scrollable_list';
-import { fetchScheduledStatuses, expandScheduledStatuses } from '../../actions/scheduled_statuses';
-import ScheduledStatus from './components/scheduled_status';
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 { fetchScheduledStatuses, expandScheduledStatuses } from '../../actions/scheduled_statuses';
+import Column from '../ui/components/column';
+
+import ScheduledStatus from './components/scheduled_status';
const messages = defineMessages({
heading: { id: 'column.scheduled_statuses', defaultMessage: 'Scheduled Posts' },
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..60b4655eb 100644
--- a/app/soapbox/features/search/index.js
+++ b/app/soapbox/features/search/index.js
@@ -1,6 +1,7 @@
+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 22ab8b729..887c16242 100644
--- a/app/soapbox/features/security/index.js
+++ b/app/soapbox/features/security/index.js
@@ -1,10 +1,18 @@
-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 Column from '../ui/components/column';
+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 {
@@ -12,15 +20,9 @@ import {
FieldsGroup,
TextInput,
} from 'soapbox/features/forms';
-import {
- changeEmail,
- changePassword,
- deleteAccount,
-} from 'soapbox/actions/security';
-import { fetchOAuthTokens, revokeOAuthTokenById } from 'soapbox/actions/security';
+
import { fetchMfa } from '../../actions/mfa';
-import snackbar from 'soapbox/actions/snackbar';
-import { getSettings } from 'soapbox/actions/settings';
+import Column from '../ui/components/column';
/*
Security settings page for user account
diff --git a/app/soapbox/features/security/mfa_form.js b/app/soapbox/features/security/mfa_form.js
index d8a6aa864..072703b1a 100644
--- a/app/soapbox/features/security/mfa_form.js
+++ b/app/soapbox/features/security/mfa_form.js
@@ -1,21 +1,21 @@
-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 Column from '../ui/components/column';
-import ColumnSubheading from '../ui/components/column_subheading';
-import LoadingIndicator from 'soapbox/components/loading_indicator';
-import Button from 'soapbox/components/button';
+import 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 {
fetchMfa,
fetchBackupCodes,
@@ -23,6 +23,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
@@ -45,6 +47,8 @@ const messages = defineMessages({
disableFail: { id: 'security.disable.fail', defaultMessage: 'Incorrect password. Try again.' },
mfaDisableSuccess: { id: 'mfa.disable.success_message', defaultMessage: 'MFA disabled' },
mfaConfirmSuccess: { id: 'mfa.confirm.success_message', defaultMessage: 'MFA confirmed' },
+ codePlaceholder: { id: 'mfa.mfa_setup.code_placeholder', defaultMessage: 'Code' },
+ passwordPlaceholder: { id: 'mfa.mfa_setup.password_placeholder', defaultMessage: 'Password' },
});
const mapStateToProps = state => ({
@@ -116,44 +120,62 @@ class DisableOtpForm extends ImmutablePureComponent {
state = {
password: '',
+ isLoading: false,
}
handleInputChange = e => {
this.setState({ [e.target.name]: e.target.value });
}
- handleOtpDisableClick = e => {
+ handleSubmit = e => {
const { password } = this.state;
const { dispatch, intl } = this.props;
+ this.setState({ isLoading: true });
+
dispatch(disableMfa('totp', password)).then(() => {
dispatch(snackbar.success(intl.formatMessage(messages.mfaDisableSuccess)));
+ this.context.router.history.push('../auth/edit');
}).catch(error => {
dispatch(snackbar.error(intl.formatMessage(messages.disableFail)));
+ this.setState({ isLoading: false });
});
- this.context.router.history.push('../auth/edit');
e.preventDefault();
}
render() {
const { intl } = this.props;
+ const { isLoading, password } = this.state;
return (
-
-
+
+
-
-
+
+
+
}
+ disabled={isLoading}
name='password'
onChange={this.handleInputChange}
+ value={password}
+ required
/>
-
-
-
+
+
+
+
+
);
}
@@ -189,6 +211,7 @@ class EnableOtpForm extends ImmutablePureComponent {
handleCancelClick = e => {
this.context.router.history.push('../auth/edit');
+ e.preventDefault();
}
render() {
@@ -196,8 +219,8 @@ class EnableOtpForm extends ImmutablePureComponent {
const { backupCodes, displayOtpForm } = this.state;
return (
-
-
+
+
@@ -231,8 +254,8 @@ class EnableOtpForm extends ImmutablePureComponent {
)}
)}
-
-
+
+