├── .buckconfig ├── .eslintrc.js ├── .flowconfig ├── .gitattributes ├── .gitignore ├── .prettierrc.js ├── .watchmanconfig ├── App.js ├── App ├── AppContainer.js ├── Assets │ ├── .png-cache │ │ ├── airplane:9f993609826199e0633d2e0324f732c9.png │ │ ├── airplane:9f993609826199e0633d2e0324f732c9@2x.png │ │ ├── airplane:9f993609826199e0633d2e0324f732c9@3x.png │ │ ├── newspaper:74abfc2d6f334003a71ec0e85b95f328.png │ │ ├── newspaper:74abfc2d6f334003a71ec0e85b95f328@2x.png │ │ └── newspaper:74abfc2d6f334003a71ec0e85b95f328@3x.png │ ├── flame-6.png │ ├── flame-8.png │ ├── flame-searching.png │ ├── flame-sign-up.png │ ├── flame-unsubscribed.png │ └── fonts │ │ ├── Lato-Black.ttf │ │ ├── Lato-BlackItalic.ttf │ │ ├── Lato-Bold.ttf │ │ ├── Lato-BoldItalic.ttf │ │ ├── Lato-Light.ttf │ │ ├── Lato-LightItalic.ttf │ │ ├── Lato-Regular.ttf │ │ ├── Lato-RegularItalic.ttf │ │ ├── Lato-Thin.ttf │ │ └── Lato-ThinItalic.ttf ├── Components │ └── ThemedComponents │ │ ├── ThemedButton.js │ │ ├── ThemedHeader.js │ │ ├── ThemedText.js │ │ └── ThemedView.js ├── Navigation │ ├── AppStack.js │ ├── AuthStack.js │ ├── BottomBar.js │ ├── DashboardStack.js │ ├── ProfileStack.js │ └── SettingsStack.js ├── Screens │ ├── AppIntro │ │ └── AppIntro.js │ ├── Authentication │ │ ├── Auth.js │ │ ├── AuthLoading.js │ │ ├── Login │ │ │ └── Login.js │ │ └── Registration │ │ │ └── Registration.js │ ├── Dashboard │ │ └── Dashboard.js │ ├── Profile │ │ └── Profile.js │ ├── Settings │ │ ├── About.js │ │ ├── General.js │ │ ├── Help.js │ │ ├── PrivacyPolicy.js │ │ └── Settings.js │ └── Splash │ │ └── SplashScreen.js ├── Services │ └── UserService.js └── Theme │ └── themes.js ├── LICENSE ├── README.md ├── __tests__ └── App-test.js ├── android ├── app │ ├── BUCK │ ├── build.gradle │ ├── build_defs.bzl │ ├── debug.keystore │ ├── proguard-rules.pro │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── fonts │ │ │ ├── AntDesign.ttf │ │ │ ├── Entypo.ttf │ │ │ ├── EvilIcons.ttf │ │ │ ├── Feather.ttf │ │ │ ├── FontAwesome.ttf │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ ├── Fontisto.ttf │ │ │ ├── Foundation.ttf │ │ │ ├── Ionicons.ttf │ │ │ ├── Lato-Black.ttf │ │ │ ├── Lato-BlackItalic.ttf │ │ │ ├── Lato-Bold.ttf │ │ │ ├── Lato-BoldItalic.ttf │ │ │ ├── Lato-Light.ttf │ │ │ ├── Lato-LightItalic.ttf │ │ │ ├── Lato-Regular.ttf │ │ │ ├── Lato-RegularItalic.ttf │ │ │ ├── Lato-Thin.ttf │ │ │ ├── Lato-ThinItalic.ttf │ │ │ ├── MaterialCommunityIcons.ttf │ │ │ ├── MaterialIcons.ttf │ │ │ ├── Octicons.ttf │ │ │ ├── SimpleLineIcons.ttf │ │ │ └── Zocial.ttf │ │ ├── java │ │ └── com │ │ │ └── reactnativejunior │ │ │ ├── MainActivity.java │ │ │ └── MainApplication.java │ │ └── res │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── app.json ├── assets ├── header.png ├── lightdark.gif ├── login.gif ├── logo.jpg └── register.gif ├── babel.config.js ├── index.js ├── ios ├── Podfile ├── Podfile.lock ├── ReactNativeJunior-tvOS │ └── Info.plist ├── ReactNativeJunior-tvOSTests │ └── Info.plist ├── ReactNativeJunior.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── ReactNativeJunior-tvOS.xcscheme │ │ └── ReactNativeJunior.xcscheme ├── ReactNativeJunior.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── ReactNativeJunior │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj │ │ └── LaunchScreen.xib │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Info.plist │ └── main.m └── ReactNativeJuniorTests │ ├── Info.plist │ └── ReactNativeJuniorTests.m ├── metro.config.js ├── package-lock.json ├── package.json └── react-native.config.js /.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native-community', 4 | }; 5 | -------------------------------------------------------------------------------- /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | ; We fork some components by platform 3 | .*/*[.]android.js 4 | 5 | ; Ignore "BUCK" generated dirs 6 | /\.buckd/ 7 | 8 | ; Ignore polyfills 9 | node_modules/react-native/Libraries/polyfills/.* 10 | 11 | ; These should not be required directly 12 | ; require from fbjs/lib instead: require('fbjs/lib/warning') 13 | node_modules/warning/.* 14 | 15 | ; Flow doesn't support platforms 16 | .*/Libraries/Utilities/LoadingView.js 17 | 18 | [untyped] 19 | .*/node_modules/@react-native-community/cli/.*/.* 20 | 21 | [include] 22 | 23 | [libs] 24 | node_modules/react-native/Libraries/react-native/react-native-interface.js 25 | node_modules/react-native/flow/ 26 | 27 | [options] 28 | emoji=true 29 | 30 | esproposal.optional_chaining=enable 31 | esproposal.nullish_coalescing=enable 32 | 33 | module.file_ext=.js 34 | module.file_ext=.json 35 | module.file_ext=.ios.js 36 | 37 | munge_underscores=true 38 | 39 | module.name_mapper='^react-native$' -> '/node_modules/react-native/Libraries/react-native/react-native-implementation' 40 | module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' 41 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' 42 | 43 | suppress_type=$FlowIssue 44 | suppress_type=$FlowFixMe 45 | suppress_type=$FlowFixMeProps 46 | suppress_type=$FlowFixMeState 47 | 48 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\) 49 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+ 50 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError 51 | 52 | [lints] 53 | sketchy-null-number=warn 54 | sketchy-null-mixed=warn 55 | sketchy-number=warn 56 | untyped-type-import=warn 57 | nonstrict-import=warn 58 | deprecated-type=warn 59 | unsafe-getters-setters=warn 60 | inexact-spread=warn 61 | unnecessary-invariant=warn 62 | signature-verification-failure=warn 63 | deprecated-utility=error 64 | 65 | [strict] 66 | deprecated-type 67 | nonstrict-import 68 | sketchy-null 69 | unclear-type 70 | unsafe-getters-setters 71 | untyped-import 72 | untyped-type-import 73 | 74 | [version] 75 | ^0.105.0 76 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | !debug.keystore 44 | 45 | # fastlane 46 | # 47 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 48 | # screenshots whenever they are needed. 49 | # For more information about the recommended setup visit: 50 | # https://docs.fastlane.tools/best-practices/source-control/ 51 | 52 | */fastlane/report.xml 53 | */fastlane/Preview.html 54 | */fastlane/screenshots 55 | 56 | # Bundle artifact 57 | *.jsbundle 58 | 59 | # CocoaPods 60 | /ios/Pods/ 61 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | bracketSpacing: false, 3 | jsxBracketSameLine: true, 4 | singleQuote: true, 5 | trailingComma: 'all', 6 | }; 7 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * @format 4 | * @flow 5 | * 6 | * This Component is used to wrap your whole Application inside a Provider of any Kind 7 | * A Provider could be: 8 | * - Redux State Provider 9 | * - Unstated State Provider 10 | * - Apollo (GraphQL) Provider 11 | * This is the highest order component 12 | * 13 | * In this Case we are wrapping the WHOLE Application inside a SafeAreaView which is used 14 | * to display our apps correctly on Notch Devices ( no clipping with NOTCH) 15 | */ 16 | 17 | import React from 'react'; 18 | import { 19 | SafeAreaView, 20 | } from 'react-native'; 21 | import AppContainer from "./App/AppContainer"; 22 | import { ThemeContext, themes } from './App/Theme/themes'; 23 | 24 | 25 | class App extends React.Component { 26 | constructor(props) { 27 | super(props); 28 | 29 | this.toggleTheme = () => { 30 | this.setState(state => ({ 31 | theme: 32 | state.theme === themes.dark 33 | ? themes.light 34 | : themes.dark, 35 | })); 36 | }; 37 | 38 | // State also contains the updater function so it will 39 | // be passed down into the context provider 40 | this.state = { 41 | theme: themes.light, 42 | toggleTheme: this.toggleTheme, 43 | }; 44 | } 45 | 46 | render() { 47 | return ( 48 | 49 | 50 | 51 | ) 52 | } 53 | } 54 | 55 | export default App; 56 | -------------------------------------------------------------------------------- /App/AppContainer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This renders the Navigation for the whole App 3 | * You would visit this file if you would like to add a new screen 4 | * 5 | */ 6 | import { 7 | createStackNavigator, 8 | createSwitchNavigator, 9 | createAppContainer, 10 | } from "react-navigation"; 11 | 12 | import AppStack from "./Navigation/AppStack"; 13 | import AuthLoading from "./Screens/Authentication/AuthLoading"; 14 | import SplashScreen from "./Screens/Splash/SplashScreen"; 15 | import ProfileStack from "./Navigation/ProfileStack"; 16 | import AuthStack from "./Navigation/AuthStack"; 17 | import AppIntro from "./Screens/AppIntro/AppIntro"; 18 | 19 | 20 | export default createAppContainer( 21 | createSwitchNavigator( 22 | { 23 | IntroStack: AppIntro, 24 | App: AppStack, 25 | AuthLoading: AuthLoading, 26 | Auth: AuthStack, 27 | Splash: SplashScreen, 28 | Profile: ProfileStack, 29 | }, 30 | { 31 | //TESTING ONLY INITAL ROUTE SHOULD BE AUTHLOADING 32 | initialRouteName: "AuthLoading", 33 | }, 34 | ), 35 | ); 36 | 37 | -------------------------------------------------------------------------------- /App/Assets/.png-cache/airplane:9f993609826199e0633d2e0324f732c9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/.png-cache/airplane:9f993609826199e0633d2e0324f732c9.png -------------------------------------------------------------------------------- /App/Assets/.png-cache/airplane:9f993609826199e0633d2e0324f732c9@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/.png-cache/airplane:9f993609826199e0633d2e0324f732c9@2x.png -------------------------------------------------------------------------------- /App/Assets/.png-cache/airplane:9f993609826199e0633d2e0324f732c9@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/.png-cache/airplane:9f993609826199e0633d2e0324f732c9@3x.png -------------------------------------------------------------------------------- /App/Assets/.png-cache/newspaper:74abfc2d6f334003a71ec0e85b95f328.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/.png-cache/newspaper:74abfc2d6f334003a71ec0e85b95f328.png -------------------------------------------------------------------------------- /App/Assets/.png-cache/newspaper:74abfc2d6f334003a71ec0e85b95f328@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/.png-cache/newspaper:74abfc2d6f334003a71ec0e85b95f328@2x.png -------------------------------------------------------------------------------- /App/Assets/.png-cache/newspaper:74abfc2d6f334003a71ec0e85b95f328@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/.png-cache/newspaper:74abfc2d6f334003a71ec0e85b95f328@3x.png -------------------------------------------------------------------------------- /App/Assets/flame-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/flame-6.png -------------------------------------------------------------------------------- /App/Assets/flame-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/flame-8.png -------------------------------------------------------------------------------- /App/Assets/flame-searching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/flame-searching.png -------------------------------------------------------------------------------- /App/Assets/flame-sign-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/flame-sign-up.png -------------------------------------------------------------------------------- /App/Assets/flame-unsubscribed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/flame-unsubscribed.png -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-Black.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-BlackItalic.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-Bold.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-BoldItalic.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-Light.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-LightItalic.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-Regular.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-RegularItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-RegularItalic.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-Thin.ttf -------------------------------------------------------------------------------- /App/Assets/fonts/Lato-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oskarsh/ReactNativeJunior/5d81f1fe51727c1615b22a96b46a53cdcc4e719b/App/Assets/fonts/Lato-ThinItalic.ttf -------------------------------------------------------------------------------- /App/Components/ThemedComponents/ThemedButton.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { TouchableOpacity, Text } from 'react-native'; 3 | import { ThemeContext } from "../../Theme/themes" 4 | 5 | class Button extends React.Component { 6 | render() { 7 | let theme = this.context.theme; 8 | return ( 9 | 10 | {this.props.title} 11 | 12 | ) 13 | } 14 | } 15 | 16 | Button.contextType = ThemeContext; 17 | 18 | export default Button; -------------------------------------------------------------------------------- /App/Components/ThemedComponents/ThemedHeader.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text } from 'react-native'; 3 | import { ThemeContext } from "../../Theme/themes" 4 | import ThemedText from "./ThemedText" 5 | 6 | class ThemedHeader extends React.Component { 7 | render() { 8 | theme = this.context.theme; 9 | return 10 | {this.props.children} 11 | ; 12 | } 13 | } 14 | 15 | ThemedHeader.contextType = ThemeContext; 16 | export default ThemedHeader; -------------------------------------------------------------------------------- /App/Components/ThemedComponents/ThemedText.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text } from 'react-native'; 3 | import { ThemeContext } from "../../Theme/themes" 4 | 5 | class ThemedText extends React.Component { 6 | render() { 7 | theme = this.context.theme; 8 | return 9 | {this.props.children} 10 | ; 11 | } 12 | } 13 | 14 | ThemedText.contextType = ThemeContext; 15 | export default ThemedText; -------------------------------------------------------------------------------- /App/Components/ThemedComponents/ThemedView.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text, View } from 'react-native'; 3 | import { ThemeContext } from "../../Theme/themes" 4 | 5 | class ThemedView extends React.Component { 6 | render() { 7 | theme = this.context.theme; 8 | return 9 | {this.props.children} 10 | ; 11 | } 12 | } 13 | 14 | ThemedView.contextType = ThemeContext; 15 | export default ThemedView; -------------------------------------------------------------------------------- /App/Navigation/AppStack.js: -------------------------------------------------------------------------------- 1 | import {createStackNavigator} from "react-navigation" 2 | import MainBottomNavigation from "./BottomBar"; 3 | import Settings from "../Screens/Settings/Settings"; 4 | import General from "../Screens/Settings/General"; 5 | import About from "../Screens/Settings/About"; 6 | import PrivacyPolicy from "../Screens/Settings/PrivacyPolicy"; 7 | import Help from "../Screens/Settings/Help"; 8 | export default createStackNavigator( 9 | { 10 | App: { 11 | screen: MainBottomNavigation, 12 | navigationOptions: { 13 | header: null, 14 | }, 15 | }, 16 | Settings: Settings, 17 | General: General, 18 | About: About, 19 | PrivacyPolicy: PrivacyPolicy, 20 | Help: Help, 21 | 22 | }, 23 | { 24 | initialRouteName: "App", 25 | headerMode: 'screen' 26 | }, 27 | ); -------------------------------------------------------------------------------- /App/Navigation/AuthStack.js: -------------------------------------------------------------------------------- 1 | import {createStackNavigator} from "react-navigation" 2 | 3 | import Auth from "../Screens/Authentication/Auth" 4 | import Login from "../Screens/Authentication/Login/Login" 5 | import Registration from "../Screens/Authentication/Registration/Registration" 6 | 7 | 8 | export default createStackNavigator( 9 | { 10 | AuthScreen: Auth, 11 | Login: Login, 12 | Registration: Registration 13 | }, 14 | { 15 | initialRouteName: "AuthScreen", 16 | }, 17 | ); -------------------------------------------------------------------------------- /App/Navigation/BottomBar.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from "react"; 2 | import { createAppContainer, createStackNavigator, createBottomTabNavigator, BottomTabBar } from "react-navigation"; 3 | import { createMaterialBottomTabNavigator } from "react-navigation-material-bottom-tabs"; 4 | import Feather from "react-native-vector-icons/Feather" 5 | import { ThemeContext } from "../Theme/themes"; 6 | import DashboardStack from "../Navigation/DashboardStack" 7 | import ProfileStack from "../Navigation/ProfileStack" 8 | import Profile from "../Screens/Profile/Profile" 9 | 10 | class TabBarComponent extends React.Component { 11 | 12 | render() { 13 | theme = this.context.theme; 14 | 15 | return ( 16 | 24 | ); 25 | } 26 | } 27 | TabBarComponent.contextType = ThemeContext 28 | 29 | export default createBottomTabNavigator( 30 | { 31 | Dashboard: { 32 | screen: DashboardStack, 33 | navigationOptions: { 34 | // tabBarLabel: "Dashboard", 35 | tabBarIcon: ({ tintColor }) => ( 36 | 37 | ), 38 | } 39 | }, 40 | Profile: { 41 | screen: Profile, 42 | headerMode: 'none', 43 | navigationOptions: { 44 | headerVisible: false, 45 | // tabBarLabel: "Profile", 46 | tabBarIcon: ({ tintColor }) => ( 47 | 48 | ) 49 | 50 | } 51 | }, 52 | }, 53 | { 54 | tabBarComponent: props => 55 | , 58 | tabBarOptions: { 59 | showLabel: false 60 | }, 61 | 62 | }, 63 | ); -------------------------------------------------------------------------------- /App/Navigation/DashboardStack.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Text, View } from 'react-native' 3 | import { createStackNavigator } from 'react-navigation' 4 | import Dashboard from "../Screens/Dashboard/Dashboard" 5 | import { ThemeContext } from '../Theme/themes'; 6 | 7 | export default createStackNavigator({ 8 | Dashboard: Dashboard, 9 | }) 10 | -------------------------------------------------------------------------------- /App/Navigation/ProfileStack.js: -------------------------------------------------------------------------------- 1 | import { createStackNavigator } from 'react-navigation' 2 | import Profile from "../Screens/Profile/Profile" 3 | 4 | export default createStackNavigator({ 5 | Profile: Profile, 6 | }, 7 | { 8 | initialRouteName: "Profile" 9 | }) 10 | -------------------------------------------------------------------------------- /App/Navigation/SettingsStack.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Text, View } from 'react-native' 3 | import { createStackNavigator } from 'react-navigation' 4 | import Profile from "../Screens/Profile/Profile" 5 | import SettingsStack from "../Screens/Settings/Settings" 6 | import { ThemeContext } from '../Theme/themes'; 7 | import General from "../Screens/Settings/General"; 8 | import About from "../Screens/Settings/About"; 9 | import PrivacyPolicy from "../Screens/Settings/PrivacyPolicy"; 10 | import Help from "../Screens/Settings/Help"; 11 | import Settings from "../Screens/Settings/Settings"; 12 | 13 | export default createStackNavigator({ 14 | Settings: Settings, 15 | General: General, 16 | About: About, 17 | PrivacyPolicy: PrivacyPolicy, 18 | Help: Help, 19 | }, 20 | { 21 | initialRouteName: "Settings" 22 | }) 23 | -------------------------------------------------------------------------------- /App/Screens/AppIntro/AppIntro.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { AppRegistry, Alert } from 'react-native'; 3 | import AppIntro from 'rn-falcon-app-intro'; 4 | 5 | export default class AppIntroSlider extends Component { 6 | onSkipBtnHandle = (index) => { 7 | Alert.alert('Skip'); 8 | console.log(index); 9 | } 10 | doneBtnHandle = () => { 11 | this.props.navigation.navigate("App"); 12 | } 13 | 14 | onSlideChangeHandle = (index, total) => { 15 | console.log(index, total); 16 | } 17 | render() { 18 | const pageArray = [{ 19 | title: 'Hello Human', 20 | description: 'Let me show you around', 21 | img: require('../../Assets/flame-sign-up.png'), 22 | imgStyle: { 23 | height: 80 * 2.5, 24 | width: 109 * 2.5, 25 | }, 26 | backgroundColor: '#02284f', 27 | fontColor: '#fff', 28 | level: 10, 29 | }, { 30 | title: 'Got Goals?', 31 | description: 'Reach your true potential', 32 | img: require('../../Assets/flame-searching.png'), 33 | imgStyle: { 34 | height: 93 * 2.5, 35 | width: 103 * 2.5, 36 | }, 37 | backgroundColor: '#07406d', 38 | fontColor: '#fff', 39 | level: 10, 40 | }]; 41 | return ( 42 | 48 | ); 49 | } 50 | } -------------------------------------------------------------------------------- /App/Screens/Authentication/Auth.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { View, Text, Image } from 'react-native'; 3 | import Button from "../../Components/ThemedComponents/ThemedButton" 4 | import { ThemeContext } from '../../Theme/themes'; 5 | import ThemedHeader from "../../Components/ThemedComponents/ThemedHeader" 6 | class Auth extends React.Component { 7 | 8 | // Hiding the Header for this Screen 9 | static navigationOptions = { 10 | header: null 11 | } 12 | 13 | constructor(props) { 14 | super(props); 15 | this.state = { 16 | }; 17 | } 18 | 19 | componentDidMount() { 20 | } 21 | 22 | render() { 23 | theme = this.context.theme; 24 | return ( 25 | 26 | ReactNativeJunior 27 | 28 | 32 | 33 | 34 | 35 |