├── src ├── components │ ├── svg │ │ ├── style.tsx │ │ ├── Image.tsx │ │ └── Icon.tsx │ ├── screen │ │ ├── style.tsx │ │ └── Screen.tsx │ ├── users │ │ ├── Card.tsx │ │ ├── style.tsx │ │ └── Users.tsx │ ├── avatar │ │ ├── style.tsx │ │ └── Avatar.tsx │ ├── login │ │ ├── Button.tsx │ │ ├── Input.tsx │ │ ├── style.tsx │ │ └── Login.tsx │ ├── index.ts │ ├── flag │ │ ├── Flag.tsx │ │ └── style.tsx │ ├── header │ │ ├── style.tsx │ │ └── Header.tsx │ └── card │ │ ├── style.tsx │ │ └── Card.tsx ├── hooks │ ├── index.ts │ └── useIcon.tsx ├── Provider │ ├── index.ts │ └── AuthProvider.tsx ├── constants │ ├── IMAGES.ts │ ├── index.ts │ ├── STYLE.ts │ └── ICONS.ts ├── screens │ ├── Login.tsx │ ├── Users.tsx │ ├── About.tsx │ ├── index.ts │ ├── SettingsDetails.tsx │ ├── UsersDetails.tsx │ ├── Home.tsx │ ├── Camera.tsx │ ├── Settings.tsx │ ├── DemoList.tsx │ └── Categories.tsx ├── libs │ └── query.ts └── navigator │ ├── Drawer.tsx │ ├── Stack.tsx │ └── Bottom.tsx ├── _editorconfig ├── app.json ├── babel.config.js ├── android ├── app │ ├── debug.keystore │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── 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 │ │ │ ├── assets │ │ │ │ └── fonts │ │ │ │ │ ├── Oswald-Bold.ttf │ │ │ │ │ ├── Oswald-Light.ttf │ │ │ │ │ ├── Oswald-Medium.ttf │ │ │ │ │ ├── Oswald-Regular.ttf │ │ │ │ │ ├── Montserrat-Black.ttf │ │ │ │ │ ├── Montserrat-Bold.ttf │ │ │ │ │ ├── Montserrat-Italic.ttf │ │ │ │ │ ├── Montserrat-Light.ttf │ │ │ │ │ ├── Montserrat-Medium.ttf │ │ │ │ │ ├── Montserrat-Thin.ttf │ │ │ │ │ ├── Oswald-ExtraLight.ttf │ │ │ │ │ ├── Oswald-SemiBold.ttf │ │ │ │ │ ├── Montserrat-Regular.ttf │ │ │ │ │ ├── Montserrat-SemiBold.ttf │ │ │ │ │ ├── Montserrat-BlackItalic.ttf │ │ │ │ │ ├── Montserrat-BoldItalic.ttf │ │ │ │ │ ├── Montserrat-ExtraBold.ttf │ │ │ │ │ ├── Montserrat-ExtraLight.ttf │ │ │ │ │ ├── Montserrat-LightItalic.ttf │ │ │ │ │ ├── Montserrat-ThinItalic.ttf │ │ │ │ │ ├── Montserrat-MediumItalic.ttf │ │ │ │ │ ├── Oswald-VariableFont_wght.ttf │ │ │ │ │ ├── Montserrat-ExtraBoldItalic.ttf │ │ │ │ │ ├── Montserrat-ExtraLightItalic.ttf │ │ │ │ │ └── Montserrat-SemiBoldItalic.ttf │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── puzzle │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── MainApplication.java │ │ │ └── AndroidManifest.xml │ │ └── debug │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ └── com │ │ │ └── puzzle │ │ │ └── ReactNativeFlipper.java │ ├── proguard-rules.pro │ ├── build_defs.bzl │ ├── _BUCK │ └── build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── settings.gradle ├── build.gradle ├── gradle.properties ├── gradlew.bat └── gradlew ├── assets ├── images │ ├── musashi.jpeg │ └── samurai.jpeg └── fonts │ ├── Oswald │ ├── static │ │ ├── Oswald-Bold.ttf │ │ ├── Oswald-Light.ttf │ │ ├── Oswald-Medium.ttf │ │ ├── Oswald-Regular.ttf │ │ ├── Oswald-SemiBold.ttf │ │ └── Oswald-ExtraLight.ttf │ ├── Oswald-VariableFont_wght.ttf │ ├── README.txt │ └── OFL.txt │ └── Montserrat │ ├── Montserrat-Black.ttf │ ├── Montserrat-Bold.ttf │ ├── Montserrat-Italic.ttf │ ├── Montserrat-Light.ttf │ ├── Montserrat-Medium.ttf │ ├── Montserrat-Thin.ttf │ ├── Montserrat-Regular.ttf │ ├── Montserrat-SemiBold.ttf │ ├── Montserrat-BlackItalic.ttf │ ├── Montserrat-BoldItalic.ttf │ ├── Montserrat-ExtraBold.ttf │ ├── Montserrat-ExtraLight.ttf │ ├── Montserrat-LightItalic.ttf │ ├── Montserrat-ThinItalic.ttf │ ├── Montserrat-MediumItalic.ttf │ ├── Montserrat-ExtraBoldItalic.ttf │ ├── Montserrat-ExtraLightItalic.ttf │ ├── Montserrat-SemiBoldItalic.ttf │ └── OFL.txt ├── ios ├── puzzle │ ├── Images.xcassets │ │ ├── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── AppDelegate.h │ ├── main.m │ ├── AppDelegate.m │ ├── Info.plist │ └── LaunchScreen.storyboard ├── puzzle.xcworkspace │ └── contents.xcworkspacedata ├── Podfile ├── puzzleTests │ ├── Info.plist │ └── puzzleTests.m ├── puzzle.xcodeproj │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── puzzle.xcscheme │ └── project.pbxproj └── Podfile.lock ├── react-native.config.js ├── rn-cli-config.js ├── index.js ├── README.md ├── __tests__ └── App-test.js ├── metro.config.js ├── App.tsx ├── package.json └── tsconfig.json /src/components/svg/style.tsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_editorconfig: -------------------------------------------------------------------------------- 1 | # Windows files 2 | [*.bat] 3 | end_of_line = crlf 4 | -------------------------------------------------------------------------------- /src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export {default as useIcon} from './useIcon'; 2 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "puzzle", 3 | "displayName": "puzzle" 4 | } -------------------------------------------------------------------------------- /src/Provider/index.ts: -------------------------------------------------------------------------------- 1 | export {default as AuthProvider} from './AuthProvider'; 2 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:metro-react-native-babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /src/constants/IMAGES.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | musashi: require('../../assets/images/musashi.jpeg') 3 | } 4 | -------------------------------------------------------------------------------- /android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/debug.keystore -------------------------------------------------------------------------------- /assets/images/musashi.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/images/musashi.jpeg -------------------------------------------------------------------------------- /assets/images/samurai.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/images/samurai.jpeg -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | puzzle 3 | 4 | -------------------------------------------------------------------------------- /ios/puzzle/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /assets/fonts/Oswald/static/Oswald-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Oswald/static/Oswald-Bold.ttf -------------------------------------------------------------------------------- /react-native.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | project: { 3 | ios: {}, 4 | android: {}, 5 | }, 6 | assets: ['./assets/fonts'], 7 | }; 8 | -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-Black.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-Italic.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-Light.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-Thin.ttf -------------------------------------------------------------------------------- /assets/fonts/Oswald/static/Oswald-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Oswald/static/Oswald-Light.ttf -------------------------------------------------------------------------------- /assets/fonts/Oswald/static/Oswald-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Oswald/static/Oswald-Medium.ttf -------------------------------------------------------------------------------- /assets/fonts/Oswald/static/Oswald-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Oswald/static/Oswald-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /assets/fonts/Oswald/static/Oswald-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Oswald/static/Oswald-SemiBold.ttf -------------------------------------------------------------------------------- /src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export {default as IMAGES} from './IMAGES'; 2 | export {default as STYLE} from './STYLE'; 3 | export {default as ICONS} from './ICONS'; 4 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Oswald-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Oswald-Bold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Oswald-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Oswald-Light.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-BlackItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-BoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-ExtraBold.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-ExtraLight.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-LightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-ThinItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Oswald/Oswald-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Oswald/Oswald-VariableFont_wght.ttf -------------------------------------------------------------------------------- /assets/fonts/Oswald/static/Oswald-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Oswald/static/Oswald-ExtraLight.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Oswald-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Oswald-Medium.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Oswald-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Oswald-Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Black.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Italic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Light.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Thin.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Oswald-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Oswald-ExtraLight.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Oswald-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Oswald-SemiBold.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat/Montserrat-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/assets/fonts/Montserrat/Montserrat-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-BlackItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-BoldItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-ExtraBold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-ExtraLight.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-LightItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-ThinItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Oswald-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Oswald-VariableFont_wght.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/startcodingia/curso-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /rn-cli-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | getTransformModulePath() { 3 | return require.resolve('react-native-typescript-transformer'); 4 | }, 5 | getSourceExts() { 6 | return ['ts', 'tsx']; 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'puzzle' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | include ':app' 4 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import {AppRegistry} from 'react-native'; 6 | import App from './App'; 7 | import {name as appName} from './app.json'; 8 | 9 | AppRegistry.registerComponent(appName, () => App); 10 | -------------------------------------------------------------------------------- /src/screens/Login.tsx: -------------------------------------------------------------------------------- 1 | //pakcages 2 | import React from 'react'; 3 | 4 | //components 5 | import {LoginComponent} from '../components'; 6 | 7 | export default function LoginScreen() { 8 | return ; 9 | } 10 | -------------------------------------------------------------------------------- /ios/puzzle/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : UIResponder 5 | 6 | @property (nonatomic, strong) UIWindow *window; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /ios/puzzle/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char * argv[]) { 6 | @autoreleasepool { 7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /src/screens/Users.tsx: -------------------------------------------------------------------------------- 1 | //pakcages 2 | import React from 'react'; 3 | 4 | //components 5 | import {UsersComponent} from '../components'; 6 | 7 | export default function UsersScreen({navigation}: any) { 8 | return ; 9 | } 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native-puzzle 2 | Curso de react native 3 | 4 | 5 | instrucciones: 6 | 7 | ``` 8 | git clone https://github.com/hackemateninja/react-native-puzzle.git 9 | yarn install 10 | cd ios && pod install 11 | cd .. 12 | npx react-native run-android 13 | npx react-native run-ios 14 | -------------------------------------------------------------------------------- /ios/puzzle.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /__tests__/App-test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import 'react-native'; 6 | import React from 'react'; 7 | import App from '../App'; 8 | 9 | // Note: test renderer must be required after react-native. 10 | import renderer from 'react-test-renderer'; 11 | 12 | it('renders correctly', () => { 13 | renderer.create(); 14 | }); 15 | -------------------------------------------------------------------------------- /src/components/screen/style.tsx: -------------------------------------------------------------------------------- 1 | // packages 2 | import styled from 'styled-components/native'; 3 | 4 | const ScreenContainer = styled.View` 5 | flex: 1; 6 | background-color: white; 7 | `; 8 | const SafeArea = styled.SafeAreaView` 9 | flex: 1; 10 | `; 11 | 12 | const Bar = styled.StatusBar``; 13 | 14 | export {ScreenContainer, SafeArea, Bar}; 15 | -------------------------------------------------------------------------------- /src/components/users/Card.tsx: -------------------------------------------------------------------------------- 1 | // packages 2 | import React from 'react'; 3 | 4 | import {Text} from 'react-native'; 5 | 6 | interface IItem { 7 | id: string; 8 | name: string; 9 | desc: string; 10 | image: string; 11 | } 12 | 13 | // @ts-ignore 14 | export default function Card({item}: any) { 15 | return {item.name}; 16 | } 17 | -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Metro configuration for React Native 3 | * https://github.com/facebook/react-native 4 | * 5 | * @format 6 | */ 7 | 8 | module.exports = { 9 | transformer: { 10 | getTransformOptions: async () => ({ 11 | transform: { 12 | experimentalImportSupport: false, 13 | inlineRequires: true, 14 | }, 15 | }), 16 | }, 17 | }; 18 | -------------------------------------------------------------------------------- /src/components/avatar/style.tsx: -------------------------------------------------------------------------------- 1 | //packages 2 | import styled from 'styled-components/native'; 3 | 4 | const AvatarContainer = styled.View` 5 | width: 40px; 6 | height: 40px; 7 | background-color: red; 8 | border-radius: 40px; 9 | overflow: hidden; 10 | `; 11 | 12 | const AvatarImg = styled.Image` 13 | width: 100%; 14 | height: 100%; 15 | `; 16 | 17 | export {AvatarContainer, AvatarImg}; 18 | -------------------------------------------------------------------------------- /src/components/avatar/Avatar.tsx: -------------------------------------------------------------------------------- 1 | //packages 2 | import React from 'react'; 3 | 4 | ///styles 5 | import {AvatarImg, AvatarContainer} from './style'; 6 | 7 | //constants 8 | import {IMAGES} from '../../constants'; 9 | 10 | export default function Avatar() { 11 | return ( 12 | 13 | 14 | 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /src/screens/About.tsx: -------------------------------------------------------------------------------- 1 | //pakcages 2 | import React from 'react'; 3 | 4 | //core components 5 | import {Text} from 'react-native'; 6 | 7 | //components 8 | import {Header, Screen} from '../components'; 9 | 10 | export default function AboutScreen({navigation}: any) { 11 | return ( 12 | 13 |
14 | Hola mundo About 15 | 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /src/components/login/Button.tsx: -------------------------------------------------------------------------------- 1 | //pakcages 2 | import React from 'react'; 3 | 4 | // styles 5 | import {Button, TextButton} from './style'; 6 | 7 | interface IButtonComponent { 8 | title: string; 9 | onPress: () => void; 10 | } 11 | 12 | export default function ButtonComponent({title, onPress}: IButtonComponent) { 13 | return ( 14 | 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/puzzle/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.puzzle; 2 | 3 | import com.facebook.react.ReactActivity; 4 | 5 | public class MainActivity extends ReactActivity { 6 | 7 | /** 8 | * Returns the name of the main component registered from JavaScript. This is used to schedule 9 | * rendering of the component. 10 | */ 11 | @Override 12 | protected String getMainComponentName() { 13 | return "puzzle"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/libs/query.ts: -------------------------------------------------------------------------------- 1 | export default async function query({query, variables = {}}) { 2 | const result = await fetch( 3 | 'https://api-us-east-1.graphcms.com/v2/ckmp9g1vc4egv01xmc5co9954/master', 4 | { 5 | method: 'POST', 6 | headers: { 7 | 'Content-Type': 'application/json', 8 | }, 9 | body: JSON.stringify({query, variables}), 10 | }, 11 | ).then(response => response.json()); 12 | 13 | return result.data; 14 | } 15 | -------------------------------------------------------------------------------- /src/components/svg/Image.tsx: -------------------------------------------------------------------------------- 1 | // packages 2 | import * as React from "react" 3 | import Svg, { SvgProps, Path } from "react-native-svg" 4 | 5 | export default function Image(props: SvgProps) { 6 | return ( 7 | 14 | 15 | 16 | ) 17 | } 18 | -------------------------------------------------------------------------------- /src/components/screen/Screen.tsx: -------------------------------------------------------------------------------- 1 | //packages 2 | import React from 'react'; 3 | 4 | //styles 5 | import {SafeArea, ScreenContainer, Bar} from './style'; 6 | 7 | // @ts-ignore 8 | export default function Screen({children}: any) { 9 | return ( 10 | 13 | 14 | {children} 15 | 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -------------------------------------------------------------------------------- /src/components/index.ts: -------------------------------------------------------------------------------- 1 | export {default as Avatar} from './avatar/Avatar'; 2 | export {default as Card} from './card/Card'; 3 | export {default as Flag} from './flag/Flag'; 4 | export {default as Header} from './header/Header'; 5 | export {default as LoginComponent} from './login/Login'; 6 | export {default as Screen} from './screen/Screen'; 7 | export {default as ImageSvg} from './svg/Image'; 8 | export {default as Icon} from './svg/Icon'; 9 | export {default as UsersComponent} from './users/Users'; 10 | -------------------------------------------------------------------------------- /src/screens/index.ts: -------------------------------------------------------------------------------- 1 | export {default as About} from './About'; 2 | export {default as Camera} from './Camera'; 3 | export {default as Categories} from './Categories'; 4 | export {default as HomeScreen} from './Home'; 5 | export {default as LoginScreen} from './Login'; 6 | export {default as Settings} from './Settings'; 7 | export {default as SettingsDetails} from './SettingsDetails'; 8 | export {default as Users} from './Users'; 9 | export {default as UsersDetails} from './UsersDetails'; 10 | export {default as DemoList} from './DemoList'; 11 | -------------------------------------------------------------------------------- /src/Provider/AuthProvider.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | interface IAuth { 4 | isLogged?: boolean; 5 | handleLogin?: () => void; 6 | } 7 | 8 | export const Auth = React.createContext({}); 9 | 10 | export default function AuthProvider({children}: any) { 11 | const [isLogged, setIsLogged] = React.useState(true); 12 | 13 | const handleLogin = () => { 14 | setIsLogged(prevState => !prevState); 15 | }; 16 | 17 | return ( 18 | {children} 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /src/screens/SettingsDetails.tsx: -------------------------------------------------------------------------------- 1 | //pakcages 2 | import React from 'react'; 3 | 4 | //core components 5 | import {Text} from 'react-native'; 6 | 7 | //components 8 | import {Header, Screen} from '../components'; 9 | 10 | export default function SettingsDetailsScreen({navigation}: any) { 11 | return ( 12 | 13 |
navigation.openDrawer()} 16 | title="Settings details" 17 | /> 18 | Hola mundo settings details 19 | 20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/screens/UsersDetails.tsx: -------------------------------------------------------------------------------- 1 | //pakcages 2 | import React from 'react'; 3 | 4 | //core components 5 | import {Button, Text} from 'react-native'; 6 | 7 | //components 8 | import {Header, Screen} from '../components'; 9 | 10 | export default function UsersDetailsScreen({navigation}: any) { 11 | return ( 12 | 13 |
navigation.openDrawer()} 16 | title="Users details" 17 | /> 18 | Hola mundo users details 19 |