Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't load spinner after upgrading to 0.26 #16

Closed
bfarrgaynor opened this issue Jun 24, 2016 · 3 comments
Closed

Can't load spinner after upgrading to 0.26 #16

bfarrgaynor opened this issue Jun 24, 2016 · 3 comments

Comments

@bfarrgaynor
Copy link

Hi,

I just upgraded my React project to 0.26.3 and after removing and re-adding the latest package I can no longer get this project to run.

screenshot 2016-06-24 07 39 32

What I'm running

  "dependencies": {
    "@exponent/react-native-navigator": "^0.4.7",
    "@remobile/react-native-splashscreen": "^1.0.3",
    "react": "^15.0.2",
    "react-native": "^0.26.3",
    "react-native-button": "^1.6.0",
    "react-native-checkbox": "^1.0.8",
    "react-native-date-time-picker": "0.0.4",
    "react-native-loading-spinner-overlay": "^0.1.2",
    "react-native-maps": "^0.6.0",
    "react-native-message-bar": "^1.6.0",
    "react-native-progress": "^2.2.0",
    "react-native-vector-icons": "^1.0.4",
    "react-timer-mixin": "^0.13.3",
    "react-native-swipeout": "git+https://github.com/magrinj/react-native-swipeout"
  }
}

Usage in my component:

'use strict';

var React = require('react');
var ReactNative = require('react-native');

var CheckBox = require('react-native-checkbox');
var global = require('../globals.js');
var cpAPI = require('../cpAPI.js');
var cpAPIAuth = require('../cpAPIAuth.js');
var gStyles = require('../styles/globalStyles.js');
var Button = require('react-native-button');

var {
  View,
  Platform,
  TouchableHighlight,
  TouchableNativeFeedback,
  ScrollView,
  StyleSheet,
  Image,
  TouchableOpacity,
  Switch,
  TextInput,
  AsyncStorage,
  Alert,
  Text
} = ReactNative;

var Icon = require('react-native-vector-icons/MaterialIcons');

import Spinner from 'react-native-loading-spinner-overlay';


var CPRouter = require('../router.js');

