diff --git a/app/soapbox/features/ui/util/react_router_helpers.tsx b/app/soapbox/features/ui/util/react_router_helpers.tsx
index b7dbdb192..992a60e2b 100644
--- a/app/soapbox/features/ui/util/react_router_helpers.tsx
+++ b/app/soapbox/features/ui/util/react_router_helpers.tsx
@@ -13,6 +13,7 @@ import BundleContainer from '../containers/bundle_container';
type PageProps = {
params?: MatchType['params'],
layout?: any,
+ children: React.ReactNode,
};
interface IWrappedRoute extends RouteProps {
diff --git a/app/soapbox/pages/status_page.js b/app/soapbox/pages/status_page.js
deleted file mode 100644
index e4ff9955e..000000000
--- a/app/soapbox/pages/status_page.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import React from 'react';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { connect } from 'react-redux';
-
-import LinkFooter from 'soapbox/features/ui/components/link_footer';
-import {
- WhoToFollowPanel,
- TrendsPanel,
- SignUpPanel,
- CtaBanner,
-} from 'soapbox/features/ui/util/async-components';
-// import GroupSidebarPanel from '../features/groups/sidebar_panel';
-import { getFeatures } from 'soapbox/utils/features';
-
-import { Layout } from '../components/ui';
-import BundleContainer from '../features/ui/containers/bundle_container';
-
-const mapStateToProps = state => {
- const me = state.get('me');
- const features = getFeatures(state.get('instance'));
-
- return {
- me,
- showTrendsPanel: features.trends,
- showWhoToFollowPanel: features.suggestions,
- };
-};
-
-export default @connect(mapStateToProps)
-class StatusPage extends ImmutablePureComponent {
-
- render() {
- const { me, children, showTrendsPanel, showWhoToFollowPanel } = this.props;
-
- return (
- <>
-
- {children}
-
- {!me && (
-
- {Component => }
-
- )}
-
-
-
- {!me && (
-
- {Component => }
-
- )}
- {showTrendsPanel && (
-
- {Component => }
-
- )}
- {showWhoToFollowPanel && (
-
- {Component => }
-
- )}
-
-
- >
- );
- }
-
-}
diff --git a/app/soapbox/pages/status_page.tsx b/app/soapbox/pages/status_page.tsx
new file mode 100644
index 000000000..2c35947ad
--- /dev/null
+++ b/app/soapbox/pages/status_page.tsx
@@ -0,0 +1,57 @@
+import React from 'react';
+
+import LinkFooter from 'soapbox/features/ui/components/link_footer';
+import {
+ WhoToFollowPanel,
+ TrendsPanel,
+ SignUpPanel,
+ CtaBanner,
+} from 'soapbox/features/ui/util/async-components';
+import { useAppSelector, useFeatures } from 'soapbox/hooks';
+
+import { Layout } from '../components/ui';
+import BundleContainer from '../features/ui/containers/bundle_container';
+
+interface IStatusPage {
+ children: React.ReactNode,
+}
+
+const StatusPage: React.FC = ({ children }) => {
+ const me = useAppSelector(state => state.me);
+ const features = useFeatures();
+
+ return (
+ <>
+
+ {children}
+
+ {!me && (
+
+ {Component => }
+
+ )}
+
+
+
+ {!me && (
+
+ {Component => }
+
+ )}
+ {features.trends && (
+
+ {Component => }
+
+ )}
+ {features.suggestions && (
+
+ {Component => }
+
+ )}
+
+
+ >
+ );
+};
+
+export default StatusPage;