diff --git a/app/javascript/mastodon/features/community_timeline/containers/column_settings_container.js b/app/javascript/mastodon/features/community_timeline/containers/column_settings_container.js
index 1efc2ef3319..f3489b4095b 100644
--- a/app/javascript/mastodon/features/community_timeline/containers/column_settings_container.js
+++ b/app/javascript/mastodon/features/community_timeline/containers/column_settings_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
import ColumnSettings from '../components/column_settings';
-import { changeSetting, saveSettings } from '../../../actions/settings';
+import { changeSetting } from '../../../actions/settings';
const mapStateToProps = state => ({
settings: state.getIn(['settings', 'community']),
@@ -12,10 +12,6 @@ const mapDispatchToProps = dispatch => ({
dispatch(changeSetting(['community', ...key], checked));
},
- onSave () {
- dispatch(saveSettings());
- },
-
});
export default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings);
diff --git a/app/javascript/mastodon/features/community_timeline/index.js b/app/javascript/mastodon/features/community_timeline/index.js
index 4fbe670389c..6c4b5dacf26 100644
--- a/app/javascript/mastodon/features/community_timeline/index.js
+++ b/app/javascript/mastodon/features/community_timeline/index.js
@@ -14,7 +14,6 @@ import {
} from '../../actions/timelines';
import { addColumn, removeColumn, moveColumn } from '../../actions/columns';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import ColumnSettingsContainer from './containers/column_settings_container';
import createStream from '../../stream';
diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.js
index 0ee45c9788d..d75bbdf9cbc 100644
--- a/app/javascript/mastodon/features/compose/components/compose_form.js
+++ b/app/javascript/mastodon/features/compose/components/compose_form.js
@@ -7,15 +7,13 @@ import ReplyIndicatorContainer from '../containers/reply_indicator_container';
import AutosuggestTextarea from '../../../components/autosuggest_textarea';
import { debounce } from 'lodash';
import UploadButtonContainer from '../containers/upload_button_container';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import Toggle from 'react-toggle';
+import { defineMessages, injectIntl } from 'react-intl';
import Collapsable from '../../../components/collapsable';
import SpoilerButtonContainer from '../containers/spoiler_button_container';
import PrivacyDropdownContainer from '../containers/privacy_dropdown_container';
import SensitiveButtonContainer from '../containers/sensitive_button_container';
import EmojiPickerDropdown from './emoji_picker_dropdown';
import UploadFormContainer from '../containers/upload_form_container';
-import TextIconButton from './text_icon_button';
import WarningContainer from '../containers/warning_container';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { length } from 'stringz';
@@ -141,7 +139,6 @@ class ComposeForm extends ImmutablePureComponent {
const text = [this.props.spoiler_text, this.props.text].join('');
let publishText = '';
- let reply_to_other = false;
if (this.props.privacy === 'private' || this.props.privacy === 'direct') {
publishText =
{intl.formatMessage(messages.publish)};
diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
index 9ac674bb34e..afaff1be126 100644
--- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
+++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
@@ -52,7 +52,7 @@ class EmojiPickerDropdown extends React.PureComponent {
import(/* webpackChunkName: "emojione_picker" */ 'emojione-picker').then(TheEmojiPicker => {
EmojiPicker = TheEmojiPicker.default;
this.setState({ loading: false });
- }).catch(err => {
+ }).catch(() => {
// TODO: show the user an error?
this.setState({ loading: false });
});
diff --git a/app/javascript/mastodon/features/compose/components/navigation_bar.js b/app/javascript/mastodon/features/compose/components/navigation_bar.js
index 1c135a73354..00f27dea1ba 100644
--- a/app/javascript/mastodon/features/compose/components/navigation_bar.js
+++ b/app/javascript/mastodon/features/compose/components/navigation_bar.js
@@ -1,11 +1,8 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import Avatar from '../../../components/avatar';
-import IconButton from '../../../components/icon_button';
-import DisplayName from '../../../components/display_name';
import Permalink from '../../../components/permalink';
import { FormattedMessage } from 'react-intl';
-import Link from 'react-router-dom/Link';
import ImmutablePureComponent from 'react-immutable-pure-component';
class NavigationBar extends ImmutablePureComponent {
diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
index 49f1179a07a..f368186a576 100644
--- a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
+++ b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
@@ -64,7 +64,7 @@ class PrivacyDropdown extends React.PureComponent {
}
render () {
- const { value, onChange, intl } = this.props;
+ const { value, intl } = this.props;
const { open } = this.state;
const options = [
diff --git a/app/javascript/mastodon/features/compose/components/search.js b/app/javascript/mastodon/features/compose/components/search.js
index 800080a7dda..21b3cf34b25 100644
--- a/app/javascript/mastodon/features/compose/components/search.js
+++ b/app/javascript/mastodon/features/compose/components/search.js
@@ -1,6 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
placeholder: { id: 'search.placeholder', defaultMessage: 'Search' },
diff --git a/app/javascript/mastodon/features/compose/components/search_results.js b/app/javascript/mastodon/features/compose/components/search_results.js
index 26d766a1c67..1a2605c159b 100644
--- a/app/javascript/mastodon/features/compose/components/search_results.js
+++ b/app/javascript/mastodon/features/compose/components/search_results.js
@@ -1,6 +1,6 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { FormattedMessage } from 'react-intl';
import AccountContainer from '../../../containers/account_container';
import StatusContainer from '../../../containers/status_container';
import Link from 'react-router-dom/Link';
diff --git a/app/javascript/mastodon/features/compose/components/upload_button.js b/app/javascript/mastodon/features/compose/components/upload_button.js
index 326b9851aa1..0f11b9e8b6d 100644
--- a/app/javascript/mastodon/features/compose/components/upload_button.js
+++ b/app/javascript/mastodon/features/compose/components/upload_button.js
@@ -11,7 +11,7 @@ const messages = defineMessages({
});
const makeMapStateToProps = () => {
- const mapStateToProps = (state, props) => ({
+ const mapStateToProps = state => ({
acceptContentTypes: state.getIn(['media_attachments', 'accept_content_types']),
});
diff --git a/app/javascript/mastodon/features/compose/containers/navigation_container.js b/app/javascript/mastodon/features/compose/containers/navigation_container.js
index 75f288f1852..8cc53c087e1 100644
--- a/app/javascript/mastodon/features/compose/containers/navigation_container.js
+++ b/app/javascript/mastodon/features/compose/containers/navigation_container.js
@@ -1,7 +1,7 @@
import { connect } from 'react-redux';
import NavigationBar from '../components/navigation_bar';
-const mapStateToProps = (state, props) => {
+const mapStateToProps = state => {
return {
account: state.getIn(['accounts', state.getIn(['meta', 'me'])]),
};
diff --git a/app/javascript/mastodon/features/compose/containers/reply_indicator_container.js b/app/javascript/mastodon/features/compose/containers/reply_indicator_container.js
index 7f3eeb89ced..73f394c1af6 100644
--- a/app/javascript/mastodon/features/compose/containers/reply_indicator_container.js
+++ b/app/javascript/mastodon/features/compose/containers/reply_indicator_container.js
@@ -6,7 +6,7 @@ import ReplyIndicator from '../components/reply_indicator';
const makeMapStateToProps = () => {
const getStatus = makeGetStatus();
- const mapStateToProps = (state, props) => ({
+ const mapStateToProps = state => ({
status: getStatus(state, state.getIn(['compose', 'in_reply_to'])),
});
diff --git a/app/javascript/mastodon/features/compose/containers/upload_form_container.js b/app/javascript/mastodon/features/compose/containers/upload_form_container.js
index 3125564c27c..4612599f109 100644
--- a/app/javascript/mastodon/features/compose/containers/upload_form_container.js
+++ b/app/javascript/mastodon/features/compose/containers/upload_form_container.js
@@ -2,7 +2,7 @@ import { connect } from 'react-redux';
import UploadForm from '../components/upload_form';
import { undoUploadCompose } from '../../../actions/compose';
-const mapStateToProps = (state, props) => ({
+const mapStateToProps = state => ({
media: state.getIn(['compose', 'media_attachments']),
});
diff --git a/app/javascript/mastodon/features/compose/containers/upload_progress_container.js b/app/javascript/mastodon/features/compose/containers/upload_progress_container.js
index 51af4440caf..0cfee96daaa 100644
--- a/app/javascript/mastodon/features/compose/containers/upload_progress_container.js
+++ b/app/javascript/mastodon/features/compose/containers/upload_progress_container.js
@@ -1,7 +1,7 @@
import { connect } from 'react-redux';
import UploadProgress from '../components/upload_progress';
-const mapStateToProps = (state, props) => ({
+const mapStateToProps = state => ({
active: state.getIn(['compose', 'is_uploading']),
progress: state.getIn(['compose', 'progress']),
});
diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.js
index a87e48a23fc..0452de85660 100644
--- a/app/javascript/mastodon/features/compose/index.js
+++ b/app/javascript/mastodon/features/compose/index.js
@@ -1,6 +1,5 @@
import React from 'react';
import ComposeFormContainer from './containers/compose_form_container';
-import UploadFormContainer from './containers/upload_form_container';
import NavigationContainer from './containers/navigation_container';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
diff --git a/app/javascript/mastodon/features/favourited_statuses/index.js b/app/javascript/mastodon/features/favourited_statuses/index.js
index 2b343ba5ae7..caf0d2ca2bb 100644
--- a/app/javascript/mastodon/features/favourited_statuses/index.js
+++ b/app/javascript/mastodon/features/favourited_statuses/index.js
@@ -1,7 +1,6 @@
import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
import LoadingIndicator from '../../components/loading_indicator';
import { fetchFavouritedStatuses, expandFavouritedStatuses } from '../../actions/favourites';
import Column from '../ui/components/column';
@@ -15,19 +14,15 @@ const messages = defineMessages({
});
const mapStateToProps = state => ({
- statusIds: state.getIn(['status_lists', 'favourites', 'items']),
loaded: state.getIn(['status_lists', 'favourites', 'loaded']),
- me: state.getIn(['meta', 'me']),
});
class Favourites extends ImmutablePureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
- statusIds: ImmutablePropTypes.list.isRequired,
loaded: PropTypes.bool,
intl: PropTypes.object.isRequired,
- me: PropTypes.number.isRequired,
};
componentWillMount () {
@@ -39,7 +34,7 @@ class Favourites extends ImmutablePureComponent {
}
render () {
- const { statusIds, loaded, intl, me } = this.props;
+ const { loaded, intl } = this.props;
if (!loaded) {
return (
diff --git a/app/javascript/mastodon/features/follow_requests/containers/account_authorize_container.js b/app/javascript/mastodon/features/follow_requests/containers/account_authorize_container.js
index a423bc79b69..8db471f73d0 100644
--- a/app/javascript/mastodon/features/follow_requests/containers/account_authorize_container.js
+++ b/app/javascript/mastodon/features/follow_requests/containers/account_authorize_container.js
@@ -14,11 +14,11 @@ const makeMapStateToProps = () => {
};
const mapDispatchToProps = (dispatch, { id }) => ({
- onAuthorize (account) {
+ onAuthorize () {
dispatch(authorizeFollowRequest(id));
},
- onReject (account) {
+ onReject () {
dispatch(rejectFollowRequest(id));
},
});
diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.js
index a4549e60965..c1eb06fcbb5 100644
--- a/app/javascript/mastodon/features/getting_started/index.js
+++ b/app/javascript/mastodon/features/getting_started/index.js
@@ -2,7 +2,6 @@ import React from 'react';
import Column from '../ui/components/column';
import ColumnLink from '../ui/components/column_link';
import ColumnSubheading from '../ui/components/column_subheading';
-import Link from 'react-router-dom/Link';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.js b/app/javascript/mastodon/features/hashtag_timeline/index.js
index 3b2f1ba93b1..853434d4b71 100644
--- a/app/javascript/mastodon/features/hashtag_timeline/index.js
+++ b/app/javascript/mastodon/features/hashtag_timeline/index.js
@@ -11,7 +11,6 @@ import {
deleteFromTimelines,
} from '../../actions/timelines';
import { addColumn, removeColumn, moveColumn } from '../../actions/columns';
-import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import { FormattedMessage } from 'react-intl';
import createStream from '../../stream';
diff --git a/app/javascript/mastodon/features/home_timeline/components/column_settings.js b/app/javascript/mastodon/features/home_timeline/components/column_settings.js
index ba870a36016..47cd340afbb 100644
--- a/app/javascript/mastodon/features/home_timeline/components/column_settings.js
+++ b/app/javascript/mastodon/features/home_timeline/components/column_settings.js
@@ -2,7 +2,6 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ColumnCollapsable from '../../../components/column_collapsable';
import SettingToggle from '../../notifications/components/setting_toggle';
import SettingText from '../../../components/setting_text';
@@ -16,12 +15,11 @@ class ColumnSettings extends React.PureComponent {
static propTypes = {
settings: ImmutablePropTypes.map.isRequired,
onChange: PropTypes.func.isRequired,
- onSave: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
};
render () {
- const { settings, onChange, onSave, intl } = this.props;
+ const { settings, onChange, intl } = this.props;
return (
diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.js
index 13ac7882630..2051e0c8635 100644
--- a/app/javascript/mastodon/features/notifications/components/column_settings.js
+++ b/app/javascript/mastodon/features/notifications/components/column_settings.js
@@ -2,7 +2,6 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage } from 'react-intl';
-import ColumnCollapsable from '../../../components/column_collapsable';
import ClearColumnButton from './clear_column_button';
import SettingToggle from './setting_toggle';
@@ -16,7 +15,7 @@ class ColumnSettings extends React.PureComponent {
};
render () {
- const { settings, onChange, onSave, onClear } = this.props;
+ const { settings, onChange, onClear } = this.props;
const alertStr =
;
const showStr =
;
diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.js
index 6ec4d5dc671..ede37f66a3c 100644
--- a/app/javascript/mastodon/features/notifications/components/notification.js
+++ b/app/javascript/mastodon/features/notifications/components/notification.js
@@ -2,7 +2,6 @@ import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import StatusContainer from '../../../containers/status_container';
import AccountContainer from '../../../containers/account_container';
-import Avatar from '../../../components/avatar';
import { FormattedMessage } from 'react-intl';
import Permalink from '../../../components/permalink';
import emojify from '../../../emoji';
diff --git a/app/javascript/mastodon/features/notifications/components/setting_toggle.js b/app/javascript/mastodon/features/notifications/components/setting_toggle.js
index aefc14ee3fd..8707a993e9e 100644
--- a/app/javascript/mastodon/features/notifications/components/setting_toggle.js
+++ b/app/javascript/mastodon/features/notifications/components/setting_toggle.js
@@ -18,7 +18,7 @@ class SettingToggle extends React.PureComponent {
}
render () {
- const { prefix, settings, settingKey, label, onChange } = this.props;
+ const { prefix, settings, settingKey, label } = this.props;
const id = ['setting-toggle', prefix, ...settingKey].filter(Boolean).join('-');
return (
diff --git a/app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js b/app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js
index 62d4e7e5aac..203e1da926f 100644
--- a/app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js
+++ b/app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js
@@ -1,6 +1,6 @@
import { connect } from 'react-redux';
import ColumnSettings from '../../community_timeline/components/column_settings';
-import { changeSetting, saveSettings } from '../../../actions/settings';
+import { changeSetting } from '../../../actions/settings';
const mapStateToProps = state => ({
settings: state.getIn(['settings', 'public']),
@@ -12,10 +12,6 @@ const mapDispatchToProps = dispatch => ({
dispatch(changeSetting(['public', ...key], checked));
},
- onSave () {
- dispatch(saveSettings());
- },
-
});
export default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings);
diff --git a/app/javascript/mastodon/features/public_timeline/index.js b/app/javascript/mastodon/features/public_timeline/index.js
index 02ddb418fe4..3de54ef8bc4 100644
--- a/app/javascript/mastodon/features/public_timeline/index.js
+++ b/app/javascript/mastodon/features/public_timeline/index.js
@@ -14,7 +14,6 @@ import {
} from '../../actions/timelines';
import { addColumn, removeColumn, moveColumn } from '../../actions/columns';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import ColumnSettingsContainer from './containers/column_settings_container';
import createStream from '../../stream';
diff --git a/app/javascript/mastodon/features/report/index.js b/app/javascript/mastodon/features/report/index.js
index 23aba39de7b..0a52684303c 100644
--- a/app/javascript/mastodon/features/report/index.js
+++ b/app/javascript/mastodon/features/report/index.js
@@ -1,6 +1,6 @@
import React from 'react';
import { connect } from 'react-redux';
-import { cancelReport, changeReportComment, submitReport } from '../../actions/reports';
+import { changeReportComment, submitReport } from '../../actions/reports';
import { refreshAccountTimeline } from '../../actions/timelines';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js
index 19cee243599..afd8a781189 100644
--- a/app/javascript/mastodon/features/status/index.js
+++ b/app/javascript/mastodon/features/status/index.js
@@ -3,8 +3,6 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { fetchStatus } from '../../actions/statuses';
-import Immutable from 'immutable';
-import EmbeddedStatus from '../../components/status';
import MissingIndicator from '../../components/missing_indicator';
import DetailedStatus from './components/detailed_status';
import ActionBar from './components/action_bar';
@@ -21,17 +19,12 @@ import {
} from '../../actions/compose';
import { deleteStatus } from '../../actions/statuses';
import { initReport } from '../../actions/reports';
-import {
- makeGetStatus,
- getStatusAncestors,
- getStatusDescendants,
-} from '../../selectors';
+import { makeGetStatus } from '../../selectors';
import { ScrollContainer } from 'react-router-scroll';
import ColumnBackButton from '../../components/column_back_button';
import StatusContainer from '../../containers/status_container';
import { openModal } from '../../actions/modal';
-import { isMobile } from '../../is_mobile';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
const messages = defineMessages({
@@ -159,8 +152,6 @@ class Status extends ImmutablePureComponent {
);
}
- const account = status.get('account');
-
if (ancestorsIds && ancestorsIds.size > 0) {
ancestors =
{this.renderChildren(ancestorsIds)}
;
}
diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.js
index da2be5264ad..9a8b96333d8 100644
--- a/app/javascript/mastodon/features/ui/components/boost_modal.js
+++ b/app/javascript/mastodon/features/ui/components/boost_modal.js
@@ -2,7 +2,6 @@ import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import IconButton from '../../../components/icon_button';
import Button from '../../../components/button';
import StatusContent from '../../../components/status_content';
import Avatar from '../../../components/avatar';
@@ -49,7 +48,7 @@ class BoostModal extends ImmutablePureComponent {
}
render () {
- const { status, intl, onClose } = this.props;
+ const { status, intl } = this.props;
return (
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.js b/app/javascript/mastodon/features/ui/components/confirmation_modal.js
index f33bfd4453c..a45c220faf2 100644
--- a/app/javascript/mastodon/features/ui/components/confirmation_modal.js
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modal.js
@@ -1,6 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import { injectIntl, FormattedMessage } from 'react-intl';
import Button from '../../../components/button';
class ConfirmationModal extends React.PureComponent {
diff --git a/app/javascript/mastodon/features/ui/components/image_loader.js b/app/javascript/mastodon/features/ui/components/image_loader.js
index a2514d6be6b..94bf55badbb 100644
--- a/app/javascript/mastodon/features/ui/components/image_loader.js
+++ b/app/javascript/mastodon/features/ui/components/image_loader.js
@@ -41,7 +41,7 @@ class ImageLoader extends React.PureComponent {
render() {
const { alt, src, previewSrc, width, height } = this.props;
- const { loading, error } = this.state;
+ const { loading } = this.state;
return (
diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.js
index cff1a0cf52d..0f4105ee183 100644
--- a/app/javascript/mastodon/features/ui/components/media_modal.js
+++ b/app/javascript/mastodon/features/ui/components/media_modal.js
@@ -1,5 +1,4 @@
import React from 'react';
-import LoadingIndicator from '../../../components/loading_indicator';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import ExtendedVideoPlayer from '../../../components/extended_video_player';
diff --git a/app/javascript/mastodon/features/ui/components/onboarding_modal.js b/app/javascript/mastodon/features/ui/components/onboarding_modal.js
index c8985dc83a2..27959916999 100644
--- a/app/javascript/mastodon/features/ui/components/onboarding_modal.js
+++ b/app/javascript/mastodon/features/ui/components/onboarding_modal.js
@@ -72,7 +72,7 @@ PageTwo.propTypes = {
me: ImmutablePropTypes.map.isRequired,
};
-const PageThree = ({ me, domain }) => (
+const PageThree = ({ me }) => (
(
PageThree.propTypes = {
me: ImmutablePropTypes.map.isRequired,
- domain: PropTypes.string.isRequired,
};
const PageFour = ({ domain, intl }) => (
@@ -187,7 +186,7 @@ class OnboardingModal extends React.PureComponent {
this.pages = [
,
,
- ,
+ ,
,
,
];
diff --git a/app/javascript/mastodon/features/ui/components/video_modal.js b/app/javascript/mastodon/features/ui/components/video_modal.js
index c622085f97d..3599ab775ac 100644
--- a/app/javascript/mastodon/features/ui/components/video_modal.js
+++ b/app/javascript/mastodon/features/ui/components/video_modal.js
@@ -1,5 +1,4 @@
import React from 'react';
-import LoadingIndicator from '../../../components/loading_indicator';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import ExtendedVideoPlayer from '../../../components/extended_video_player';
diff --git a/app/javascript/mastodon/features/ui/containers/notifications_container.js b/app/javascript/mastodon/features/ui/containers/notifications_container.js
index 8bc30df3547..5924197f1e8 100644
--- a/app/javascript/mastodon/features/ui/containers/notifications_container.js
+++ b/app/javascript/mastodon/features/ui/containers/notifications_container.js
@@ -1,12 +1,9 @@
import { connect } from 'react-redux';
import { NotificationStack } from 'react-notification';
-import {
- dismissAlert,
- clearAlerts,
-} from '../../../actions/alerts';
+import { dismissAlert } from '../../../actions/alerts';
import { getAlerts } from '../../../selectors';
-const mapStateToProps = (state, props) => ({
+const mapStateToProps = state => ({
notifications: getAlerts(state),
});
diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js
index 39600607ff9..e48e9dbe995 100644
--- a/app/javascript/mastodon/features/ui/index.js
+++ b/app/javascript/mastodon/features/ui/index.js
@@ -74,9 +74,6 @@ class WrappedRoute extends React.Component {
}
-const noOp = () => false;
-
-
class UI extends React.PureComponent {
static propTypes = {
diff --git a/app/javascript/mastodon/middleware/errors.js b/app/javascript/mastodon/middleware/errors.js
index 4aca75f1e36..b2c5f0898b4 100644
--- a/app/javascript/mastodon/middleware/errors.js
+++ b/app/javascript/mastodon/middleware/errors.js
@@ -1,13 +1,11 @@
import { showAlert } from '../actions/alerts';
-const defaultSuccessSuffix = 'SUCCESS';
const defaultFailSuffix = 'FAIL';
export default function errorsMiddleware() {
return ({ dispatch }) => next => action => {
if (action.type && !action.skipAlert) {
const isFail = new RegExp(`${defaultFailSuffix}$`, 'g');
- const isSuccess = new RegExp(`${defaultSuccessSuffix}$`, 'g');
if (action.type.match(isFail)) {
if (action.error.response) {
diff --git a/app/javascript/mastodon/middleware/sounds.js b/app/javascript/mastodon/middleware/sounds.js
index fd5a2b960ee..372e7c8354d 100644
--- a/app/javascript/mastodon/middleware/sounds.js
+++ b/app/javascript/mastodon/middleware/sounds.js
@@ -32,7 +32,7 @@ export default function soundsMiddleware() {
]),
};
- return ({ dispatch }) => next => (action) => {
+ return () => next => action => {
if (action.meta && action.meta.sound && soundCache[action.meta.sound]) {
play(soundCache[action.meta.sound]);
}
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index 2413df9e242..d0b47a85c2c 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -20,7 +20,6 @@ import {
COMPOSE_SPOILERNESS_CHANGE,
COMPOSE_SPOILER_TEXT_CHANGE,
COMPOSE_VISIBILITY_CHANGE,
- COMPOSE_LISTABILITY_CHANGE,
COMPOSE_EMOJI_INSERT,
} from '../actions/compose';
import { TIMELINE_DELETE } from '../actions/timelines';
diff --git a/app/javascript/mastodon/reducers/modal.js b/app/javascript/mastodon/reducers/modal.js
index 8fd9a69cdae..599a2443e0d 100644
--- a/app/javascript/mastodon/reducers/modal.js
+++ b/app/javascript/mastodon/reducers/modal.js
@@ -1,5 +1,4 @@
import { MODAL_OPEN, MODAL_CLOSE } from '../actions/modal';
-import Immutable from 'immutable';
const initialState = {
modalType: null,
diff --git a/app/javascript/mastodon/reducers/search.js b/app/javascript/mastodon/reducers/search.js
index ed395427e9e..0a3adac05cc 100644
--- a/app/javascript/mastodon/reducers/search.js
+++ b/app/javascript/mastodon/reducers/search.js
@@ -14,60 +14,6 @@ const initialState = Immutable.Map({
results: Immutable.Map(),
});
-const normalizeSuggestions = (state, value, accounts, hashtags, statuses) => {
- let newSuggestions = [];
-
- if (accounts.length > 0) {
- newSuggestions.push({
- title: 'account',
- items: accounts.map(item => ({
- type: 'account',
- id: item.id,
- value: item.acct,
- })),
- });
- }
-
- if (value.indexOf('@') === -1 && value.indexOf(' ') === -1 || hashtags.length > 0) {
- let hashtagItems = hashtags.map(item => ({
- type: 'hashtag',
- id: item,
- value: `#${item}`,
- }));
-
- if (value.indexOf('@') === -1 && value.indexOf(' ') === -1 && !value.startsWith('http://') && !value.startsWith('https://') && hashtags.indexOf(value) === -1) {
- hashtagItems.unshift({
- type: 'hashtag',
- id: value,
- value: `#${value}`,
- });
- }
-
- if (hashtagItems.length > 0) {
- newSuggestions.push({
- title: 'hashtag',
- items: hashtagItems,
- });
- }
- }
-
- if (statuses.length > 0) {
- newSuggestions.push({
- title: 'status',
- items: statuses.map(item => ({
- type: 'status',
- id: item.id,
- value: item.id,
- })),
- });
- }
-
- return state.withMutations(map => {
- map.set('suggestions', newSuggestions);
- map.set('loaded_value', value);
- });
-};
-
export default function search(state = initialState, action) {
switch(action.type) {
case SEARCH_CHANGE:
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js
index 2bc1c805094..1b738a16aa1 100644
--- a/app/javascript/mastodon/reducers/timelines.js
+++ b/app/javascript/mastodon/reducers/timelines.js
@@ -11,12 +11,6 @@ import {
TIMELINE_CONNECT,
TIMELINE_DISCONNECT,
} from '../actions/timelines';
-import {
- REBLOG_SUCCESS,
- UNREBLOG_SUCCESS,
- FAVOURITE_SUCCESS,
- UNFAVOURITE_SUCCESS,
-} from '../actions/interactions';
import {
ACCOUNT_BLOCK_SUCCESS,
ACCOUNT_MUTE_SUCCESS,
diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js
index d5d736e2f44..07d9a2629bc 100644
--- a/app/javascript/mastodon/selectors/index.js
+++ b/app/javascript/mastodon/selectors/index.js
@@ -1,9 +1,6 @@
import { createSelector } from 'reselect';
import Immutable from 'immutable';
-const getStatuses = state => state.get('statuses');
-const getAccounts = state => state.get('accounts');
-
const getAccountBase = (state, id) => state.getIn(['accounts', id], null);
const getAccountCounters = (state, id) => state.getIn(['accounts_counters', id], null);
const getAccountRelationship = (state, id) => state.getIn(['relationships', id], null);
diff --git a/app/javascript/mastodon/store/configureStore.js b/app/javascript/mastodon/store/configureStore.js
index a92d756f549..1376d4cbaf5 100644
--- a/app/javascript/mastodon/store/configureStore.js
+++ b/app/javascript/mastodon/store/configureStore.js
@@ -4,7 +4,6 @@ import appReducer from '../reducers';
import loadingBarMiddleware from '../middleware/loading_bar';
import errorsMiddleware from '../middleware/errors';
import soundsMiddleware from '../middleware/sounds';
-import Immutable from 'immutable';
export default function configureStore() {
return createStore(appReducer, compose(applyMiddleware(
diff --git a/spec/javascript/.eslintrc.yml b/spec/javascript/.eslintrc.yml
new file mode 100644
index 00000000000..6db2a46c535
--- /dev/null
+++ b/spec/javascript/.eslintrc.yml
@@ -0,0 +1,3 @@
+---
+env:
+ mocha: true
diff --git a/spec/javascript/components/loading_indicator.test.js b/spec/javascript/components/loading_indicator.test.js
deleted file mode 100644
index 0859dd192d3..00000000000
--- a/spec/javascript/components/loading_indicator.test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { expect } from 'chai';
-import { shallow } from 'enzyme';
-import React from 'react';
-import LoadingIndicator from '../../../app/javascript/mastodon/components/loading_indicator';
-
-describe('', () => {
-
-});
diff --git a/storybook/config.js b/storybook/config.js
index 1078059a76b..87479560f53 100644
--- a/storybook/config.js
+++ b/storybook/config.js
@@ -1,5 +1,4 @@
import { configure } from '@storybook/react';
-import React from 'react';
import { addLocaleData } from 'react-intl';
import en from 'react-intl/locale-data/en';
import '../app/javascript/styles/application.scss';
diff --git a/storybook/stories/character_counter.story.js b/storybook/stories/character_counter.story.js
index 15a401a25c7..39d9afb5678 100644
--- a/storybook/stories/character_counter.story.js
+++ b/storybook/stories/character_counter.story.js
@@ -1,6 +1,5 @@
import React from 'react';
import { storiesOf } from '@storybook/react';
-import { action } from '@storybook/addon-actions';
import CharacterCounter from 'mastodon/features/compose/components/character_counter';
storiesOf('CharacterCounter', module)
diff --git a/storybook/stories/loading_indicator.story.js b/storybook/stories/loading_indicator.story.js
index 3e12f61ca86..6ee822758a5 100644
--- a/storybook/stories/loading_indicator.story.js
+++ b/storybook/stories/loading_indicator.story.js
@@ -1,7 +1,6 @@
import React from 'react';
import { IntlProvider } from 'react-intl';
import { storiesOf } from '@storybook/react';
-import { action } from '@storybook/addon-actions';
import en from 'mastodon/locales/en.json';
import LoadingIndicator from 'mastodon/components/loading_indicator';
diff --git a/streaming/index.js b/streaming/index.js
index 5afdd59619c..fb23be34d48 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -242,7 +242,7 @@ const startWorker = (workerId) => {
accountFromRequest(req, next);
};
- const errorMiddleware = (err, req, res, next) => {
+ const errorMiddleware = (err, req, res) => {
log.error(req.requestId, err.toString());
res.writeHead(err.statusCode || 500, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ error: err.statusCode ? err.toString() : 'An unexpected error occurred' }));
@@ -366,7 +366,7 @@ const startWorker = (workerId) => {
}
});
- ws.on('error', e => {
+ ws.on('error', () => {
log.verbose(req.requestId, `Ending stream for ${req.accountId}`);
unsubscribe(id, listener);
if (closeHandler) {
@@ -443,7 +443,7 @@ const startWorker = (workerId) => {
}
});
- const wsInterval = setInterval(() => {
+ setInterval(() => {
wss.clients.forEach(ws => {
if (ws.isAlive === false) {
ws.terminate();