diff --git a/app/javascript/mastodon/components/load_more.jsx b/app/javascript/mastodon/components/load_more.jsx
deleted file mode 100644
index 6b7ecdea0ac01a79b7b2769dfc65cf488d41a19f..0000000000000000000000000000000000000000
--- a/app/javascript/mastodon/components/load_more.jsx
+++ /dev/null
@@ -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>
-    );
-  }
-
-}
diff --git a/app/javascript/mastodon/components/load_more.tsx b/app/javascript/mastodon/components/load_more.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..8b5746ad30b34ae9d2c3523ce9ae7b1263145738
--- /dev/null
+++ b/app/javascript/mastodon/components/load_more.tsx
@@ -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>
+  );
+};
diff --git a/app/javascript/mastodon/components/scrollable_list.jsx b/app/javascript/mastodon/components/scrollable_list.jsx
index 9a0c4c8a7e96272bdb4e18bd0dfda9dbfe7efbad..53a84ecb53f80442b1850151388641fc30509098 100644
--- a/app/javascript/mastodon/components/scrollable_list.jsx
+++ b/app/javascript/mastodon/components/scrollable_list.jsx
@@ -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';
 
diff --git a/app/javascript/mastodon/features/account_gallery/index.jsx b/app/javascript/mastodon/features/account_gallery/index.jsx
index 27de4740cade48d9d23e7ab1ff59d57433a882b4..653a258667370b2a81033c16301a093e45a68896 100644
--- a/app/javascript/mastodon/features/account_gallery/index.jsx
+++ b/app/javascript/mastodon/features/account_gallery/index.jsx
@@ -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';
diff --git a/app/javascript/mastodon/features/compose/components/search_results.jsx b/app/javascript/mastodon/features/compose/components/search_results.jsx
index b329cae7913b3d7fe5b6c3501683543c503aa52c..b11ac478a47295e2e9ba7dfdfbbb22f970fd03e9 100644
--- a/app/javascript/mastodon/features/compose/components/search_results.jsx
+++ b/app/javascript/mastodon/features/compose/components/search_results.jsx
@@ -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';
diff --git a/app/javascript/mastodon/features/directory/index.jsx b/app/javascript/mastodon/features/directory/index.jsx
index d4854f18694664f1b014b4ac02dba4d94d17f462..635b6f4113beb0489c496f3305aa156363961e02 100644
--- a/app/javascript/mastodon/features/directory/index.jsx
+++ b/app/javascript/mastodon/features/directory/index.jsx
@@ -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';
diff --git a/app/javascript/mastodon/features/explore/results.jsx b/app/javascript/mastodon/features/explore/results.jsx
index 6b053a9dc1e5b47362277f5a97992ebf897b0969..dc1f720220fecfa92aae33eb5488fb90605782fc 100644
--- a/app/javascript/mastodon/features/explore/results.jsx
+++ b/app/javascript/mastodon/features/explore/results.jsx
@@ -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';