~cytrogen/masto-fe

fb5bf5cbf8dd83cffabc0de9637513e0d077697d — alfe 2 years ago 50a8f5b
Rewrite `<LoadMore />` as FC and TS  (#25259)

D app/javascript/mastodon/components/load_more.jsx => app/javascript/mastodon/components/load_more.jsx +0 -28
@@ 1,28 0,0 @@
import PropTypes from 'prop-types';
import { PureComponent } from 'react';

import { FormattedMessage } from 'react-intl';

export default class LoadMore extends PureComponent {

  static propTypes = {
    onClick: PropTypes.func,
    disabled: PropTypes.bool,
    visible: PropTypes.bool,
  };

  static defaultProps = {
    visible: true,
  };

  render() {
    const { disabled, visible } = this.props;

    return (
      <button type='button' className='load-more' disabled={disabled || !visible} style={{ visibility: visible ? 'visible' : 'hidden' }} onClick={this.props.onClick}>
        <FormattedMessage id='status.load_more' defaultMessage='Load more' />
      </button>
    );
  }

}

A app/javascript/mastodon/components/load_more.tsx => app/javascript/mastodon/components/load_more.tsx +24 -0
@@ 0,0 1,24 @@
import { FormattedMessage } from 'react-intl';

interface Props {
  onClick: (event: React.MouseEvent) => void;
  disabled?: boolean;
  visible?: boolean;
}
export const LoadMore: React.FC<Props> = ({
  onClick,
  disabled,
  visible = true,
}) => {
  return (
    <button
      type='button'
      className='load-more'
      disabled={disabled || !visible}
      style={{ visibility: visible ? 'visible' : 'hidden' }}
      onClick={onClick}
    >
      <FormattedMessage id='status.load_more' defaultMessage='Load more' />
    </button>
  );
};

M app/javascript/mastodon/components/scrollable_list.jsx => app/javascript/mastodon/components/scrollable_list.jsx +1 -1
@@ 15,7 15,7 @@ import IntersectionObserverArticleContainer from '../containers/intersection_obs
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../features/ui/util/fullscreen';
import IntersectionObserverWrapper from '../features/ui/util/intersection_observer_wrapper';

import LoadMore from './load_more';
import { LoadMore } from './load_more';
import LoadPending from './load_pending';
import LoadingIndicator from './loading_indicator';


M app/javascript/mastodon/features/account_gallery/index.jsx => app/javascript/mastodon/features/account_gallery/index.jsx +1 -1
@@ 9,7 9,7 @@ import { connect } from 'react-redux';
import { lookupAccount, fetchAccount } from 'mastodon/actions/accounts';
import { openModal } from 'mastodon/actions/modal';
import ColumnBackButton from 'mastodon/components/column_back_button';
import LoadMore from 'mastodon/components/load_more';
import { LoadMore } from 'mastodon/components/load_more';
import LoadingIndicator from 'mastodon/components/loading_indicator';
import ScrollContainer from 'mastodon/containers/scroll_container';
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';

M app/javascript/mastodon/features/compose/components/search_results.jsx => app/javascript/mastodon/features/compose/components/search_results.jsx +1 -1
@@ 6,7 6,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';

import { Icon }  from 'mastodon/components/icon';
import LoadMore from 'mastodon/components/load_more';
import { LoadMore } from 'mastodon/components/load_more';

import { ImmutableHashtag as Hashtag } from '../../../components/hashtag';
import AccountContainer from '../../../containers/account_container';

M app/javascript/mastodon/features/directory/index.jsx => app/javascript/mastodon/features/directory/index.jsx +1 -1
@@ 13,7 13,7 @@ import { addColumn, removeColumn, moveColumn, changeColumnParams } from 'mastodo
import { fetchDirectory, expandDirectory } from 'mastodon/actions/directory';
import Column from 'mastodon/components/column';
import ColumnHeader from 'mastodon/components/column_header';
import LoadMore from 'mastodon/components/load_more';
import { LoadMore } from 'mastodon/components/load_more';
import LoadingIndicator from 'mastodon/components/loading_indicator';
import { RadioButton } from 'mastodon/components/radio_button';
import ScrollContainer from 'mastodon/containers/scroll_container';

M app/javascript/mastodon/features/explore/results.jsx => app/javascript/mastodon/features/explore/results.jsx +1 -1
@@ 11,7 11,7 @@ import { connect } from 'react-redux';

import { expandSearch } from 'mastodon/actions/search';
import { ImmutableHashtag as Hashtag } from 'mastodon/components/hashtag';
import LoadMore from 'mastodon/components/load_more';
import { LoadMore } from 'mastodon/components/load_more';
import LoadingIndicator from 'mastodon/components/loading_indicator';
import Account from 'mastodon/containers/account_container';
import Status from 'mastodon/containers/status_container';