All files / react-native-web/src/exports/AppRegistry AppContainer.js

85.71% Statements 6/7
50% Branches 1/2
100% Functions 1/1
85.71% Lines 6/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49                                          1x     4x     4x     4x       4x                 1x          
/**
 * Copyright (c) Nicolas Gallagher.
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
 */
 
import * as React from 'react';
import StyleSheet from '../StyleSheet';
import View from '../View';
 
type Props = {
  WrapperComponent?: ?React.ComponentType<*>,
  // $FlowFixMe
  children?: React.Children,
  rootTag: any
};
 
const RootTagContext: React.Context<any> = React.createContext(null);
 
export default function AppContainer(props: Props): React.Node {
  const { children, WrapperComponent } = props;
 
  let innerView = (
    <View children={children} key={1} pointerEvents="box-none" style={styles.appContainer} />
  );
 
  Iif (WrapperComponent) {
    innerView = <WrapperComponent>{innerView}</WrapperComponent>;
  }
 
  return (
    <RootTagContext.Provider value={props.rootTag}>
      <View pointerEvents="box-none" style={styles.appContainer}>
        {innerView}
      </View>
    </RootTagContext.Provider>
  );
}
 
const styles = StyleSheet.create({
  appContainer: {
    flex: 1
  }
});