phodal/growth

View on GitHub
src/components/CustomWebView.js

Summary

Maintainability
A
1 hr
Test Coverage
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { WebView, Dimensions } from 'react-native';
import HtmlHelper from '../utils/HtmlHelper';
import Helper from '../utils/helper';

class CustomWebView extends Component {
  static componentName = 'CustomWebView';

  static propTypes = {
    html: PropTypes.string,
  };

  static defaultProps = {
    html: '',
  };

  constructor(props) {
    super(props);
    this.state = {};
    this.webview = null;
  }

  render() {
    return (
      <WebView
        ref={(webview) => {
          this.webview = webview;
        }}
        scalesPageToFit
        startInLoadingState
        source={{ html: HtmlHelper.getHtml(this.props.html) }}
        style={{ height: Dimensions.get('window').height, backgroundColor: 'white' }}
        onNavigationStateChange={(event) => {
          if (event.url.startsWith('http')) {
            Helper.openLink(event.url);
            this.webview.stopLoading();
          }
        }}
        injectedJavaScript=""
      />);
  }
}
export default CustomWebView;