var Login = React.createClass({

  getInitialState: function() {

        return {
          attemptingLogin: false,
          rememberMeBool: false,
          rememberMeString: "no",
          username: '',
          password: '',
        };

  },

  componentDidMount: function() {


       var rememberMeBool = this.state.rememberMeBool;
       var rememberMeString = this.state.rememberMeString;
       var username = this.state.username;
       var password = this.state.password;

         global.liveObjects.loginView = this;

       //get the username and password (this could be a multi fetch)
       var result = AsyncStorage.getItem("rememberMe").then(function(value) {

            console.log("Async Remember Me Is: " + value);


            if(value) {

                   rememberMeString = value;
                   if(rememberMeString == "yes") {
                        rememberMeBool = true;
                    }

                    AsyncStorage.getItem("username").then(function(value) {

                        console.log("Async username Is: " + value);

                           if(value) {

                                username = value;

                                AsyncStorage.getItem("password").then(function(value) {

                                       if(value) {

                                            password = value;

                                              console.log("Async password Is: " + value);

                                               if(rememberMeBool) {
                                                    global.liveObjects.loginView.setState({
                                                        rememberMeBool:true,
                                                        rememberMeString:"yes",
                                                        username:username,
                                                        password:password,

                                                    });   

                                                } else {

                                                 global.liveObjects.loginView.setState({
                                                        rememberMeBool:false,
                                                        rememberMeString:"no",
                                                        username:'',
                                                        password:'',

                                                    });   

                                                }



                                       }

                                }); 
                           }

                    }); 


               }

        }); 






   },


   setRememberMeItems: function() {



        console.log("You are setting remember me to: " + this.state.rememberMeString);
        AsyncStorage.setItem("rememberMe", this.state.rememberMeString); 

        if(this.state.rememberMeBool) {
            console.log("Saving user data to persistient storage. Username: " + this.state.username + " Password: " + this.state.password);
            AsyncStorage.setItem("username", this.state.username); 
            AsyncStorage.setItem("password", this.state.password); 
        } else {
             console.log("Wiping user data from persistient storage");
            AsyncStorage.removeItem("username").then(function() {
                     AsyncStorage.removeItem("password"); 
            }); 

        }

    },

   rememberMe: function(value) {

       var rememberMe;

       rememberMe = "no";  
       if(value) {
            rememberMe = "yes";  
       }
       this.setState({rememberMeBool:value, rememberMeString:rememberMe});


   },


   loginButtonClick: async function() {

      console.log(global);

       this.setRememberMeItems();

       this.setState({attemptingLogin: true});

         var response = await cpAPIAuth.login(this.state.username, this.state.password, false);
        //abroome EIT#33
         console.log("Server finished.");

          this.setState({attemptingLogin: false});

         if(response) {   
            //Alert.alert('Good',"It worked",); 
            this.props.rootView.setState({showLogin: false});

         } else {

            this.props.rootView.setState({showLogin: true});
         }



         // this.setState({attemptingLogin: true}).then({   Alert.alert('Good',"It worked",); }).then({  this.setState({attemptingLogin: false}); }).done();
        console.log(global);

    },




   render: function() {

    var TouchableElement = TouchableHighlight;
    if (Platform.OS === 'android') {
     TouchableElement = TouchableNativeFeedback;
    }


         //if(true) {
         if (this.state.attemptingLogin) {
             var loginLogo = <View></View>;

            if (Platform.OS === 'ios') {
            var loginForm = <View style={gStyles.loginActivity}>
             <Spinner color={'white'} visible={true} />
                            </View>;

            } else {
                var loginForm = <View><Spinner color={'white'} visible={true} /></View>;
            }
         } else {
           var loginLogo =  

           <View style={gStyles.cpLoginLogoWrapper}>
                <Image resizeMode={'contain'} source={require('../images/login/collegepro_logo_white.png')} style={gStyles.cpLoginLogo} />
            </View>;
            var loginForm =

            <View style={gStyles.login}>

                <View style={gStyles.loginUsernameField}>
                    <View style={gStyles.loginUsernameIcon}>
                        <Icon name="assignment-ind" size={28} color="#CCCCCC" />
                    </View>
                    <TextInput
                    style={gStyles.loginField} autoCorrect={false} autoCapitalize={'none'} underlineColorAndroid={'white'} placeholder={'Username'} placeholderTextColor="#CCCCCC"
                    onChangeText={(username) => this.setState({username})}
                    value={this.state.username.toString()}
                  />
                </View>
                <View style={gStyles.loginPasswordField}>
                    <View style={gStyles.loginPasswordIcon}>
                        <Icon name="lock-outline" size={28} color="#CCCCCC" />
                    </View>
                    <TextInput
                    style={gStyles.loginField} placeholder={'Password'} secureTextEntry={true} placeholderTextColor="#CCCCCC"
                    onChangeText={(password) => this.setState({password})}
                    value={this.state.password.toString()}
                  />
                </View>

                <View style={gStyles.loginRememberMe}>
                    <Switch
                    onValueChange={(value) => this.rememberMe(value)}
                    value={this.state.rememberMeBool}  
                    onTintColor="#468EE5"
                    style={gStyles.loginRememberMeSwitch}
                    thumbTintColor="white"
                    tintColor="#468EE5" />


                    <Text style={gStyles.loginRememberMeLabel}>Remember me</Text>
                </View>


                <TouchableOpacity onPress={() => {   this.props.rootView.setState({showForgotPassword: true}); }}>
                        <Text style={gStyles.loginForgotPasswordButton}>
                            Forgot password?
                        </Text>
                </TouchableOpacity>


                <TouchableOpacity onPress={() => {  this.loginButtonClick(); }}>
                        <Text style={gStyles.loginButton}>
                            Sign In
                        </Text>
                </TouchableOpacity>
            </View>;

        }     

        var whatToReturn = 
        <ScrollView scrollEnabled={false} contentContainerStyle={gStyles.loginMasterContainer}>


            <View style={gStyles.loginBGImageWrapper}>
                <Image source={require('../images/login/login_bg_android.png')} style={gStyles.loginBGImage} />
            </View>
            { loginLogo }

            { loginForm }

        </ScrollView>
           ;

     return (whatToReturn);

  }
});


module.exports = Login;




@niftylettuce
Copy link
Collaborator

@bfarrgaynor Can you try using npm install react-native-loading-spinner-overlay@0.1.1?

@bfarrgaynor
Copy link
Author

This seems to have been fixed by upgrading to 0.28. Calling this closed.

@niftylettuce
Copy link
Collaborator

See #20 (comment) @bfarrgaynor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants