Browse Source

Use Class and Property Decorators (#3730)

ref https://tc39.github.io/proposal-decorators/
pull/4/head
Yamagishi Kazutoshi 5 years ago
committed by Eugen Rochko
parent
commit
c1a8e3d1eb
90 changed files with 168 additions and 274 deletions
  1. +1
    -0
      .babelrc
  2. +2
    -3
      app/javascript/mastodon/components/account.js
  3. +1
    -3
      app/javascript/mastodon/components/attachment_list.js
  4. +1
    -3
      app/javascript/mastodon/components/autosuggest_textarea.js
  5. +1
    -3
      app/javascript/mastodon/components/avatar.js
  6. +1
    -3
      app/javascript/mastodon/components/avatar_overlay.js
  7. +1
    -3
      app/javascript/mastodon/components/button.js
  8. +1
    -3
      app/javascript/mastodon/components/column.js
  9. +1
    -3
      app/javascript/mastodon/components/column_back_button.js
  10. +1
    -3
      app/javascript/mastodon/components/column_back_button_slim.js
  11. +1
    -3
      app/javascript/mastodon/components/column_collapsable.js
  12. +1
    -3
      app/javascript/mastodon/components/column_header.js
  13. +1
    -3
      app/javascript/mastodon/components/display_name.js
  14. +1
    -3
      app/javascript/mastodon/components/dropdown_menu.js
  15. +1
    -3
      app/javascript/mastodon/components/extended_video_player.js
  16. +1
    -3
      app/javascript/mastodon/components/icon_button.js
  17. +1
    -3
      app/javascript/mastodon/components/load_more.js
  18. +2
    -3
      app/javascript/mastodon/components/media_gallery.js
  19. +1
    -3
      app/javascript/mastodon/components/permalink.js
  20. +2
    -3
      app/javascript/mastodon/components/relative_timestamp.js
  21. +1
    -3
      app/javascript/mastodon/components/setting_text.js
  22. +1
    -3
      app/javascript/mastodon/components/status.js
  23. +2
    -3
      app/javascript/mastodon/components/status_action_bar.js
  24. +1
    -3
      app/javascript/mastodon/components/status_content.js
  25. +1
    -3
      app/javascript/mastodon/components/status_list.js
  26. +2
    -3
      app/javascript/mastodon/components/video_player.js
  27. +5
    -7
      app/javascript/mastodon/containers/mastodon.js
  28. +2
    -3
      app/javascript/mastodon/features/account/components/action_bar.js
  29. +3
    -3
      app/javascript/mastodon/features/account/components/header.js
  30. +1
    -3
      app/javascript/mastodon/features/account_gallery/components/media_item.js
  31. +2
    -3
      app/javascript/mastodon/features/account_gallery/index.js
  32. +1
    -3
      app/javascript/mastodon/features/account_timeline/components/header.js
  33. +2
    -3
      app/javascript/mastodon/features/account_timeline/index.js
  34. +3
    -3
      app/javascript/mastodon/features/blocks/index.js
  35. +2
    -3
      app/javascript/mastodon/features/community_timeline/components/column_settings.js
  36. +3
    -3
      app/javascript/mastodon/features/community_timeline/index.js
  37. +1
    -3
      app/javascript/mastodon/features/compose/components/autosuggest_account.js
  38. +1
    -3
      app/javascript/mastodon/features/compose/components/character_counter.js
  39. +2
    -3
      app/javascript/mastodon/features/compose/components/compose_form.js
  40. +2
    -3
      app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
  41. +1
    -3
      app/javascript/mastodon/features/compose/components/navigation_bar.js
  42. +2
    -3
      app/javascript/mastodon/features/compose/components/privacy_dropdown.js
  43. +2
    -3
      app/javascript/mastodon/features/compose/components/reply_indicator.js
  44. +2
    -3
      app/javascript/mastodon/features/compose/components/search.js
  45. +1
    -3
      app/javascript/mastodon/features/compose/components/search_results.js
  46. +1
    -3
      app/javascript/mastodon/features/compose/components/text_icon_button.js
  47. +3
    -3
      app/javascript/mastodon/features/compose/components/upload_button.js
  48. +2
    -3
      app/javascript/mastodon/features/compose/components/upload_form.js
  49. +1
    -3
      app/javascript/mastodon/features/compose/components/upload_progress.js
  50. +1
    -3
      app/javascript/mastodon/features/compose/components/warning.js
  51. +3
    -3
      app/javascript/mastodon/features/compose/index.js
  52. +3
    -3
      app/javascript/mastodon/features/favourited_statuses/index.js
  53. +2
    -3
      app/javascript/mastodon/features/favourites/index.js
  54. +2
    -3
      app/javascript/mastodon/features/follow_requests/components/account_authorize.js
  55. +3
    -3
      app/javascript/mastodon/features/follow_requests/index.js
  56. +2
    -3
      app/javascript/mastodon/features/followers/index.js
  57. +2
    -3
      app/javascript/mastodon/features/following/index.js
  58. +3
    -3
      app/javascript/mastodon/features/getting_started/index.js
  59. +2
    -3
      app/javascript/mastodon/features/hashtag_timeline/index.js
  60. +2
    -3
      app/javascript/mastodon/features/home_timeline/components/column_settings.js
  61. +3
    -3
      app/javascript/mastodon/features/home_timeline/index.js
  62. +10
    -10
      app/javascript/mastodon/features/mutes/index.js
  63. +1
    -3
      app/javascript/mastodon/features/notifications/components/clear_column_button.js
  64. +1
    -3
      app/javascript/mastodon/features/notifications/components/column_settings.js
  65. +1
    -3
      app/javascript/mastodon/features/notifications/components/notification.js
  66. +1
    -3
      app/javascript/mastodon/features/notifications/components/setting_toggle.js
  67. +3
    -3
      app/javascript/mastodon/features/notifications/index.js
  68. +3
    -3
      app/javascript/mastodon/features/public_timeline/index.js
  69. +2
    -3
      app/javascript/mastodon/features/reblogs/index.js
  70. +1
    -3
      app/javascript/mastodon/features/report/components/status_check_box.js
  71. +3
    -3
      app/javascript/mastodon/features/report/index.js
  72. +2
    -3
      app/javascript/mastodon/features/status/components/action_bar.js
  73. +1
    -3
      app/javascript/mastodon/features/status/components/card.js
  74. +1
    -3
      app/javascript/mastodon/features/status/components/detailed_status.js
  75. +3
    -3
      app/javascript/mastodon/features/status/index.js
  76. +2
    -3
      app/javascript/mastodon/features/ui/components/boost_modal.js
  77. +1
    -3
      app/javascript/mastodon/features/ui/components/column.js
  78. +1
    -3
      app/javascript/mastodon/features/ui/components/column_header.js
  79. +1
    -3
      app/javascript/mastodon/features/ui/components/columns_area.js
  80. +2
    -3
      app/javascript/mastodon/features/ui/components/confirmation_modal.js
  81. +1
    -3
      app/javascript/mastodon/features/ui/components/image_loader.js
  82. +2
    -3
      app/javascript/mastodon/features/ui/components/media_modal.js
  83. +1
    -3
      app/javascript/mastodon/features/ui/components/modal_root.js
  84. +3
    -3
      app/javascript/mastodon/features/ui/components/onboarding_modal.js
  85. +1
    -3
      app/javascript/mastodon/features/ui/components/tabs_bar.js
  86. +1
    -3
      app/javascript/mastodon/features/ui/components/upload_area.js
  87. +2
    -3
      app/javascript/mastodon/features/ui/components/video_modal.js
  88. +2
    -3
      app/javascript/mastodon/features/ui/index.js
  89. +1
    -0
      package.json
  90. +10
    -2
      yarn.lock

+ 1
- 0
.babelrc View File

@ -15,6 +15,7 @@
"plugins": [
"syntax-dynamic-import",
["transform-object-rest-spread", { "useBuiltIns": true }],
"transform-decorators-legacy",
"transform-class-properties",
[
"react-intl",

+ 2
- 3
app/javascript/mastodon/components/account.js View File

@ -16,7 +16,8 @@ const messages = defineMessages({
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
});
class Account extends ImmutablePureComponent {
@injectIntl
export default class Account extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
@ -82,5 +83,3 @@ class Account extends ImmutablePureComponent {
}
}
export default injectIntl(Account);

+ 1
- 3
app/javascript/mastodon/components/attachment_list.js View File

@ -4,7 +4,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
const filename = url => url.split('/').pop().split('#')[0].split('?')[0];
class AttachmentList extends ImmutablePureComponent {
export default class AttachmentList extends ImmutablePureComponent {
static propTypes = {
media: ImmutablePropTypes.list.isRequired,
@ -31,5 +31,3 @@ class AttachmentList extends ImmutablePureComponent {
}
}
export default AttachmentList;

+ 1
- 3
app/javascript/mastodon/components/autosuggest_textarea.js View File

@ -31,7 +31,7 @@ const textAtCursorMatchesToken = (str, caretPosition) => {
}
};
class AutosuggestTextarea extends ImmutablePureComponent {
export default class AutosuggestTextarea extends ImmutablePureComponent {
static propTypes = {
value: PropTypes.string,
@ -196,5 +196,3 @@ class AutosuggestTextarea extends ImmutablePureComponent {
}
}
export default AutosuggestTextarea;

+ 1
- 3
app/javascript/mastodon/components/avatar.js View File

@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
class Avatar extends React.PureComponent {
export default class Avatar extends React.PureComponent {
static propTypes = {
src: PropTypes.string.isRequired,
@ -66,5 +66,3 @@ class Avatar extends React.PureComponent {
}
}
export default Avatar;

+ 1
- 3
app/javascript/mastodon/components/avatar_overlay.js View File

@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
class AvatarOverlay extends React.PureComponent {
export default class AvatarOverlay extends React.PureComponent {
static propTypes = {
staticSrc: PropTypes.string.isRequired,
@ -28,5 +28,3 @@ class AvatarOverlay extends React.PureComponent {
}
}
export default AvatarOverlay;

+ 1
- 3
app/javascript/mastodon/components/button.js View File

@ -2,7 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
class Button extends React.PureComponent {
export default class Button extends React.PureComponent {
static propTypes = {
text: PropTypes.node,
@ -61,5 +61,3 @@ class Button extends React.PureComponent {
}
}
export default Button;

+ 1
- 3
app/javascript/mastodon/components/column.js View File

@ -2,7 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import scrollTop from '../scroll';
class Column extends React.PureComponent {
export default class Column extends React.PureComponent {
static propTypes = {
children: PropTypes.node,
@ -41,5 +41,3 @@ class Column extends React.PureComponent {
}
}
export default Column;

+ 1
- 3
app/javascript/mastodon/components/column_back_button.js View File

@ -2,7 +2,7 @@ import React from 'react';
import { FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
class ColumnBackButton extends React.PureComponent {
export default class ColumnBackButton extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
@ -23,5 +23,3 @@ class ColumnBackButton extends React.PureComponent {
}
}
export default ColumnBackButton;

+ 1
- 3
app/javascript/mastodon/components/column_back_button_slim.js View File

@ -2,7 +2,7 @@ import React from 'react';
import { FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
class ColumnBackButtonSlim extends React.PureComponent {
export default class ColumnBackButtonSlim extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
@ -25,5 +25,3 @@ class ColumnBackButtonSlim extends React.PureComponent {
}
}
export default ColumnBackButtonSlim;

+ 1
- 3
app/javascript/mastodon/components/column_collapsable.js View File

@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
class ColumnCollapsable extends React.PureComponent {
export default class ColumnCollapsable extends React.PureComponent {
static propTypes = {
icon: PropTypes.string.isRequired,
@ -48,5 +48,3 @@ class ColumnCollapsable extends React.PureComponent {
}
}
export default ColumnCollapsable;

+ 1
- 3
app/javascript/mastodon/components/column_header.js View File

@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import classNames from 'classnames';
import { FormattedMessage } from 'react-intl';
class ColumnHeader extends React.PureComponent {
export default class ColumnHeader extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
@ -141,5 +141,3 @@ class ColumnHeader extends React.PureComponent {
}
}
export default ColumnHeader;

+ 1
- 3
app/javascript/mastodon/components/display_name.js View File

@ -3,7 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import escapeTextContentForBrowser from 'escape-html';
import emojify from '../emoji';
class DisplayName extends React.PureComponent {
export default class DisplayName extends React.PureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
@ -21,5 +21,3 @@ class DisplayName extends React.PureComponent {
}
}
export default DisplayName;

+ 1
- 3
app/javascript/mastodon/components/dropdown_menu.js View File

@ -2,7 +2,7 @@ import React from 'react';
import Dropdown, { DropdownTrigger, DropdownContent } from 'react-simple-dropdown';
import PropTypes from 'prop-types';
class DropdownMenu extends React.PureComponent {
export default class DropdownMenu extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
@ -92,5 +92,3 @@ class DropdownMenu extends React.PureComponent {
}
}
export default DropdownMenu;

+ 1
- 3
app/javascript/mastodon/components/extended_video_player.js View File

@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
class ExtendedVideoPlayer extends React.PureComponent {
export default class ExtendedVideoPlayer extends React.PureComponent {
static propTypes = {
src: PropTypes.string.isRequired,
@ -44,5 +44,3 @@ class ExtendedVideoPlayer extends React.PureComponent {
}
}
export default ExtendedVideoPlayer;

+ 1
- 3
app/javascript/mastodon/components/icon_button.js View File

@ -3,7 +3,7 @@ import Motion from 'react-motion/lib/Motion';
import spring from 'react-motion/lib/spring';
import PropTypes from 'prop-types';
class IconButton extends React.PureComponent {
export default class IconButton extends React.PureComponent {
static propTypes = {
className: PropTypes.string,
@ -86,5 +86,3 @@ class IconButton extends React.PureComponent {
}
}
export default IconButton;

+ 1
- 3
app/javascript/mastodon/components/load_more.js View File

@ -2,7 +2,7 @@ import React from 'react';
import { FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
class LoadMore extends React.PureComponent {
export default class LoadMore extends React.PureComponent {
static propTypes = {
onClick: PropTypes.func,
@ -17,5 +17,3 @@ class LoadMore extends React.PureComponent {
}
}
export default LoadMore;

+ 2
- 3
app/javascript/mastodon/components/media_gallery.js View File

@ -123,7 +123,8 @@ class Item extends React.PureComponent {
}
class MediaGallery extends React.PureComponent {
@injectIntl
export default class MediaGallery extends React.PureComponent {
static propTypes = {
sensitive: PropTypes.bool,
@ -183,5 +184,3 @@ class MediaGallery extends React.PureComponent {
}
}
export default injectIntl(MediaGallery);

+ 1
- 3
app/javascript/mastodon/components/permalink.js View File

@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
class Permalink extends React.PureComponent {
export default class Permalink extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
@ -32,5 +32,3 @@ class Permalink extends React.PureComponent {
}
}
export default Permalink;

+ 2
- 3
app/javascript/mastodon/components/relative_timestamp.js View File

@ -11,7 +11,8 @@ const dateFormatOptions = {
minute: '2-digit',
};
class RelativeTimestamp extends React.Component {
@injectIntl
export default class RelativeTimestamp extends React.Component {
static propTypes = {
intl: PropTypes.object.isRequired,
@ -37,5 +38,3 @@ class RelativeTimestamp extends React.Component {
}
}
export default injectIntl(RelativeTimestamp);

+ 1
- 3
app/javascript/mastodon/components/setting_text.js View File

@ -2,7 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
class SettingText extends React.PureComponent {
export default class SettingText extends React.PureComponent {
static propTypes = {
settings: ImmutablePropTypes.map.isRequired,
@ -29,5 +29,3 @@ class SettingText extends React.PureComponent {
}
}
export default SettingText;

+ 1
- 3
app/javascript/mastodon/components/status.js View File

@ -15,7 +15,7 @@ import escapeTextContentForBrowser from 'escape-html';
import ImmutablePureComponent from 'react-immutable-pure-component';
import scheduleIdleTask from '../features/ui/util/schedule_idle_task';
class Status extends ImmutablePureComponent {
export default class Status extends ImmutablePureComponent {
static contextTypes = {
router: PropTypes.object,
@ -233,5 +233,3 @@ class Status extends ImmutablePureComponent {
}
}
export default Status;

+ 2
- 3
app/javascript/mastodon/components/status_action_bar.js View File

@ -22,7 +22,8 @@ const messages = defineMessages({
unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' },
});
class StatusActionBar extends ImmutablePureComponent {
@injectIntl
export default class StatusActionBar extends ImmutablePureComponent {
static contextTypes = {
router: PropTypes.object,
@ -149,5 +150,3 @@ class StatusActionBar extends ImmutablePureComponent {
}
}
export default injectIntl(StatusActionBar);

+ 1
- 3
app/javascript/mastodon/components/status_content.js View File

@ -7,7 +7,7 @@ import { isRtl } from '../rtl';
import { FormattedMessage } from 'react-intl';
import Permalink from './permalink';
class StatusContent extends React.PureComponent {
export default class StatusContent extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
@ -171,5 +171,3 @@ class StatusContent extends React.PureComponent {
}
}
export default StatusContent;

+ 1
- 3
app/javascript/mastodon/components/status_list.js View File

@ -8,7 +8,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import IntersectionObserverWrapper from '../features/ui/util/intersection_observer_wrapper';
import { debounce } from 'lodash';
class StatusList extends ImmutablePureComponent {
export default class StatusList extends ImmutablePureComponent {
static propTypes = {
scrollKey: PropTypes.string.isRequired,
@ -142,5 +142,3 @@ class StatusList extends ImmutablePureComponent {
}
}
export default StatusList;

+ 2
- 3
app/javascript/mastodon/components/video_player.js View File

@ -11,7 +11,8 @@ const messages = defineMessages({
expand_video: { id: 'video_player.expand', defaultMessage: 'Expand video' },
});
class VideoPlayer extends React.PureComponent {
@injectIntl
export default class VideoPlayer extends React.PureComponent {
static propTypes = {
media: ImmutablePropTypes.map.isRequired,
@ -193,5 +194,3 @@ class VideoPlayer extends React.PureComponent {
}
}
export default injectIntl(VideoPlayer);

+ 5
- 7
app/javascript/mastodon/containers/mastodon.js View File

@ -26,7 +26,11 @@ const store = configureStore();
const initialState = JSON.parse(document.getElementById('initial-state').textContent);
store.dispatch(hydrateStore(initialState));
class Mastodon extends React.PureComponent {
export default class Mastodon extends React.PureComponent {
static propTypes = {
locale: PropTypes.string.isRequired,
};
componentDidMount() {
const { locale } = this.props;
@ -117,9 +121,3 @@ class Mastodon extends React.PureComponent {
}
}
Mastodon.propTypes = {
locale: PropTypes.string.isRequired,
};
export default Mastodon;

+ 2
- 3
app/javascript/mastodon/features/account/components/action_bar.js View File

@ -21,7 +21,8 @@ const messages = defineMessages({
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },
});
class ActionBar extends React.PureComponent {
@injectIntl
export default class ActionBar extends React.PureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
@ -105,5 +106,3 @@ class ActionBar extends React.PureComponent {
}
}
export default injectIntl(ActionBar);

+ 3
- 3
app/javascript/mastodon/features/account/components/header.js View File

@ -70,7 +70,9 @@ class Avatar extends ImmutablePureComponent {
}
class Header extends ImmutablePureComponent {
@connect(makeMapStateToProps)
@injectIntl
export default class Header extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map,
@ -140,5 +142,3 @@ class Header extends ImmutablePureComponent {
}
}
export default connect(makeMapStateToProps)(injectIntl(Header));

+ 1
- 3
app/javascript/mastodon/features/account_gallery/components/media_item.js View File

@ -3,7 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Permalink from '../../../components/permalink';
class MediaItem extends ImmutablePureComponent {
export default class MediaItem extends ImmutablePureComponent {
static propTypes = {
media: ImmutablePropTypes.map.isRequired,
@ -37,5 +37,3 @@ class MediaItem extends ImmutablePureComponent {
}
}
export default MediaItem;

+ 2
- 3
app/javascript/mastodon/features/account_gallery/index.js View File

@ -22,7 +22,8 @@ const mapStateToProps = (state, props) => ({
autoPlayGif: state.getIn(['meta', 'auto_play_gif']),
});
class AccountGallery extends ImmutablePureComponent {
@connect(mapStateToProps)
export default class AccountGallery extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -111,5 +112,3 @@ class AccountGallery extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(AccountGallery);

+ 1
- 3
app/javascript/mastodon/features/account_timeline/components/header.js View File

@ -6,7 +6,7 @@ import ActionBar from '../../account/components/action_bar';
import MissingIndicator from '../../../components/missing_indicator';
import ImmutablePureComponent from 'react-immutable-pure-component';
class Header extends ImmutablePureComponent {
export default class Header extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map,
@ -91,5 +91,3 @@ class Header extends ImmutablePureComponent {
}
}
export default Header;

+ 2
- 3
app/javascript/mastodon/features/account_timeline/index.js View File

@ -19,7 +19,8 @@ const mapStateToProps = (state, props) => ({
me: state.getIn(['meta', 'me']),
});
class AccountTimeline extends ImmutablePureComponent {
@connect(mapStateToProps)
export default class AccountTimeline extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -77,5 +78,3 @@ class AccountTimeline extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(AccountTimeline);

+ 3
- 3
app/javascript/mastodon/features/blocks/index.js View File

@ -19,7 +19,9 @@ const mapStateToProps = state => ({
accountIds: state.getIn(['user_lists', 'blocks', 'items']),
});
class Blocks extends ImmutablePureComponent {
@connect(mapStateToProps)
@injectIntl
export default class Blocks extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -66,5 +68,3 @@ class Blocks extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(Blocks));

+ 2
- 3
app/javascript/mastodon/features/community_timeline/components/column_settings.js View File

@ -9,7 +9,8 @@ const messages = defineMessages({
settings: { id: 'home.settings', defaultMessage: 'Column settings' },
});
class ColumnSettings extends React.PureComponent {
@injectIntl
export default class ColumnSettings extends React.PureComponent {
static propTypes = {
settings: ImmutablePropTypes.map.isRequired,
@ -32,5 +33,3 @@ class ColumnSettings extends React.PureComponent {
}
}
export default injectIntl(ColumnSettings);

+ 3
- 3
app/javascript/mastodon/features/community_timeline/index.js View File

@ -27,7 +27,9 @@ const mapStateToProps = state => ({
accessToken: state.getIn(['meta', 'access_token']),
});
class CommunityTimeline extends React.PureComponent {
@connect(mapStateToProps)
@injectIntl
export default class CommunityTimeline extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
@ -141,5 +143,3 @@ class CommunityTimeline extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(CommunityTimeline));

+ 1
- 3
app/javascript/mastodon/features/compose/components/autosuggest_account.js View File

@ -4,7 +4,7 @@ import DisplayName from '../../../components/display_name';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
class AutosuggestAccount extends ImmutablePureComponent {
export default class AutosuggestAccount extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
@ -22,5 +22,3 @@ class AutosuggestAccount extends ImmutablePureComponent {
}
}
export default AutosuggestAccount;

+ 1
- 3
app/javascript/mastodon/features/compose/components/character_counter.js View File

@ -2,7 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import { length } from 'stringz';
class CharacterCounter extends React.PureComponent {
export default class CharacterCounter extends React.PureComponent {
static propTypes = {
text: PropTypes.string.isRequired,
@ -23,5 +23,3 @@ class CharacterCounter extends React.PureComponent {
}
}
export default CharacterCounter;

+ 2
- 3
app/javascript/mastodon/features/compose/components/compose_form.js View File

@ -25,7 +25,8 @@ const messages = defineMessages({
publishLoud: { id: 'compose_form.publish_loud', defaultMessage: '{publish}!' },
});
class ComposeForm extends ImmutablePureComponent {
@injectIntl
export default class ComposeForm extends ImmutablePureComponent {
static propTypes = {
intl: PropTypes.object.isRequired,
@ -199,5 +200,3 @@ class ComposeForm extends ImmutablePureComponent {
}
}
export default injectIntl(ComposeForm);

+ 2
- 3
app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js View File

@ -24,7 +24,8 @@ const settings = {
let EmojiPicker; // load asynchronously
class EmojiPickerDropdown extends React.PureComponent {
@injectIntl
export default class EmojiPickerDropdown extends React.PureComponent {
static propTypes = {
intl: PropTypes.object.isRequired,
@ -123,5 +124,3 @@ class EmojiPickerDropdown extends React.PureComponent {
}
}
export default injectIntl(EmojiPickerDropdown);

+ 1
- 3
app/javascript/mastodon/features/compose/components/navigation_bar.js View File

@ -5,7 +5,7 @@ import Permalink from '../../../components/permalink';
import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
class NavigationBar extends ImmutablePureComponent {
export default class NavigationBar extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
@ -30,5 +30,3 @@ class NavigationBar extends ImmutablePureComponent {
}
}
export default NavigationBar;

+ 2
- 3
app/javascript/mastodon/features/compose/components/privacy_dropdown.js View File

@ -20,7 +20,8 @@ const iconStyle = {
lineHeight: '27px',
};
class PrivacyDropdown extends React.PureComponent {
@injectIntl
export default class PrivacyDropdown extends React.PureComponent {
static propTypes = {
value: PropTypes.string.isRequired,
@ -95,5 +96,3 @@ class PrivacyDropdown extends React.PureComponent {
}
}
export default injectIntl(PrivacyDropdown);

+ 2
- 3
app/javascript/mastodon/features/compose/components/reply_indicator.js View File

@ -12,7 +12,8 @@ const messages = defineMessages({
cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' },
});
class ReplyIndicator extends ImmutablePureComponent {
@injectIntl
export default class ReplyIndicator extends ImmutablePureComponent {
static contextTypes = {
router: PropTypes.object,
@ -61,5 +62,3 @@ class ReplyIndicator extends ImmutablePureComponent {
}
}
export default injectIntl(ReplyIndicator);

+ 2
- 3
app/javascript/mastodon/features/compose/components/search.js View File

@ -6,7 +6,8 @@ const messages = defineMessages({
placeholder: { id: 'search.placeholder', defaultMessage: 'Search' },
});
class Search extends React.PureComponent {
@injectIntl
export default class Search extends React.PureComponent {
static propTypes = {
value: PropTypes.string.isRequired,
@ -70,5 +71,3 @@ class Search extends React.PureComponent {
}
}
export default injectIntl(Search);

+ 1
- 3
app/javascript/mastodon/features/compose/components/search_results.js View File

@ -6,7 +6,7 @@ import StatusContainer from '../../../containers/status_container';
import Link from 'react-router-dom/Link';
import ImmutablePureComponent from 'react-immutable-pure-component';
class SearchResults extends ImmutablePureComponent {
export default class SearchResults extends ImmutablePureComponent {
static propTypes = {
results: ImmutablePropTypes.map.isRequired,
@ -63,5 +63,3 @@ class SearchResults extends ImmutablePureComponent {
}
}
export default SearchResults;

+ 1
- 3
app/javascript/mastodon/features/compose/components/text_icon_button.js View File

@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
class TextIconButton extends React.PureComponent {
export default class TextIconButton extends React.PureComponent {
static propTypes = {
label: PropTypes.string.isRequired,
@ -27,5 +27,3 @@ class TextIconButton extends React.PureComponent {
}
}
export default TextIconButton;

+ 3
- 3
app/javascript/mastodon/features/compose/components/upload_button.js View File

@ -23,7 +23,9 @@ const iconStyle = {
lineHeight: '27px',
};
class UploadButton extends ImmutablePureComponent {
@connect(makeMapStateToProps)
@injectIntl
export default class UploadButton extends ImmutablePureComponent {
static propTypes = {
disabled: PropTypes.bool,
@ -70,5 +72,3 @@ class UploadButton extends ImmutablePureComponent {
}
}
export default connect(makeMapStateToProps)(injectIntl(UploadButton));

+ 2
- 3
app/javascript/mastodon/features/compose/components/upload_form.js View File

@ -11,7 +11,8 @@ const messages = defineMessages({
undo: { id: 'upload_form.undo', defaultMessage: 'Undo' },
});
class UploadForm extends React.PureComponent {
@injectIntl
export default class UploadForm extends React.PureComponent {
static propTypes = {
media: ImmutablePropTypes.list.isRequired,
@ -48,5 +49,3 @@ class UploadForm extends React.PureComponent {
}
}
export default injectIntl(UploadForm);

+ 1
- 3
app/javascript/mastodon/features/compose/components/upload_progress.js View File

@ -4,7 +4,7 @@ import Motion from 'react-motion/lib/Motion';
import spring from 'react-motion/lib/spring';
import { FormattedMessage } from 'react-intl';
class UploadProgress extends React.PureComponent {
export default class UploadProgress extends React.PureComponent {
static propTypes = {
active: PropTypes.bool,
@ -40,5 +40,3 @@ class UploadProgress extends React.PureComponent {
}
}
export default UploadProgress;

+ 1
- 3
app/javascript/mastodon/features/compose/components/warning.js View File

@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
class Warning extends React.PureComponent {
export default class Warning extends React.PureComponent {
static propTypes = {
message: PropTypes.node.isRequired,
@ -18,5 +18,3 @@ class Warning extends React.PureComponent {
}
}
export default Warning;

+ 3
- 3
app/javascript/mastodon/features/compose/index.js View File

@ -23,7 +23,9 @@ const mapStateToProps = state => ({
showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']),
});
class Compose extends React.PureComponent {
@connect(mapStateToProps)
@injectIntl
export default class Compose extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
@ -82,5 +84,3 @@ class Compose extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(Compose));

+ 3
- 3
app/javascript/mastodon/features/favourited_statuses/index.js View File

@ -17,7 +17,9 @@ const mapStateToProps = state => ({
loaded: state.getIn(['status_lists', 'favourites', 'loaded']),
});
class Favourites extends ImmutablePureComponent {
@connect(mapStateToProps)
@injectIntl
export default class Favourites extends ImmutablePureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
@ -53,5 +55,3 @@ class Favourites extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(Favourites));

+ 2
- 3
app/javascript/mastodon/features/favourites/index.js View File

@ -14,7 +14,8 @@ const mapStateToProps = (state, props) => ({
accountIds: state.getIn(['user_lists', 'favourited_by', Number(props.params.statusId)]),
});
class Favourites extends ImmutablePureComponent {
@connect(mapStateToProps)
export default class Favourites extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -57,5 +58,3 @@ class Favourites extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(Favourites);

+ 2
- 3
app/javascript/mastodon/features/follow_requests/components/account_authorize.js View File

@ -14,7 +14,8 @@ const messages = defineMessages({
reject: { id: 'follow_request.reject', defaultMessage: 'Reject' },
});
class AccountAuthorize extends ImmutablePureComponent {
@injectIntl
export default class AccountAuthorize extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
@ -47,5 +48,3 @@ class AccountAuthorize extends ImmutablePureComponent {
}
}
export default injectIntl(AccountAuthorize);

+ 3
- 3
app/javascript/mastodon/features/follow_requests/index.js View File

@ -19,7 +19,9 @@ const mapStateToProps = state => ({
accountIds: state.getIn(['user_lists', 'follow_requests', 'items']),
});
class FollowRequests extends ImmutablePureComponent {
@connect(mapStateToProps)
@injectIntl
export default class FollowRequests extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -67,5 +69,3 @@ class FollowRequests extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(FollowRequests));

+ 2
- 3
app/javascript/mastodon/features/followers/index.js View File

@ -21,7 +21,8 @@ const mapStateToProps = (state, props) => ({
hasMore: !!state.getIn(['user_lists', 'followers', Number(props.params.accountId), 'next']),
});
class Followers extends ImmutablePureComponent {
@connect(mapStateToProps)
export default class Followers extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -90,5 +91,3 @@ class Followers extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(Followers);

+ 2
- 3
app/javascript/mastodon/features/following/index.js View File

@ -21,7 +21,8 @@ const mapStateToProps = (state, props) => ({
hasMore: !!state.getIn(['user_lists', 'following', Number(props.params.accountId), 'next']),
});
class Following extends ImmutablePureComponent {
@connect(mapStateToProps)
export default class Following extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -90,5 +91,3 @@ class Following extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(Following);

+ 3
- 3
app/javascript/mastodon/features/getting_started/index.js View File

@ -30,7 +30,9 @@ const mapStateToProps = state => ({
columns: state.getIn(['settings', 'columns']),
});
class GettingStarted extends ImmutablePureComponent {
@connect(mapStateToProps)
@injectIntl
export default class GettingStarted extends ImmutablePureComponent {
static propTypes = {
intl: PropTypes.object.isRequired,
@ -105,5 +107,3 @@ class GettingStarted extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(GettingStarted));

+ 2
- 3
app/javascript/mastodon/features/hashtag_timeline/index.js View File

@ -20,7 +20,8 @@ const mapStateToProps = state => ({
accessToken: state.getIn(['meta', 'access_token']),
});
class HashtagTimeline extends React.PureComponent {
@connect(mapStateToProps)
export default class HashtagTimeline extends React.PureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -136,5 +137,3 @@ class HashtagTimeline extends React.PureComponent {
}
}
export default connect(mapStateToProps)(HashtagTimeline);

+ 2
- 3
app/javascript/mastodon/features/home_timeline/components/column_settings.js View File

@ -10,7 +10,8 @@ const messages = defineMessages({
settings: { id: 'home.settings', defaultMessage: 'Column settings' },
});
class ColumnSettings extends React.PureComponent {
@injectIntl
export default class ColumnSettings extends React.PureComponent {
static propTypes = {
settings: ImmutablePropTypes.map.isRequired,
@ -43,5 +44,3 @@ class ColumnSettings extends React.PureComponent {
}
}
export default injectIntl(ColumnSettings);

+ 3
- 3
app/javascript/mastodon/features/home_timeline/index.js View File

@ -19,7 +19,9 @@ const mapStateToProps = state => ({
hasFollows: state.getIn(['accounts_counters', state.getIn(['meta', 'me']), 'following_count']) > 0,
});
class HomeTimeline extends React.PureComponent {
@connect(mapStateToProps)
@injectIntl
export default class HomeTimeline extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
@ -96,5 +98,3 @@ class HomeTimeline extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(HomeTimeline));

+ 10
- 10
app/javascript/mastodon/features/mutes/index.js View File

@ -19,7 +19,16 @@ const mapStateToProps = state => ({
accountIds: state.getIn(['user_lists', 'mutes', 'items']),
});
class Mutes extends ImmutablePureComponent {
@connect(mapStateToProps)
@injectIntl
export default class Mutes extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
accountIds: ImmutablePropTypes.list,
intl: PropTypes.object.isRequired,
};
componentWillMount () {
this.props.dispatch(fetchMutes());
@ -59,12 +68,3 @@ class Mutes extends ImmutablePureComponent {
}
}
Mutes.propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
accountIds: ImmutablePropTypes.list,
intl: PropTypes.object.isRequired,
};
export default connect(mapStateToProps)(injectIntl(Mutes));

+ 1
- 3
app/javascript/mastodon/features/notifications/components/clear_column_button.js View File

@ -2,7 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
class ClearColumnButton extends React.Component {
export default class ClearColumnButton extends React.Component {
static propTypes = {
onClick: PropTypes.func.isRequired,
@ -15,5 +15,3 @@ class ClearColumnButton extends React.Component {
}
}
export default ClearColumnButton;

+ 1
- 3
app/javascript/mastodon/features/notifications/components/column_settings.js View File

@ -5,7 +5,7 @@ import { FormattedMessage } from 'react-intl';
import ClearColumnButton from './clear_column_button';
import SettingToggle from './setting_toggle';
class ColumnSettings extends React.PureComponent {
export default class ColumnSettings extends React.PureComponent {
static propTypes = {
settings: ImmutablePropTypes.map.isRequired,
@ -63,5 +63,3 @@ class ColumnSettings extends React.PureComponent {
}
}
export default ColumnSettings;

+ 1
- 3
app/javascript/mastodon/features/notifications/components/notification.js View File

@ -8,7 +8,7 @@ import emojify from '../../../emoji';
import escapeTextContentForBrowser from 'escape-html';
import ImmutablePureComponent from 'react-immutable-pure-component';
class Notification extends ImmutablePureComponent {
export default class Notification extends ImmutablePureComponent {
static propTypes = {
notification: ImmutablePropTypes.map.isRequired,
@ -86,5 +86,3 @@ class Notification extends ImmutablePureComponent {
}
}
export default Notification;

+ 1
- 3
app/javascript/mastodon/features/notifications/components/setting_toggle.js View File

@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import Toggle from 'react-toggle';
class SettingToggle extends React.PureComponent {
export default class SettingToggle extends React.PureComponent {
static propTypes = {
prefix: PropTypes.string,
@ -30,5 +30,3 @@ class SettingToggle extends React.PureComponent {
}
}
export default SettingToggle;

+ 3
- 3
app/javascript/mastodon/features/notifications/index.js View File

@ -30,7 +30,9 @@ const mapStateToProps = state => ({
hasMore: !!state.getIn(['notifications', 'next']),
});
class Notifications extends React.PureComponent {
@connect(mapStateToProps)
@injectIntl
export default class Notifications extends React.PureComponent {
static propTypes = {
columnId: PropTypes.string,
@ -173,5 +175,3 @@ class Notifications extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(Notifications));

+ 3
- 3
app/javascript/mastodon/features/public_timeline/index.js View File

@ -27,7 +27,9 @@ const mapStateToProps = state => ({
accessToken: state.getIn(['meta', 'access_token']),
});
class PublicTimeline extends React.PureComponent {
@connect(mapStateToProps)
@injectIntl
export default class PublicTimeline extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
@ -141,5 +143,3 @@ class PublicTimeline extends React.PureComponent {
}
}
export default connect(mapStateToProps)(injectIntl(PublicTimeline));

+ 2
- 3
app/javascript/mastodon/features/reblogs/index.js View File

@ -14,7 +14,8 @@ const mapStateToProps = (state, props) => ({
accountIds: state.getIn(['user_lists', 'reblogged_by', Number(props.params.statusId)]),
});
class Reblogs extends ImmutablePureComponent {
@connect(mapStateToProps)
export default class Reblogs extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
@ -57,5 +58,3 @@ class Reblogs extends ImmutablePureComponent {
}
}
export default connect(mapStateToProps)(Reblogs);

+ 1
- 3
app/javascript/mastodon/features/report/components/status_check_box.js View File

@ -4,7 +4,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import emojify from '../../../emoji';
import Toggle from 'react-toggle';
class StatusCheckBox extends React.PureComponent {
export default class StatusCheckBox extends React.PureComponent {
static propTypes = {
status: ImmutablePropTypes.map.isRequired,
@ -36,5 +36,3 @@ class StatusCheckBox extends React.PureComponent {
}
}
export default StatusCheckBox;

+ 3
- 3
app/javascript/mastodon/features/report/index.js View File

@ -35,7 +35,9 @@ const makeMapStateToProps = () => {
return mapStateToProps;
};
class Report extends React.PureComponent {
@connect(makeMapStateToProps)
@injectIntl
export default class Report extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
@ -121,5 +123,3 @@ class Report extends React.PureComponent {
}
}
export default connect(makeMapStateToProps)(injectIntl(Report));

+ 2
- 3
app/javascript/mastodon/features/status/components/action_bar.js View File

@ -15,7 +15,8 @@ const messages = defineMessages({
report: { id: 'status.report', defaultMessage: 'Report @{name}' },
});
class ActionBar extends React.PureComponent {
@injectIntl
export default class ActionBar extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
@ -91,5 +92,3 @@ class ActionBar extends React.PureComponent {
}
}
export default injectIntl(ActionBar);

+ 1
- 3
app/javascript/mastodon/features/status/components/card.js View File

@ -17,7 +17,7 @@ const getHostname = url => {
return parser.hostname;
};
class Card extends React.PureComponent {
export default class Card extends React.PureComponent {
static propTypes = {
card: ImmutablePropTypes.map,
@ -97,5 +97,3 @@ class Card extends React.PureComponent {
}
}
export default Card;

+ 1
- 3
app/javascript/mastodon/features/status/components/detailed_status.js View File

@ -12,7 +12,7 @@ import { FormattedDate, FormattedNumber } from 'react-intl';
import CardContainer from '../containers/card_container';