From c15fab7c84d7e17071ddcd30807550739e8a984a Mon Sep 17 00:00:00 2001 From: Diego Mello Date: Fri, 26 Apr 2019 17:51:09 -0300 Subject: [PATCH] Load legal pages from web (#849) --- app/constants/settings.js | 6 ------ app/index.js | 14 ++---------- app/views/LegalView.js | 22 ++++++++++++------- app/views/PrivacyPolicyView.js | 39 ---------------------------------- app/views/TermsServiceView.js | 38 --------------------------------- 5 files changed, 16 insertions(+), 103 deletions(-) delete mode 100644 app/views/PrivacyPolicyView.js delete mode 100644 app/views/TermsServiceView.js diff --git a/app/constants/settings.js b/app/constants/settings.js index f9ca4a54..78b22952 100644 --- a/app/constants/settings.js +++ b/app/constants/settings.js @@ -14,12 +14,6 @@ export default { CROWD_Enable: { type: 'valueAsBoolean' }, - Layout_Privacy_Policy: { - type: 'valueAsString' - }, - Layout_Terms_of_Service: { - type: 'valueAsString' - }, LDAP_Enable: { type: 'valueAsBoolean' }, diff --git a/app/index.js b/app/index.js index c6978910..9be8979b 100644 --- a/app/index.js +++ b/app/index.js @@ -33,8 +33,6 @@ import ThreadMessagesView from './views/ThreadMessagesView'; import SelectedUsersView from './views/SelectedUsersView'; import CreateChannelView from './views/CreateChannelView'; import LegalView from './views/LegalView'; -import TermsServiceView from './views/TermsServiceView'; -import PrivacyPolicyView from './views/PrivacyPolicyView'; import ForgotPasswordView from './views/ForgotPasswordView'; import RegisterView from './views/RegisterView'; import OAuthView from './views/OAuthView'; @@ -81,15 +79,8 @@ const OutsideStack = createStackNavigator({ LoginSignupView, LoginView, ForgotPasswordView, - RegisterView -}, { - defaultNavigationOptions: defaultHeader -}); - -const LegalStack = createStackNavigator({ - LegalView, - TermsServiceView, - PrivacyPolicyView + RegisterView, + LegalView }, { defaultNavigationOptions: defaultHeader }); @@ -102,7 +93,6 @@ const OAuthStack = createStackNavigator({ const OutsideStackModal = createStackNavigator({ OutsideStack, - LegalStack, OAuthStack }, { diff --git a/app/views/LegalView.js b/app/views/LegalView.js index 9a5be2f6..11c0249e 100644 --- a/app/views/LegalView.js +++ b/app/views/LegalView.js @@ -5,15 +5,16 @@ import { } from 'react-native'; import { SafeAreaView } from 'react-navigation'; import { RectButton } from 'react-native-gesture-handler'; +import { connect } from 'react-redux'; import sharedStyles from './Styles'; import scrollPersistTaps from '../utils/scrollPersistTaps'; import LoggedView from './View'; import I18n from '../i18n'; import DisclosureIndicator from '../containers/DisclosureIndicator'; -import { CloseModalButton } from '../containers/HeaderButton'; import StatusBar from '../containers/StatusBar'; import { COLOR_SEPARATOR, COLOR_WHITE } from '../constants/colors'; +import openLink from '../utils/openLink'; const styles = StyleSheet.create({ container: { @@ -52,15 +53,17 @@ const styles = StyleSheet.create({ const Separator = () => ; +@connect(state => ({ + server: state.server.server +})) /** @extends React.Component */ export default class LegalView extends LoggedView { - static navigationOptions = ({ navigation }) => ({ - headerLeft: , + static navigationOptions = () => ({ title: I18n.t('Legal') }) static propTypes = { - navigation: PropTypes.object + server: PropTypes.string } constructor(props) { @@ -68,8 +71,11 @@ export default class LegalView extends LoggedView { } onPressItem = ({ route }) => { - const { navigation } = this.props; - navigation.navigate(route); + const { server } = this.props; + if (!server) { + return; + } + openLink(`${ server }/${ route }`); } renderItem = ({ text, route, testID }) => ( @@ -84,9 +90,9 @@ export default class LegalView extends LoggedView { - {this.renderItem({ text: 'Terms_of_Service', route: 'TermsServiceView', testID: 'legal-terms-button' })} + {this.renderItem({ text: 'Terms_of_Service', route: 'terms-of-service', testID: 'legal-terms-button' })} - {this.renderItem({ text: 'Privacy_Policy', route: 'PrivacyPolicyView', testID: 'legal-privacy-button' })} + {this.renderItem({ text: 'Privacy_Policy', route: 'privacy-policy', testID: 'legal-privacy-button' })} ); diff --git a/app/views/PrivacyPolicyView.js b/app/views/PrivacyPolicyView.js deleted file mode 100644 index 33296953..00000000 --- a/app/views/PrivacyPolicyView.js +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { WebView } from 'react-native'; -import { connect } from 'react-redux'; -import { SafeAreaView } from 'react-navigation'; - -import styles from './Styles'; -import LoggedView from './View'; -import I18n from '../i18n'; -import StatusBar from '../containers/StatusBar'; - -@connect(state => ({ - privacyPolicy: state.settings.Layout_Privacy_Policy -})) -/** @extends React.Component */ -export default class PrivacyPolicyView extends LoggedView { - static navigationOptions = { - title: I18n.t('Privacy_Policy') - } - - static propTypes = { - privacyPolicy: PropTypes.string - } - - constructor(props) { - super('PrivacyPolicyView', props); - } - - render() { - const { privacyPolicy } = this.props; - - return ( - - - - - ); - } -} diff --git a/app/views/TermsServiceView.js b/app/views/TermsServiceView.js deleted file mode 100644 index 2e8beaaf..00000000 --- a/app/views/TermsServiceView.js +++ /dev/null @@ -1,38 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { WebView } from 'react-native'; -import { connect } from 'react-redux'; -import { SafeAreaView } from 'react-navigation'; - -import styles from './Styles'; -import LoggedView from './View'; -import I18n from '../i18n'; -import StatusBar from '../containers/StatusBar'; - -@connect(state => ({ - termsService: state.settings.Layout_Terms_of_Service -})) -/** @extends React.Component */ -export default class TermsServiceView extends LoggedView { - static navigationOptions = { - title: I18n.t('Terms_of_Service') - } - - static propTypes = { - termsService: PropTypes.string - } - - constructor(props) { - super('TermsServiceView', props); - } - - render() { - const { termsService } = this.props; - return ( - - - - - ); - } -}