Example #1
0
  renderScene(route, navigator) {

    var Component = route.component;
    var navBar = route.navigationBar;

    if (navBar) {
      navBar = React.addons.cloneWithProps(navBar, {
        navigator: navigator,
        route: route,
        buttonsColor: 'white',
        backgroundColor: '#C0362C',
      });
    }

    return (
      <Component 
        navBar={navBar}
        navigator={navigator} 
        route={route}
        passProps = {route.passProps}
        userToken={this.state.userToken}
        currentPosition={this.state.currentPosition}
        updatePosition={this._getUserLocation}
        socket={this.state.socket}
      />
    );
  }
Example #2
0
        renderScene: function(route, navigator) {
            var self = this;
            console.log("IN RENDER SCENE");
            var navi = this.refs.nav;

            if (!navigator) navigator = navi;

            var Component = route.component;
            var navBar = route.navigationBar;

            if (route._id === 'main') {
              navBar.props.hidePrev = true;
            }

            console.log("in return view");
            if (navBar) {
                console.log("HAD NAV BAR");
                navBar  = React.addons.cloneWithProps(navBar, {
                    navigator: navigator,
                    route: route
                });
            }
            return (
                <View style={styles.navbar}>
                    {navBar}
                    <Component navigator={navigator} route={route} {...route.passProps} />
                </View>
            );
        },
Example #3
0
  getMenuView: function() {
    var menuActions = this.getMenuActions();

    return (
      <View style={[styles.menu, {left: MENU_LEFT_OFFSET}]}>
        {React.addons.cloneWithProps(this.props.menu, { menuActions })}
      </View>
    );
  },
Example #4
0
  getMenuView: function() {
    var menuActions = this.getMenuActions();

    return (
      <View style={styles.menu}>
        {React.addons.cloneWithProps(this.props.menu, { menuActions })}
      </View>
    );
  },
Example #5
0
  getMenuView: function() {
    var menuActions = {
      close: this.closeMenu,
    };

    return (
      <View style={styles.menu}>
        {React.addons.cloneWithProps(this.props.menu, { menuActions: menuActions, nav: this.props.nav, customAction: this.props.customAction })}
      </View>
    );
  },
Example #6
0
  getMenuView: function() {
    var menuActions = {
      close: this.closeMenu
    };

    return (
      <View style={helpers['e-nav-content']}>
        {React.addons.cloneWithProps(this.props.menu, { menuActions, navigator })}
      </View>
    );
  },
Example #7
0
  getDrawerView: function() {
    var drawerActions = {
      close: this.closeDrawer
    }

    return (
      <View
        key="drawer"
        style={this.stylesheet.drawer}
        ref="drawer"
        {...this.responder.panHandlers}>
        {React.addons.cloneWithProps(this.props.content, { drawerActions })}
      </View>
    )
  },
Example #8
0
  renderScene: function(route, navigator) {
    var Component = route.component;
    var navBar = route.navigationBar;

    if (navBar) {
      navBar = React.addons.cloneWithProps(navBar, { navigator, route });
    }

    return (
      <View style={styles.navigator}>
        {navBar}
        <Component navigator={navigator} route={route} />
      </View>
    );
  },
Example #9
0
 childernforEach(item.props.children, (node, index) => {
     if (index % 2 == 0) {
         if (selected) {
             contentView = node;
         }
     } else {
         node = React.addons.cloneWithProps(node, {
             key: item.props.name,
             selected: selected,
             onPress: () => {
                 props.onTabItemPress(item.props.name)
             }
         });
         itemList.push(node);
     }
 });
