51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
import React from 'react';
|
|
import {
|
|
View, Text, StyleSheet, ActivityIndicator
|
|
} from 'react-native';
|
|
import PropTypes from 'prop-types';
|
|
import { connect } from 'react-redux';
|
|
|
|
import I18n from '../i18n';
|
|
import StatusBar from '../containers/StatusBar';
|
|
import { withTheme } from '../theme';
|
|
import { themes } from '../constants/colors';
|
|
|
|
import sharedStyles from './Styles';
|
|
|
|
const styles = StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
justifyContent: 'center',
|
|
alignItems: 'center'
|
|
},
|
|
text: {
|
|
fontSize: 16,
|
|
paddingTop: 10,
|
|
...sharedStyles.textRegular,
|
|
...sharedStyles.textAlignCenter
|
|
}
|
|
});
|
|
|
|
const AuthLoadingView = React.memo(({ theme, text }) => (
|
|
<View style={[styles.container, { backgroundColor: themes[theme].backgroundColor }]}>
|
|
<StatusBar />
|
|
{text && (
|
|
<>
|
|
<ActivityIndicator color={themes[theme].auxiliaryText} size='large' />
|
|
<Text style={[styles.text, { color: themes[theme].bodyText }]}>{`${ text }\n${ I18n.t('Please_wait') }`}</Text>
|
|
</>
|
|
)}
|
|
</View>
|
|
));
|
|
|
|
const mapStateToProps = state => ({
|
|
text: state.app.text
|
|
});
|
|
|
|
AuthLoadingView.propTypes = {
|
|
theme: PropTypes.string,
|
|
text: PropTypes.string
|
|
};
|
|
|
|
export default connect(mapStateToProps)(withTheme(AuthLoadingView));
|