import * as React from 'react'; import { useState, useEffect } from 'react'; import { SafeAreaView, TouchableOpacity, View, Text } from 'react-native'; import { WebView } from 'react-native-webview'; import { useNetInfo } from "@react-native-community/netinfo"; import { connect } from "react-redux"; import { saveAppTermsAndConditions } from "../../redux/actions/AppTermsAndConditionsActions"; import CustomHeader from '../../components/header.js'; import Theme from '../../components/theme.style.js'; import Elements from '../../components/elements.js'; import DB from '../../components/storage/'; import REQUEST from '../../components/api/'; import NetInfo from "../../components/netstatus" import CustomSafeArea from '../../components/safeArea.component'; class TermsConditions extends React.PureComponent { constructor(props) { super(props) this.sender = props.route?.params } state = { connection: false, data: this.props.terms_and_conditions } componentDidMount() { this.init() } componentWillUnmount() { } init = () => { NetInfo.netstatus(isConnected => { if(isConnected){ this.setState({ connection: true }) if(this.props.terms_and_conditions == undefined) this.fetchTermsAndPrivacy() }else{ Elements.nointernet2() } }) } fetchTermsAndPrivacy = async () => { try{ await REQUEST("terms_and_privacy", "get", {}, {}, {}, async (res) => { if(res.status == 1 && res.data){ this.setState({ data: res.data }) this.props.saveAppTermsAndConditions(res.data) }else{ console.log(res.message, res.data) } }, function(error){ console.log(error) } ) }catch(error){ console.log(error) } } setGuest = async () => { await DB.set("is_guest", "true", () =>{ this.props.navigation.navigate("OnBoarding") }), (error) => { console.log(error) } } renderWebView = () => { let contentStyle = `font-size: 29pt; font-family: 'Arial'; color: ${this.props.app_theme?.theme.colors.text}; padding:4%; padding-top: 1%;padding-bottom: 10%;`; let content = this.state.data?.replace('', ``) return ( ) } render() { if(!this.state.connection){ return ( { if(this.sender && this.sender.screen != "back") this.props.navigation.navigate(this.sender.screen) else if(this.sender && this.sender.screen == 'back') this.props.navigation.goBack() else this.props.navigation.navigate("Login") }} navigation={this.props} /> ) } return ( { if(this.sender && this.sender.screen != "back") this.props.navigation.navigate(this.sender.screen) else if(this.sender && this.sender.screen == 'back') this.props.navigation.goBack() else this.props.navigation.navigate("Login") }} navigation={this.props} /> {this.renderWebView()} {this.state.connection && !this.sender ? this.setGuest() }> I Accept : null } ); } } const mapStateToProps = (state) => { return { terms_and_conditions: state.appTermsAndConditionsReducer.terms_and_conditions, app_theme: state.appThemeReducer.theme } } const mapDispatchToProps = { saveAppTermsAndConditions } export default connect(mapStateToProps, mapDispatchToProps)(TermsConditions) // const TermsConditions = (props) => { // const sender = props.route?.params // const [connection, setconnection] = useState(false) // const [data, setdata] = useState(props.terms_and_conditions) // const netInfo = useNetInfo() // const init = async () => { // try{ // await REQUEST("terms_and_privacy", "get", {}, {}, {}, // async (res) => { // if(res.status == 1 && res.data){ // await setdata(await res.data) // props.saveAppTermsAndConditions(res.data) // }else{ // console.log(res.message, res.data) // } // }, function(error){ // console.log(error) // } // ) // }catch(error){ // console.log(error) // } // } // useEffect(() => { // NetInfo.fetch().then(state => { // if(state.isConnected){ // setconnection(true) // if(props.terms_and_conditions == undefined) init() // }else{ // Elements.nointernet2() // } // }); // }, [props]) // const setGuest = async () => { // await DB.set("is_guest", "true", () =>{ // props.navigation.navigate("OnBoarding") // }), // (error) => { // console.log(error) // } // } // const render = () => { // let contentStyle = `font-size: 29pt; font-family: 'Arial'; color: rgba(0, 0, 0, 0.6); padding:4%; padding-top: 1%;padding-bottom: 10%;`; // let content = data?.replace('', ``) // return ( // ) // } // if(!connection){ // return ( // // { // if(sender && sender.screen != "back") props.navigation.navigate(sender.screen) // else if(sender && sender.screen == 'back') props.navigation.goBack() // else props.navigation.navigate("Login") // }} navigation={props} /> // // ) // } // return ( // // { // if(sender && sender.screen != "back") props.navigation.navigate(sender.screen) // else if(sender && sender.screen == 'back') props.navigation.goBack() // else props.navigation.navigate("Login") // }} navigation={props} /> // // {render()} // // {netInfo.isConnected && !sender ? // setGuest() }> // I Agree // // : null } // // ); // } // const mapStateToProps = (state) => { // return { // terms_and_conditions: state.appTermsAndConditionsReducer.terms_and_conditions // } // } // const mapDispatchToProps = { // saveAppTermsAndConditions // } // export default connect(mapStateToProps, mapDispatchToProps)(TermsConditions)