Merge pull request #2151 from ClearlyClaire/glitch-soc/main

Merge upstream changes
pull/59/head
Claire 2023-03-27 12:49:33 +02:00 committed by GitHub
commit cbdb25ab03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
293 changed files with 750 additions and 483 deletions

View File

@ -32,10 +32,14 @@ module.exports = {
parserOptions: {
sourceType: 'module',
ecmaFeatures: {
experimentalObjectRestSpread: true,
jsx: true,
},
ecmaVersion: 2021,
requireConfigFile: false,
babelOptions: {
configFile: false,
presets: ['@babel/react', '@babel/env'],
},
},
settings: {
@ -214,4 +218,22 @@ module.exports = {
'promise/no-nesting': 'off',
'promise/no-promise-in-callback': 'off',
},
overrides: [
{
files: [
'*.config.js',
'.*rc.js',
'ide-helper.js',
],
env: {
commonjs: true,
},
parserOptions: {
sourceType: 'script',
},
},
],
};

View File

@ -40,7 +40,7 @@ jobs:
ruby-version: .ruby-version
bundler-cache: true
- run: yarn install --frozen-lockfile
- run: yarn --frozen-lockfile --production
- name: Precompile assets
# Previously had set this, but it's not supported
# export NODE_OPTIONS=--openssl-legacy-provider

View File

@ -59,10 +59,49 @@ Metrics/BlockNesting:
Exclude:
- 'lib/mastodon/*_cli.rb'
# Reason: Some Excluded files would be candidates for refactoring but not currently addressed
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsclasslength
Metrics/ClassLength:
CountAsOne: [array, heredoc]
CountAsOne: ['array', 'hash', 'heredoc', 'method_call']
Exclude:
- 'lib/mastodon/*_cli.rb'
- 'app/controllers/admin/accounts_controller.rb'
- 'app/controllers/api/base_controller.rb'
- 'app/controllers/api/v1/admin/accounts_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/auth/registrations_controller.rb'
- 'app/controllers/auth/sessions_controller.rb'
- 'app/lib/activitypub/activity.rb'
- 'app/lib/activitypub/activity/create.rb'
- 'app/lib/activitypub/tag_manager.rb'
- 'app/lib/feed_manager.rb'
- 'app/lib/link_details_extractor.rb'
- 'app/lib/request.rb'
- 'app/lib/text_formatter.rb'
- 'app/lib/user_settings_decorator.rb'
- 'app/mailers/user_mailer.rb'
- 'app/models/account.rb'
- 'app/models/admin/account_action.rb'
- 'app/models/form/account_batch.rb'
- 'app/models/media_attachment.rb'
- 'app/models/status.rb'
- 'app/models/tag.rb'
- 'app/models/user.rb'
- 'app/serializers/activitypub/actor_serializer.rb'
- 'app/serializers/activitypub/note_serializer.rb'
- 'app/serializers/rest/status_serializer.rb'
- 'app/services/account_search_service.rb'
- 'app/services/activitypub/process_account_service.rb'
- 'app/services/activitypub/process_status_update_service.rb'
- 'app/services/backup_service.rb'
- 'app/services/delete_account_service.rb'
- 'app/services/fan_out_on_write_service.rb'
- 'app/services/fetch_link_card_service.rb'
- 'app/services/import_service.rb'
- 'app/services/notify_service.rb'
- 'app/services/post_status_service.rb'
- 'app/services/update_status_service.rb'
- 'lib/paperclip/color_extractor.rb'
Metrics/CyclomaticComplexity:
Exclude:

View File

@ -243,10 +243,6 @@ Metrics/BlockNesting:
Exclude:
- 'lib/tasks/mastodon.rake'
# Configuration parameters: CountComments, CountAsOne.
Metrics/ClassLength:
Max: 375
# Configuration parameters: AllowedMethods, AllowedPatterns.
Metrics/CyclomaticComplexity:
Max: 25

View File

@ -37,7 +37,7 @@ RUN apt-get update && \
bundle config set --local without 'development test' && \
bundle config set silence_root_warning true && \
bundle install -j"$(nproc)" && \
yarn install --pure-lockfile --network-timeout 600000 && \
yarn install --pure-lockfile --production --network-timeout 600000 && \
yarn cache clean
FROM node:${NODE_VERSION}

View File

@ -4,7 +4,6 @@ import 'es6-symbol/implement';
import includes from 'array-includes';
import assign from 'object-assign';
import values from 'object.values';
import isNaN from 'is-nan';
import { decode as decodeBase64 } from './utils/base64';
import promiseFinally from 'promise.prototype.finally';
@ -20,10 +19,6 @@ if (!Object.values) {
values.shim();
}
if (!Number.isNaN) {
Number.isNaN = isNaN;
}
promiseFinally.shim();
if (!HTMLCanvasElement.prototype.toBlob) {

View File

@ -23,7 +23,6 @@ const messages = defineMessages({
block: { id: 'account.block', defaultMessage: 'Block @{name}' },
});
export default @injectIntl
class Account extends ImmutablePureComponent {
static propTypes = {
@ -184,3 +183,5 @@ class Account extends ImmutablePureComponent {
}
}
export default injectIntl(Account);

View File

@ -84,7 +84,6 @@ class Rule extends React.PureComponent {
}
export default @injectIntl
class ReportReasonSelector extends React.PureComponent {
static propTypes = {
@ -157,3 +156,5 @@ class ReportReasonSelector extends React.PureComponent {
}
}
export default injectIntl(ReportReasonSelector);

View File

@ -12,7 +12,6 @@ const messages = defineMessages({
moveRight: { id: 'column_header.moveRight_settings', defaultMessage: 'Move column to the right' },
});
export default @injectIntl
class ColumnHeader extends React.PureComponent {
static contextTypes = {
@ -218,3 +217,5 @@ class ColumnHeader extends React.PureComponent {
}
}
export default injectIntl(ColumnHeader);

View File

@ -8,7 +8,6 @@ const messages = defineMessages({
dismiss: { id: 'dismissable_banner.dismiss', defaultMessage: 'Dismiss' },
});
export default @injectIntl
class DismissableBanner extends React.PureComponent {
static propTypes = {
@ -49,3 +48,5 @@ class DismissableBanner extends React.PureComponent {
}
}
export default injectIntl(DismissableBanner);

View File

@ -8,7 +8,6 @@ const messages = defineMessages({
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' },
});
export default @injectIntl
class Account extends ImmutablePureComponent {
static propTypes = {
@ -40,3 +39,5 @@ class Account extends ImmutablePureComponent {
}
}
export default injectIntl(Account);

View File

@ -16,8 +16,6 @@ const mapDispatchToProps = (dispatch, { statusId }) => ({
});
export default @connect(null, mapDispatchToProps)
@injectIntl
class EditedTimestamp extends React.PureComponent {
static propTypes = {
@ -68,3 +66,5 @@ class EditedTimestamp extends React.PureComponent {
}
}
export default connect(null, mapDispatchToProps)(injectIntl(EditedTimestamp));

View File

@ -14,7 +14,6 @@ const makeMapStateToProps = () => {
return mapStateToProps;
};
export default @connect(makeMapStateToProps)
class InlineAccount extends React.PureComponent {
static propTypes = {
@ -32,3 +31,5 @@ class InlineAccount extends React.PureComponent {
}
}
export default connect(makeMapStateToProps)(InlineAccount);

View File

@ -7,7 +7,6 @@ const messages = defineMessages({
load_more: { id: 'status.load_more', defaultMessage: 'Load more' },
});
export default @injectIntl
class LoadGap extends React.PureComponent {
static propTypes = {
@ -32,3 +31,5 @@ class LoadGap extends React.PureComponent {
}
}
export default injectIntl(LoadGap);

View File

@ -244,7 +244,6 @@ class Item extends React.PureComponent {
}
export default @injectIntl
class MediaGallery extends React.PureComponent {
static propTypes = {
@ -406,3 +405,5 @@ class MediaGallery extends React.PureComponent {
}
}
export default injectIntl(MediaGallery);

View File

@ -15,7 +15,6 @@ const DefaultNavigation = () => (
</>
);
export default @withRouter
class NavigationPortal extends React.PureComponent {
render () {
@ -33,3 +32,5 @@ class NavigationPortal extends React.PureComponent {
}
}
export default withRouter(NavigationPortal);

View File

@ -19,7 +19,6 @@ const messages = defineMessages({
btnApply : { id: 'notification_purge.btn_apply', defaultMessage: 'Clear\nselected' },
});
export default @injectIntl
class NotificationPurgeButtons extends ImmutablePureComponent {
static propTypes = {
@ -57,3 +56,5 @@ class NotificationPurgeButtons extends ImmutablePureComponent {
}
}
export default injectIntl(NotificationPurgeButtons);

View File

@ -6,7 +6,6 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
import { FormattedMessage } from 'react-intl';
export default @connect()
class PictureInPicturePlaceholder extends React.PureComponent {
static propTypes = {
@ -67,3 +66,5 @@ class PictureInPicturePlaceholder extends React.PureComponent {
}
}
export default connect()(PictureInPicturePlaceholder);

View File

@ -31,7 +31,6 @@ const makeEmojiMap = record => record.get('emojis').reduce((obj, emoji) => {
return obj;
}, {});
export default @injectIntl
class Poll extends ImmutablePureComponent {
static contextTypes = {
@ -234,3 +233,5 @@ class Poll extends ImmutablePureComponent {
}
}
export default injectIntl(Poll);

View File

@ -121,7 +121,6 @@ const timeRemainingString = (intl, date, now, timeGiven = true) => {
return relativeTime;
};
export default @injectIntl
class RelativeTimestamp extends React.Component {
static propTypes = {
@ -197,3 +196,5 @@ class RelativeTimestamp extends React.Component {
}
}
export default injectIntl(RelativeTimestamp);

View File

@ -20,7 +20,6 @@ const mapStateToProps = (state, { scrollKey }) => {
};
};
export default @connect(mapStateToProps, null, null, { forwardRef: true })
class ScrollableList extends PureComponent {
static contextTypes = {
@ -352,3 +351,5 @@ class ScrollableList extends PureComponent {
}
}
export default connect(mapStateToProps, null, null, { forwardRef: true })(ScrollableList);

View File

@ -18,8 +18,6 @@ const mapStateToProps = state => ({
server: state.getIn(['server', 'server']),
});
export default @connect(mapStateToProps)
@injectIntl
class ServerBanner extends React.PureComponent {
static propTypes = {
@ -91,3 +89,5 @@ class ServerBanner extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(ServerBanner));

View File

@ -56,7 +56,6 @@ export const defaultMediaVisibility = (status, settings) => {
return (displayMedia !== 'hide_all' && !status.get('sensitive') || displayMedia === 'show_all');
};
export default @injectIntl
class Status extends ImmutablePureComponent {
static contextTypes = {
@ -830,3 +829,5 @@ class Status extends ImmutablePureComponent {
}
}
export default injectIntl(Status);

View File

@ -46,7 +46,6 @@ const messages = defineMessages({
openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' },
});
export default @injectIntl
class StatusActionBar extends ImmutablePureComponent {
static contextTypes = {
@ -339,3 +338,5 @@ class StatusActionBar extends ImmutablePureComponent {
}
}
export default injectIntl(StatusActionBar);

View File

@ -104,8 +104,6 @@ const mapStateToProps = state => ({
languages: state.getIn(['server', 'translationLanguages', 'items']),
});
export default @connect(mapStateToProps)
@injectIntl
class StatusContent extends React.PureComponent {
static contextTypes = {
@ -468,3 +466,5 @@ class StatusContent extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(StatusContent));

View File

@ -40,7 +40,6 @@ LanguageIcon.propTypes = {
language: PropTypes.string.isRequired,
};
export default @injectIntl
class StatusIcons extends React.PureComponent {
static propTypes = {
@ -143,3 +142,5 @@ class StatusIcons extends React.PureComponent {
}
}
export default injectIntl(StatusIcons);

View File

@ -12,7 +12,6 @@ const messages = defineMessages({
direct: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' },
});
export default @injectIntl
class VisibilityIcon extends ImmutablePureComponent {
static propTypes = {
@ -49,3 +48,5 @@ class VisibilityIcon extends ImmutablePureComponent {
}
}
export default injectIntl(VisibilityIcon);

View File

@ -80,8 +80,6 @@ class Section extends React.PureComponent {
}
export default @connect(mapStateToProps)
@injectIntl
class About extends React.PureComponent {
static propTypes = {
@ -218,3 +216,5 @@ class About extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(About));

View File

@ -10,7 +10,6 @@ const messages = defineMessages({
placeholder: { id: 'account_note.glitch_placeholder', defaultMessage: 'No comment provided' },
});
export default @injectIntl
class Header extends ImmutablePureComponent {
static propTypes = {
@ -102,3 +101,5 @@ class Header extends ImmutablePureComponent {
}
}
export default injectIntl(Header);

View File

@ -8,7 +8,6 @@ import { me, isStaff } from 'flavours/glitch/initial_state';
import { profileLink, accountAdminLink } from 'flavours/glitch/utils/backend_links';
import Icon from 'flavours/glitch/components/icon';
export default @injectIntl
class ActionBar extends React.PureComponent {
static propTypes = {
@ -83,3 +82,5 @@ class ActionBar extends React.PureComponent {
}
}
export default injectIntl(ActionBar);

View File

@ -10,7 +10,6 @@ const messages = defineMessages({
empty: { id: 'account.featured_tags.last_status_never', defaultMessage: 'No posts' },
});
export default @injectIntl
class FeaturedTags extends ImmutablePureComponent {
static contextTypes = {
@ -51,3 +50,5 @@ class FeaturedTags extends ImmutablePureComponent {
}
}
export default injectIntl(FeaturedTags);

View File

@ -76,7 +76,6 @@ const dateFormatOptions = {
minute: '2-digit',
};
export default @injectIntl
class Header extends ImmutablePureComponent {
static contextTypes = {
@ -403,3 +402,5 @@ class Header extends ImmutablePureComponent {
}
}
export default injectIntl(Header);

View File

@ -7,7 +7,6 @@ const messages = defineMessages({
profile: { id: 'column_header.profile', defaultMessage: 'Profile' },
});
export default @injectIntl
class ProfileColumnHeader extends React.PureComponent {
static propTypes = {
@ -31,3 +30,5 @@ class ProfileColumnHeader extends React.PureComponent {
}
}
export default injectIntl(ProfileColumnHeader);

View File

@ -19,7 +19,6 @@ const mapStateToProps = (state, { match: { params: { acct } } }) => {
};
};
export default @connect(mapStateToProps)
class AccountNavigation extends React.PureComponent {
static propTypes = {
@ -50,3 +49,5 @@ class AccountNavigation extends React.PureComponent {
}
}
export default connect(mapStateToProps)(AccountNavigation);

View File

@ -58,7 +58,6 @@ class LoadMoreMedia extends ImmutablePureComponent {
}
export default @connect(mapStateToProps)
class AccountGallery extends ImmutablePureComponent {
static propTypes = {
@ -223,3 +222,5 @@ class AccountGallery extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(AccountGallery);

View File

@ -14,7 +14,6 @@ const mapDispatchToProps = (dispatch, { accountId }) => ({
});
export default @connect(() => {}, mapDispatchToProps)
class LimitedAccountHint extends React.PureComponent {
static propTypes = {
@ -34,3 +33,5 @@ class LimitedAccountHint extends React.PureComponent {
}
}
export default connect(() => {}, mapDispatchToProps)(LimitedAccountHint);

View File

@ -62,7 +62,6 @@ RemoteHint.propTypes = {
url: PropTypes.string.isRequired,
};
export default @connect(mapStateToProps)
class AccountTimeline extends ImmutablePureComponent {
static propTypes = {
@ -207,3 +206,5 @@ class AccountTimeline extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(AccountTimeline);

View File

@ -22,7 +22,6 @@ const messages = defineMessages({
const TICK_SIZE = 10;
const PADDING = 180;
export default @injectIntl
class Audio extends React.PureComponent {
static propTypes = {
@ -575,3 +574,5 @@ class Audio extends React.PureComponent {
}
}
export default injectIntl(Audio);

View File

@ -22,8 +22,6 @@ const mapStateToProps = state => ({
isLoading: state.getIn(['user_lists', 'blocks', 'isLoading'], true),
});
export default @connect(mapStateToProps)
@injectIntl
class Blocks extends ImmutablePureComponent {
static propTypes = {
@ -77,3 +75,5 @@ class Blocks extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(Blocks));

View File

@ -22,8 +22,6 @@ const mapStateToProps = state => ({
hasMore: !!state.getIn(['status_lists', 'bookmarks', 'next']),
});
export default @connect(mapStateToProps)
@injectIntl
class Bookmarks extends ImmutablePureComponent {
static propTypes = {
@ -106,3 +104,5 @@ class Bookmarks extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(Bookmarks));

View File

@ -9,7 +9,6 @@ const mapStateToProps = state => ({
message: state.getIn(['server', 'server', 'registrations', 'message']),
});
export default @connect(mapStateToProps)
class ClosedRegistrationsModal extends ImmutablePureComponent {
componentDidMount () {
@ -73,3 +72,5 @@ class ClosedRegistrationsModal extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(ClosedRegistrationsModal);

View File

@ -10,7 +10,6 @@ const messages = defineMessages({
settings: { id: 'home.settings', defaultMessage: 'Column settings' },
});
export default @injectIntl
class ColumnSettings extends React.PureComponent {
static propTypes = {
@ -39,3 +38,5 @@ class ColumnSettings extends React.PureComponent {
}
}
export default injectIntl(ColumnSettings);

View File

@ -32,8 +32,6 @@ const mapStateToProps = (state, { columnId }) => {
};
};
export default @connect(mapStateToProps)
@injectIntl
class CommunityTimeline extends React.PureComponent {
static defaultProps = {
@ -162,3 +160,5 @@ class CommunityTimeline extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(CommunityTimeline));

View File

@ -21,7 +21,6 @@ const messages = defineMessages({
bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },
});
export default @injectIntl
class ActionBar extends React.PureComponent {
static propTypes = {
@ -66,3 +65,5 @@ class ActionBar extends React.PureComponent {
}
}
export default injectIntl(ActionBar);

View File

@ -32,7 +32,6 @@ const messages = defineMessages({
spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' },
});
export default @injectIntl
class ComposeForm extends ImmutablePureComponent {
static contextTypes = {
@ -389,3 +388,5 @@ class ComposeForm extends ImmutablePureComponent {
}
}
export default injectIntl(ComposeForm);

View File

@ -145,8 +145,7 @@ class ModifierPicker extends React.PureComponent {
}
@injectIntl
class EmojiPickerMenu extends React.PureComponent {
class EmojiPickerMenuImpl extends React.PureComponent {
static propTypes = {
custom_emojis: ImmutablePropTypes.list,
@ -307,7 +306,8 @@ class EmojiPickerMenu extends React.PureComponent {
}
export default @injectIntl
const EmojiPickerMenu = injectIntl(EmojiPickerMenuImpl);
class EmojiPickerDropdown extends React.PureComponent {
static propTypes = {
@ -411,3 +411,5 @@ class EmojiPickerDropdown extends React.PureComponent {
}
}
export default injectIntl(EmojiPickerDropdown);

View File

@ -45,7 +45,6 @@ const messages = defineMessages({
},
});
export default @injectIntl
class Header extends ImmutablePureComponent {
static propTypes = {
@ -134,3 +133,5 @@ class Header extends ImmutablePureComponent {
}
}
export default injectIntl(Header);

View File

@ -237,7 +237,6 @@ class LanguageDropdownMenu extends React.PureComponent {
}
export default @injectIntl
class LanguageDropdown extends React.PureComponent {
static propTypes = {
@ -325,3 +324,5 @@ class LanguageDropdown extends React.PureComponent {
}
}
export default injectIntl(LanguageDropdown);

View File

@ -83,8 +83,11 @@ const messages = defineMessages({
},
});
@connect((state, { name }) => ({ checked: state.getIn(['compose', 'advanced_options', name]) }))
class ToggleOption extends ImmutablePureComponent {
const mapStateToProps = (state, { name }) => ({
checked: state.getIn(['compose', 'advanced_options', name]),
});
class ToggleOptionImpl extends ImmutablePureComponent {
static propTypes = {
name: PropTypes.string.isRequired,
@ -113,7 +116,8 @@ class ToggleOption extends ImmutablePureComponent {
}
export default @injectIntl
const ToggleOption = connect(mapStateToProps)(ToggleOptionImpl);
class ComposerOptions extends ImmutablePureComponent {
static propTypes = {
@ -315,3 +319,5 @@ class ComposerOptions extends ImmutablePureComponent {
}
}
export default injectIntl(ComposerOptions);

View File

@ -21,8 +21,7 @@ const messages = defineMessages({
days: { id: 'intervals.full.days', defaultMessage: '{number, plural, one {# day} other {# days}}' },
});
@injectIntl
class Option extends React.PureComponent {
class OptionIntl extends React.PureComponent {
static propTypes = {
title: PropTypes.string.isRequired,
@ -92,8 +91,8 @@ class Option extends React.PureComponent {
}
export default
@injectIntl
const Option = injectIntl(OptionIntl);
class PollForm extends ImmutablePureComponent {
static propTypes = {
@ -168,3 +167,5 @@ class PollForm extends ImmutablePureComponent {
}
}
export default injectIntl(PollForm);

View File

@ -16,7 +16,6 @@ const messages = defineMessages({
change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' },
});
export default @injectIntl
class PrivacyDropdown extends React.PureComponent {
static propTypes = {
@ -86,3 +85,5 @@ class PrivacyDropdown extends React.PureComponent {
}
}
export default injectIntl(PrivacyDropdown);

View File

@ -26,7 +26,6 @@ const messages = defineMessages({
saveChanges: { id: 'compose_form.save_changes', defaultMessage: 'Save changes' },
});
export default @injectIntl
class Publisher extends ImmutablePureComponent {
static propTypes = {
@ -97,3 +96,5 @@ class Publisher extends ImmutablePureComponent {
}
}
export default injectIntl(Publisher);

View File

@ -19,7 +19,6 @@ const messages = defineMessages({
});
export default @injectIntl
class ReplyIndicator extends ImmutablePureComponent {
static propTypes = {
@ -80,3 +79,5 @@ class ReplyIndicator extends ImmutablePureComponent {
}
}
export default injectIntl(ReplyIndicator);

View File

@ -45,7 +45,6 @@ class SearchPopout extends React.PureComponent {
}
// The component.
export default @injectIntl
class Search extends React.PureComponent {
static contextTypes = {
@ -166,3 +165,5 @@ class Search extends React.PureComponent {
}
}
export default injectIntl(Search);

View File

@ -14,7 +14,6 @@ const messages = defineMessages({
dismissSuggestion: { id: 'suggestions.dismiss', defaultMessage: 'Dismiss suggestion' },
});
export default @injectIntl
class SearchResults extends ImmutablePureComponent {
static propTypes = {
@ -139,3 +138,5 @@ class SearchResults extends ImmutablePureComponent {
}
}
export default injectIntl(SearchResults);

View File

@ -27,7 +27,6 @@ const iconMap = [
['threaded_mode', 'comments', messages.threadedMode],
];
export default @injectIntl
class TextareaIcons extends ImmutablePureComponent {
static propTypes = {
@ -58,3 +57,5 @@ class TextareaIcons extends ImmutablePureComponent {
}
}
export default injectIntl(TextareaIcons);

View File

@ -39,8 +39,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
},
});
export default @connect(mapStateToProps, mapDispatchToProps)
@injectIntl
class Compose extends React.PureComponent {
static propTypes = {
@ -114,3 +112,5 @@ class Compose extends React.PureComponent {
}
}
export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(Compose));

View File

@ -10,7 +10,6 @@ const messages = defineMessages({
settings: { id: 'home.settings', defaultMessage: 'Column settings' },
});
export default @injectIntl
class ColumnSettings extends React.PureComponent {
static propTypes = {
@ -40,3 +39,5 @@ class ColumnSettings extends React.PureComponent {
}
}
export default injectIntl(ColumnSettings);

View File

@ -24,7 +24,6 @@ const messages = defineMessages({
unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' },
});
export default @injectIntl
class Conversation extends ImmutablePureComponent {
static contextTypes = {
@ -230,3 +229,5 @@ class Conversation extends ImmutablePureComponent {
}
}
export default injectIntl(Conversation);

View File

@ -22,8 +22,6 @@ const mapStateToProps = state => ({
conversationsMode: state.getIn(['settings', 'direct', 'conversations']),
});
export default @connect(mapStateToProps)
@injectIntl
class DirectTimeline extends React.PureComponent {
static propTypes = {
@ -154,3 +152,5 @@ class DirectTimeline extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(DirectTimeline));

View File

@ -93,9 +93,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
});
export default
@injectIntl
@connect(makeMapStateToProps, mapDispatchToProps)
class AccountCard extends ImmutablePureComponent {
static propTypes = {
@ -246,3 +243,5 @@ class AccountCard extends ImmutablePureComponent {
}
}
export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(AccountCard));