diff --git a/app/stacks/OutsideStack.tsx b/app/stacks/OutsideStack.tsx
index fb791330..3a9f3b01 100644
--- a/app/stacks/OutsideStack.tsx
+++ b/app/stacks/OutsideStack.tsx
@@ -28,7 +28,7 @@ const _OutsideStack = () => {
-
+
);
};
diff --git a/app/views/LegalView.tsx b/app/views/LegalView.tsx
index 3efce197..c4ef9f66 100644
--- a/app/views/LegalView.tsx
+++ b/app/views/LegalView.tsx
@@ -1,62 +1,60 @@
-import React from 'react';
-import { connect } from 'react-redux';
-import { StackNavigationOptions } from '@react-navigation/stack';
+import React, { useEffect } from 'react';
+import { useSelector } from 'react-redux';
import I18n from '../i18n';
import StatusBar from '../containers/StatusBar';
import openLink from '../utils/openLink';
-import { TSupportedThemes, withTheme } from '../theme';
+import { useTheme } from '../theme';
import SafeAreaView from '../containers/SafeAreaView';
import * as List from '../containers/List';
+import { OutsideParamList } from '../stacks/types';
+import { IBaseScreen, IApplicationState } from '../definitions';
-interface ILegalView {
+interface ILegalViewProps extends IBaseScreen {
server: string;
- theme: TSupportedThemes;
}
-class LegalView extends React.Component {
- static navigationOptions = (): StackNavigationOptions => ({
- title: I18n.t('Legal')
- });
+const LegalView = ({ navigation }: ILegalViewProps): React.ReactElement => {
+ const server = useSelector((state: IApplicationState) => state.server.server);
+ const { theme } = useTheme();
- onPressItem = ({ route }: { route: string }) => {
- const { server, theme } = this.props;
+ useEffect(() => {
+ navigation.setOptions({
+ title: I18n.t('Legal')
+ });
+ }, []);
+
+ const onPressItem = ({ route }: { route: string }) => {
if (!server) {
return;
}
openLink(`${server}/${route}`, theme);
};
- render() {
- return (
-
-
-
-
-
- this.onPressItem({ route: 'terms-of-service' })}
- testID='legal-terms-button'
- showActionIndicator
- />
-
- this.onPressItem({ route: 'privacy-policy' })}
- testID='legal-privacy-button'
- showActionIndicator
- />
-
-
-
-
- );
- }
-}
+ return (
+
+
+
+
+
+ onPressItem({ route: 'terms-of-service' })}
+ testID='legal-terms-button'
+ showActionIndicator
+ />
+
+ onPressItem({ route: 'privacy-policy' })}
+ testID='legal-privacy-button'
+ showActionIndicator
+ />
+
+
+
+
+ );
+};
-const mapStateToProps = (state: any) => ({
- server: state.server.server
-});
-
-export default connect(mapStateToProps)(withTheme(LegalView));
+export default LegalView;