diff --git a/assets/fonts/SF-UI-Text-Bold.otf b/assets/fonts/SF-UI-Text-Bold.otf
new file mode 100644
index 0000000..949a2b1
Binary files /dev/null and b/assets/fonts/SF-UI-Text-Bold.otf differ
diff --git a/assets/fonts/SF-UI-Text-Regular.otf b/assets/fonts/SF-UI-Text-Regular.otf
new file mode 100644
index 0000000..4505e38
Binary files /dev/null and b/assets/fonts/SF-UI-Text-Regular.otf differ
diff --git a/assets/profile_screen/img1.png b/assets/profile_screen/img1.png
new file mode 100644
index 0000000..fcbe59c
Binary files /dev/null and b/assets/profile_screen/img1.png differ
diff --git a/assets/profile_screen/img2.png b/assets/profile_screen/img2.png
new file mode 100644
index 0000000..a4d42a8
Binary files /dev/null and b/assets/profile_screen/img2.png differ
diff --git a/assets/profile_screen/img3.png b/assets/profile_screen/img3.png
new file mode 100644
index 0000000..2c8204e
Binary files /dev/null and b/assets/profile_screen/img3.png differ
diff --git a/assets/profile_screen/img4.png b/assets/profile_screen/img4.png
new file mode 100644
index 0000000..978bf25
Binary files /dev/null and b/assets/profile_screen/img4.png differ
diff --git a/assets/profile_screen/img5.png b/assets/profile_screen/img5.png
new file mode 100644
index 0000000..ed518cc
Binary files /dev/null and b/assets/profile_screen/img5.png differ
diff --git a/routes.js b/routes.js
index 0efa63d..c0eca22 100644
--- a/routes.js
+++ b/routes.js
@@ -19,6 +19,8 @@ import Presentation from './src/screens/Presentation';
import Dashboard from './src/screens/Dashboard';
import Register from './src/screens/Register';
import Grid from './src/screens/Grid';
+import SocialProfile from './src/screens/SocialProfile';
+
import theme from './src/theme';
import { Block, Icon, Text } from './src';
@@ -152,6 +154,13 @@ const screens = {
drawerIcon: props => ,
},
},
+ SocialProfile: {
+ screen: SocialProfile,
+ navigationOptions: {
+ drawerLabel: 'Social Profile',
+ drawerIcon: props => ,
+ }
+ },
};
const options = {
diff --git a/src/screens/SocialProfile.js b/src/screens/SocialProfile.js
new file mode 100644
index 0000000..4936827
--- /dev/null
+++ b/src/screens/SocialProfile.js
@@ -0,0 +1,372 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import {
+ Dimensions, StyleSheet, ScrollView, Platform, Image, ActivityIndicator, Alert,
+} from 'react-native';
+import { Font, LinearGradient } from 'expo';
+// galio components
+import {
+ Button, Block, Icon, Text, NavBar, Card,
+} from 'galio-framework';
+import theme from '../theme';
+
+const BASE_SIZE = theme.SIZES.BASE;
+const GRADIENT_GREY = ['#f3f3f3', '#ffffff'];
+const GRADIENT_CRIMSON = ['#f96332', '#fe2472'];
+const COLOR_WHITE = theme.COLORS.WHITE;
+const COLOR_GREY = theme.COLORS.MUTED;
+const COLOR_DARK_GREY = '#444444';
+const FONT_REGULAR = 'SFUIText-Regular';
+const FONT_BOLD = 'SFUIText-Bold';
+const { width } = Dimensions.get('screen');
+
+
+const imageOne = require('../../assets/profile_screen/img1.png');
+const imageTwo = require('../../assets/profile_screen/img2.png');
+const imageThree = require('../../assets/profile_screen/img3.png');
+const imageFour = require('../../assets/profile_screen/img4.png');
+const imageFive = require('../../assets/profile_screen/img5.png');
+
+// F O N T S
+const SF_UI_REGULAR = require('../../assets/fonts/SF-UI-Text-Regular.otf');
+const SF_UI_BOLD = require('../../assets/fonts/SF-UI-Text-Bold.otf');
+
+const grids = [
+ {
+ id: 1,
+ image: imageOne,
+ },
+ {
+ id: 2,
+ image: imageTwo,
+ },
+ {
+ id: 3,
+ image: imageThree,
+ },
+ {
+ id: 4,
+ image: imageFour,
+ },
+ {
+ id: 5,
+ image: imageFive,
+ },
+];
+
+
+class SocialProfile extends React.Component {
+ state = {
+ fontsLoaded: false,
+ }
+
+ async componentDidMount() {
+ await Font.loadAsync({
+ 'SFUIText-Regular': SF_UI_REGULAR,
+ 'SFUIText-Bold': SF_UI_BOLD,
+ });
+ this.setState({ fontsLoaded: true });
+ }
+
+ renderHeader = navigation => (
+ Alert.alert('Like it!')}
+ />
+ )}
+ titleStyle={styles.titleStyle}
+ leftIconColor={COLOR_GREY}
+ onLeftPress={() => navigation.goBack()}
+ style={Platform.OS === 'android' ? { marginTop: BASE_SIZE } : null}
+ />
+ );
+
+ renderBio = () => (
+
+
+
+
+
+
+
+
+
+
+ Julie Andrew
+
+ Hey there, I'm a UI designer from Paris.
+
+
+
+ );
+
+ renderLevel = () => (
+
+
+ 100
+ Photos
+
+
+ 30
+ Articles
+
+
+ 4K
+ Followers
+
+
+ );
+
+ renderPhotos = () => (
+
+
+ Photos
+ View more
+
+
+ {
+ grids.map((grid, index) => (
+
+
+
+ ))
+ }
+
+
+
+
+
+ );
+
+ renderArticles = () => (
+
+
+ Articles
+ View more
+
+
+
+
+
+ );
+
+ render() {
+ const { fontsLoaded } = this.state;
+ const { navigation } = this.props;
+ // S H O W - L O A D E R - W H E N - F O N T - I S - L O A D I N G
+ if (!fontsLoaded) {
+ return (
+
+
+
+ );
+ }
+ // E L S E - S H O W - T H E - S C R E E N
+ return (
+
+ {/* G R E D I E N T - B A C K G R O U N D */}
+
+ {/* H E A D E R */}
+ {this.renderHeader(navigation)}
+
+
+
+ {/* R E N D E R - M A I N - C O N T E N T S */}
+ {this.renderBio()}
+
+ {this.renderLevel()}
+
+ {this.renderPhotos()}
+
+ {this.renderArticles()}
+
+
+
+ );
+ }
+}
+
+SocialProfile.propTypes = {
+ navigation: PropTypes.object.isRequired,
+};
+const styles = StyleSheet.create({
+ backgroundGradient: {
+ position: 'absolute',
+ top: 0,
+ bottom: 0,
+ right: 0,
+ left: 0,
+ zIndex: 0,
+ },
+ titleStyle: {
+ fontFamily: FONT_REGULAR,
+ lineHeight: 16,
+ },
+ container: {
+ paddingHorizontal: theme.SIZES.BASE,
+ },
+ bioContainer: {
+ marginBottom: 30,
+ paddingHorizontal: 8,
+ },
+ bioAvatarWrap: {
+ height: 55,
+ width: 55,
+ borderRadius: BASE_SIZE * 3.25,
+ shadowColor: 'rgb(0,0,0)',
+ shadowOffset: { width: 0, height: 10 },
+ shadowOpacity: 0.3,
+ shadowRadius: -3,
+ elevation: 27,
+ overflow: 'hidden',
+ },
+ bioAvatar: {
+ height: '100%',
+ width: '100%',
+ },
+ bioButton: {
+ height: 32,
+ overflow: 'hidden',
+ shadowColor: 'rgb(0,0,0)',
+ shadowOffset: { width: 0, height: 13 },
+ shadowOpacity: 0.1,
+ shadowRadius: -8,
+ elevation: 11,
+ width: 102,
+ },
+ buttonTextStyle: {
+ fontFamily: FONT_REGULAR,
+ lineHeight: 19,
+ },
+ bioInnerContainer: {
+ marginTop: 16,
+ },
+ bioHeading: {
+ fontFamily: FONT_BOLD,
+ fontSize: 36,
+ lineHeight: 43,
+ marginBottom: 7,
+ },
+ bioParagraph: {
+ fontFamily: FONT_REGULAR,
+ fontSize: 14,
+ lineHeight: 16,
+ },
+ levelCard: {
+ alignItems: 'center',
+ borderWidth: 0,
+ borderColor: 'transparent',
+ backgroundColor: COLOR_WHITE,
+ paddingTop: 17,
+ paddingBottom: 12,
+ marginBottom: 37,
+ shadowColor: 'rgba(0,0,0, 0.1)',
+ shadowOffset: { width: 0, height: 10 },
+ shadowOpacity: 0.1,
+ shadowRadius: -1,
+ elevation: 34,
+ },
+ levelHeading: {
+ fontFamily: FONT_REGULAR,
+ fontSize: 16,
+ lineHeight: 19,
+ marginBottom: 6,
+ },
+ levelParagraph: {
+ fontFamily: FONT_REGULAR,
+ fontSize: 12,
+ lineHeight: 14,
+ },
+ headingWrapper: {
+ paddingHorizontal: 7,
+ marginBottom: 11,
+ },
+ leftHeading: {
+ fontFamily: FONT_REGULAR,
+ fontSize: 16,
+ lineHeight: 19,
+ },
+ rightParagraph: {
+ fontFamily: FONT_REGULAR,
+ fontSize: 12,
+ lineHeight: 14,
+ },
+ column: {
+ height: width * 0.28,
+ marginBottom: 15,
+ width: width * 0.28,
+ },
+ fullSize: {
+ borderWidth: 0,
+ height: '100%',
+ padding: 0,
+ width: '100%',
+ },
+ crimsonGradient: {
+ alignItems: 'center',
+ borderRadius: 3,
+ flexDirection: 'row',
+ height: '100%',
+ justifyContent: 'center',
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ width: '100%',
+ },
+});
+
+export default SocialProfile;