Example #10
0
    renderScene: function (route, navigator) {
        var Component = route.component;
        var navBar = route.navigationBar;
        if (navBar) {
            navBar = React.addons.cloneWithProps(navBar, {
                navigator: navigator,
                route: route
            });
        }

        // 这里用的是RootView的navigator
        return (
            <View>
                {navBar}
                <Component navigator={this.props.navigator} route={route}/>
            </View>
        );
    },
  getRightButtonElement: function() {
    var {
      onNext,
      nextTitle,
      navigator,
      route,
      buttonsColor,
      backgroundColor,
      customNext
    } = this.props;

    /*
     * If we have a `customNext` component, then return
     * it's clone with additional attributes
     */
    if (customNext) {
      return React.addons.cloneWithProps(customNext, { navigator, route });
    }

    /*
     * If we haven't received `onNext` handler, then just return
     * a placeholder for button to keep markup consistant and
     * title aligned to the center
     */
    if (!onNext) {
      return <Text style={styles.navBarRightButton}></Text>;
    }

    /*
     * Apply custom background styles to button
     */
    var customStyle = backgroundColor ? { color: buttonsColor } : {};

    return (
      <TouchableOpacity onPress={onNext}>
        <View style={styles.navBarRightButton}>
          <Text style={[styles.navBarText, styles.navBarButtonText, customStyle]}>
            {nextTitle || 'Next'}
          </Text>
        </View>
      </TouchableOpacity>
    );
  },
  getLeftButtonElement: function() {
    var {
      onPrev,
      prevTitle,
      navigator,
      route,
      buttonsColor,
      customPrev,
      backgroundColor
    } = this.props;

    /*
     * If we have a `customPrev` component, then return
     * it's clone with additional attributes
     */
    if (customPrev) {
      return React.addons.cloneWithProps(customPrev, { navigator, route });
    }

    /*
     * Check if we need to hide `prev` button
     */
    if (this.prevButtonShouldBeHidden()) {
      return <View style={styles.navBarLeftButton}></View>;
    }

    /*
     * Apply custom background styles to button
     */
    var customStyle = backgroundColor ? { color: buttonsColor } : {};

    return (
      <TouchableOpacity onPress={onPrev || navigator.pop}>
        <View style={styles.navBarLeftButton}>
          <Text style={[styles.navBarText, styles.navBarButtonText, customStyle]}>
            {prevTitle || 'Back'}
          </Text>
        </View>
      </TouchableOpacity>
    );
  },
  renderScene(route, navigator) {
    let Component = route.component;
    let navBar = route.navigationBar;

    if (navBar) {
      navBar = React.addons.cloneWithProps(navBar, {
        style: styles.navColor,
        titleColor: 'white',
        navigator: navigator,
        route: route
      });
    }

    return (
      <View style={styles.appContainer}>
        {navBar}
        <Component
          navigator={navigator}
          route={route}
        />
      </View>
    );
  }
Example #14
0
  componentDidMount() {
    this.fetchMessages();

    // Custom Navbar for Message Component
    if (this.props.navBar) {
      this.props.navBar = React.addons.cloneWithProps(this.props.navBar, {
        customNext: 
          <MessageTextInputButton 
            show={this._toggleEdit.bind(this)}
          />,
        customTitle: 
          <SettingsButton
            navigator={this.props.navigator}
          />,
        customPrev: 
          <NumHeartsDisplay 
            userToken={this.props.userToken} 
            socket={this.props.socket}
          />,
      });
    }
    
  }
Example #15
0
  getTitleElement: function() {
    var {
      title,
      titleColor,
      customTitle,
      navigator,
      route,
    } = this.props;

    /*
     * Return `customTitle` component if we have it
     */
    if (customTitle) {
      return (
        <View style={styles.customTitle}>
          {React.addons.cloneWithProps(customTitle, { navigator, route })}
        </View>
      );
    }

    if (title && !title.length) {
      return true;
    }

    var titleStyle = [
      styles.navBarText,
      styles.navBarTitleText,
      { color: titleColor }
    ];

    return (
      <Text style={titleStyle}>
        {title}
      </Text>
    );
  },
        hideHandler(this.transition);
      }
    }
  },

  renderCloseButton() {
    var {
      customCloseButton,
      hideCloseButton,
      onClose,
    } = this.props;

    var styles = this.props.style || DefaultStyles;

    if (customCloseButton) {
      return React.addons.cloneWithProps(customCloseButton, null);
    } else if (!hideCloseButton && onClose) {
      return (
        <View style={styles.closeButton}>
          <TouchableOpacity onPress={onClose}>
            <Text style={styles.closeButtonText}>Close</Text>
          </TouchableOpacity>
        </View>
      );
    }
  },

  renderBody() {
    var styles = this.props.style || DefaultStyles;

    var responderProps = this.extractResponderProps();
Example #17
0
  View
} = React;

var ColorSwitch = React.createClass({
  getInitialState() {
    return {
      colorTrueSwitchIsOn: true,
      colorFalseSwitchIsOn: false,
    };
  },
  componentDidMount() {
    if (this.props.defaultValue) {
      this.setState(React.addons.update(
        this.state, 
        { 
          $merge: {
            colorFalseSwitchIsOn: this.props.defaultValue
          }
        }));
    }
  },
  componentDidUpdate(prevProps, prevState) {
  	if (this.props.valueUpdate) this.props.valueUpdate(this.state.colorFalseSwitchIsOn);
  },
  render() {
    return (
      <View>
        <SwitchIOS
          onValueChange={(value) => this.setState({colorFalseSwitchIsOn: value})}
          onTintColor="#00ff00"
          tintColor="#ff0000"