├── .watchmanconfig ├── src ├── redux │ ├── actions │ │ ├── saveToken.js │ │ ├── getProducts.js │ │ ├── getUserProfile.js │ │ ├── actionTypes.js │ │ └── getCategory.js │ ├── index.js │ ├── store │ │ └── index.js │ └── reducers │ │ ├── index.js │ │ ├── getProducts.js │ │ ├── authLoginReducer.js │ │ ├── authRegisterReducer.js │ │ ├── getUserProfile.js │ │ └── getCategoryReducer.js ├── components │ ├── index.js │ ├── atoms │ │ ├── Space │ │ │ └── index.js │ │ ├── IconContainer │ │ │ └── index.js │ │ ├── Border │ │ │ └── index.js │ │ ├── Dot │ │ │ └── index.js │ │ ├── TextField │ │ │ └── index.js │ │ ├── index.js │ │ ├── SafeAreaViewCustom │ │ │ └── index.js │ │ ├── TextInput │ │ │ └── index.js │ │ ├── Row │ │ │ └── index.js │ │ └── LogoCoffeeCustom │ │ │ └── index.js │ └── molecules │ │ ├── ModalCenter │ │ └── index.js │ │ ├── ListText │ │ └── index.js │ │ ├── Header │ │ └── index.js │ │ ├── index.js │ │ ├── FormTextSubtext │ │ └── index.js │ │ ├── IconText │ │ └── index.js │ │ ├── TextSubtext │ │ └── index.js │ │ ├── TextPlainNav │ │ └── index.js │ │ ├── TextSubtextInput │ │ └── index.js │ │ ├── IconTextNav │ │ └── index.js │ │ ├── RadioFormCustom │ │ └── index.js │ │ ├── NavHeader │ │ └── index.js │ │ ├── NavHeaderSingleButton │ │ └── index.js │ │ ├── ModalCenterTwoButton │ │ └── index.js │ │ ├── ModalBottom │ │ └── index.js │ │ ├── CardTextButton │ │ └── index.js │ │ ├── CardImageTextButton │ │ └── index.js │ │ └── TextButtonRow │ │ └── index.js ├── services │ ├── index.js │ ├── httpService.js │ └── userService.js ├── assets │ ├── index.js │ ├── images │ │ ├── banner_dummy.jpg │ │ ├── drinks_cup_background.png │ │ ├── mae-mu-pastry-unsplash.jpeg │ │ ├── header_container_pattern_bg.png │ │ ├── coin-michael-longmire-by-unsplash.jpeg │ │ └── index.js │ ├── fonts │ │ ├── Montserrat-Bold.ttf │ │ ├── Montserrat-Thin.ttf │ │ ├── CircularStd-Black.ttf │ │ ├── CircularStd-Bold.ttf │ │ ├── CircularStd-Book.ttf │ │ ├── CircularStd-Medium.ttf │ │ ├── Montserrat-Black.ttf │ │ ├── Montserrat-Italic.ttf │ │ ├── Montserrat-Light.ttf │ │ ├── Montserrat-Medium.ttf │ │ ├── Montserrat-Regular.ttf │ │ ├── Montserrat-ExtraBold.ttf │ │ ├── Montserrat-SemiBold.ttf │ │ ├── CircularStd-BlackItalic.ttf │ │ ├── CircularStd-BoldItalic.ttf │ │ ├── CircularStd-BookItalic.ttf │ │ ├── Montserrat-BlackItalic.ttf │ │ ├── Montserrat-BoldItalic.ttf │ │ ├── Montserrat-ExtraLight.ttf │ │ ├── Montserrat-LightItalic.ttf │ │ ├── Montserrat-MediumItalic.ttf │ │ ├── Montserrat-ThinItalic.ttf │ │ ├── CircularStd-MediumItalic.ttf │ │ ├── Montserrat-SemiBoldItalic.ttf │ │ ├── Montserrat-ExtraBoldItalic.ttf │ │ └── Montserrat-ExtraLightItalic.ttf │ ├── dummy │ │ ├── user_sanengineer.jpg │ │ ├── user_marques-brownlee.jpg │ │ ├── coffee-cup-by-pixzolo-small.jpeg │ │ └── index.js │ ├── logo │ │ ├── logo_coffeeshop_square_white@3x.png │ │ ├── index.js │ │ ├── logo_coffeeshop_square_round_white_blue.svg │ │ ├── gojek-logo-2019.svg │ │ └── grab-logo-word.svg │ └── icons │ │ ├── icon_chevron_down.svg │ │ ├── icon_chevron_up.svg │ │ ├── icon_cross_big.svg │ │ ├── icon_cross_small.svg │ │ ├── icon_search_rounded.svg │ │ ├── icon_search_rounded_active.svg │ │ ├── icon_angle-left-big.svg │ │ ├── icon_chevron_down_big.svg │ │ ├── icon_bio.svg │ │ ├── icon_menu_rounded_deactive.svg │ │ ├── icon_heart-enable.svg │ │ ├── icon_profile_rounded_active.svg │ │ ├── icon_more-horizontal.svg │ │ ├── icon_home_rounded_active.svg │ │ ├── icon_start-enable.svg │ │ ├── icon_start-disable.svg │ │ ├── icon_trash.svg │ │ ├── icon_trash-grey.svg │ │ ├── icon_arrow-right.svg │ │ ├── icon_profile_rounded.svg │ │ ├── icon_shipping.svg │ │ ├── icon_percent_big_blue.svg │ │ ├── icon_home_rounded.svg │ │ ├── icon_security.svg │ │ ├── icon_heart-disable.svg │ │ ├── icon_minus-circle.svg │ │ ├── icon_menu_rounded_active.svg │ │ ├── icon_cart_rounded_active.svg │ │ ├── icon_plus-circle.svg │ │ ├── icon_check-circle.svg │ │ ├── icon_info-circle.svg │ │ ├── icon_cart_rounded.svg │ │ └── index.js ├── utils │ ├── index.js │ ├── DismissKeyboard │ │ └── index.js │ ├── KeyboardScrollUpForms │ │ └── index.js │ ├── useForm │ │ └── index.js │ └── storage │ │ └── index.js ├── stacks │ ├── Help │ │ └── index.js │ ├── TermCondition │ │ └── index.js │ ├── Security │ │ └── index.js │ ├── SuccessLogin │ │ └── index.js │ ├── BioEdit │ │ └── index.js │ ├── SuccessRegister │ │ └── index.js │ ├── index.js │ ├── AddNoteOrder │ │ └── index.js │ ├── SplashScreen │ │ └── index.js │ ├── EditAdddress │ │ └── index.js │ ├── NewAddress │ │ └── index.js │ ├── Bio │ │ └── index.js │ ├── StartScreen │ │ └── index.js │ └── Account │ │ └── index.js └── main.js ├── .editorconfig ├── App.js ├── README.md ├── app.json ├── .eslintrc.js ├── ios ├── assets │ └── app.json ├── EcommerceWithReactNative │ ├── Images.xcassets │ │ ├── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── icon_coffeeshop_app@2x.png │ │ │ ├── icon_coffeeshop_app@3x.png │ │ │ ├── icon_coffeeshop_app_store.png │ │ │ ├── icon_coffeeshop_settings@2x.png │ │ │ ├── icon_coffeeshop_settings@3x.png │ │ │ ├── icon_coffeeshop_spotlight@2x.png │ │ │ ├── icon_coffeeshop_spotlight@3x.png │ │ │ ├── icon_coffeeshop_notification@2x.png │ │ │ ├── icon_coffeeshop_notification@3x.png │ │ │ └── Contents.json │ │ └── SplashIcon.imageset │ │ │ ├── splash_icon_coffeeshop_app.png │ │ │ ├── splash_icon_coffeeshop_app@2x.png │ │ │ ├── splash_icon_coffeeshop_app@3x.png │ │ │ └── Contents.json │ ├── assets │ │ └── fonts │ │ │ ├── Montserrat-Bold.ttf │ │ │ ├── Montserrat-Thin.ttf │ │ │ ├── CircularStd-Black.ttf │ │ │ ├── CircularStd-Bold.ttf │ │ │ ├── CircularStd-Book.ttf │ │ │ ├── CircularStd-Medium.ttf │ │ │ ├── Montserrat-Black.ttf │ │ │ ├── Montserrat-Italic.ttf │ │ │ ├── Montserrat-Light.ttf │ │ │ ├── Montserrat-Medium.ttf │ │ │ ├── Montserrat-Regular.ttf │ │ │ ├── Montserrat-ExtraBold.ttf │ │ │ ├── Montserrat-SemiBold.ttf │ │ │ ├── CircularStd-BlackItalic.ttf │ │ │ ├── CircularStd-BoldItalic.ttf │ │ │ ├── CircularStd-BookItalic.ttf │ │ │ ├── Montserrat-BlackItalic.ttf │ │ │ ├── Montserrat-BoldItalic.ttf │ │ │ ├── Montserrat-ExtraLight.ttf │ │ │ ├── Montserrat-LightItalic.ttf │ │ │ ├── Montserrat-MediumItalic.ttf │ │ │ ├── Montserrat-ThinItalic.ttf │ │ │ ├── CircularStd-MediumItalic.ttf │ │ │ ├── Montserrat-SemiBoldItalic.ttf │ │ │ ├── Montserrat-ExtraBoldItalic.ttf │ │ │ └── Montserrat-ExtraLightItalic.ttf │ ├── AppDelegate.h │ ├── main.m │ ├── AppDelegate.m │ ├── LaunchScreen.storyboard │ └── Info.plist ├── EcommerceWithReactNative.xcworkspace │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── contents.xcworkspacedata ├── EcommerceWithReactNativeTests │ ├── Info.plist │ └── EcommerceWithReactNativeTests.m └── Podfile ├── 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 │ │ │ │ │ ├── CircularStd-Bold.ttf │ │ │ │ │ ├── CircularStd-Book.ttf │ │ │ │ │ ├── Montserrat-Black.ttf │ │ │ │ │ ├── Montserrat-Bold.ttf │ │ │ │ │ ├── Montserrat-Light.ttf │ │ │ │ │ ├── Montserrat-Thin.ttf │ │ │ │ │ ├── CircularStd-Black.ttf │ │ │ │ │ ├── CircularStd-Medium.ttf │ │ │ │ │ ├── Montserrat-Italic.ttf │ │ │ │ │ ├── Montserrat-Medium.ttf │ │ │ │ │ ├── Montserrat-Regular.ttf │ │ │ │ │ ├── Montserrat-BoldItalic.ttf │ │ │ │ │ ├── Montserrat-ExtraBold.ttf │ │ │ │ │ ├── Montserrat-ExtraLight.ttf │ │ │ │ │ ├── Montserrat-SemiBold.ttf │ │ │ │ │ ├── Montserrat-ThinItalic.ttf │ │ │ │ │ ├── CircularStd-BlackItalic.ttf │ │ │ │ │ ├── CircularStd-BoldItalic.ttf │ │ │ │ │ ├── CircularStd-BookItalic.ttf │ │ │ │ │ ├── Montserrat-BlackItalic.ttf │ │ │ │ │ ├── Montserrat-LightItalic.ttf │ │ │ │ │ ├── Montserrat-MediumItalic.ttf │ │ │ │ │ ├── CircularStd-MediumItalic.ttf │ │ │ │ │ ├── Montserrat-ExtraBoldItalic.ttf │ │ │ │ │ ├── Montserrat-SemiBoldItalic.ttf │ │ │ │ │ └── Montserrat-ExtraLightItalic.ttf │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── ecommercewithreactnative │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── MainApplication.java │ │ │ └── AndroidManifest.xml │ │ └── debug │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ └── com │ │ │ └── ecommercewithreactnative │ │ │ └── ReactNativeFlipper.java │ ├── proguard-rules.pro │ ├── build_defs.bzl │ └── _BUCK ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── settings.gradle ├── build.gradle ├── gradle.properties └── gradlew.bat ├── .buckconfig ├── .gitattributes ├── react-native.config.js ├── .prettierrc.js ├── __tests__ └── App-test.js ├── index.js ├── babel.config.js ├── env-config.js ├── metro.config.js ├── .gitignore ├── .flowconfig └── package.json /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /src/redux/actions/saveToken.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Windows files 2 | [*.bat] 3 | end_of_line = crlf 4 | -------------------------------------------------------------------------------- /App.js: -------------------------------------------------------------------------------- 1 | import App from './src/main'; 2 | 3 | export default App; 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Create Coffee Shop App (E-Commerce) With React Native 2 | -------------------------------------------------------------------------------- /src/redux/index.js: -------------------------------------------------------------------------------- 1 | export * from './actions'; 2 | export * from './store'; 3 | -------------------------------------------------------------------------------- /src/components/index.js: -------------------------------------------------------------------------------- 1 | export * from './atoms'; 2 | export * from './molecules'; 3 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EcommerceWithReactNative", 3 | "displayName": "Coffee Shop" 4 | } 5 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native-community', 4 | }; 5 | -------------------------------------------------------------------------------- /src/services/index.js: -------------------------------------------------------------------------------- 1 | import UserServices from './userService'; 2 | 3 | export { UserServices }; 4 | -------------------------------------------------------------------------------- /ios/assets/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EcommerceWithReactNative", 3 | "displayName": "Coffee Shop" 4 | } 5 | -------------------------------------------------------------------------------- /android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/debug.keystore -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Coffee Shop 3 | 4 | -------------------------------------------------------------------------------- /src/assets/index.js: -------------------------------------------------------------------------------- 1 | export * from './icons'; 2 | export * from './dummy'; 3 | export * from './images'; 4 | export * from './logo'; 5 | -------------------------------------------------------------------------------- /src/assets/images/banner_dummy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/images/banner_dummy.jpg -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-Thin.ttf -------------------------------------------------------------------------------- /.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Windows files should use crlf line endings 2 | # https://help.github.com/articles/dealing-with-line-endings/ 3 | *.bat text eol=crlf 4 | -------------------------------------------------------------------------------- /src/assets/dummy/user_sanengineer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/dummy/user_sanengineer.jpg -------------------------------------------------------------------------------- /src/assets/fonts/CircularStd-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/CircularStd-Black.ttf -------------------------------------------------------------------------------- /src/assets/fonts/CircularStd-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/CircularStd-Bold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/CircularStd-Book.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/CircularStd-Book.ttf -------------------------------------------------------------------------------- /src/assets/fonts/CircularStd-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/CircularStd-Medium.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-Black.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-Italic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-Light.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /react-native.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | project: { 3 | ios: {}, 4 | android: {}, 5 | }, 6 | assets: ['./src/assets/fonts'], 7 | }; 8 | -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-ExtraBold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /src/assets/dummy/user_marques-brownlee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/dummy/user_marques-brownlee.jpg -------------------------------------------------------------------------------- /src/assets/fonts/CircularStd-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/CircularStd-BlackItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/CircularStd-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/CircularStd-BoldItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/CircularStd-BookItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/CircularStd-BookItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-BlackItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-BoldItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-ExtraLight.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-LightItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-ThinItalic.ttf -------------------------------------------------------------------------------- /src/assets/images/drinks_cup_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/images/drinks_cup_background.png -------------------------------------------------------------------------------- /src/assets/fonts/CircularStd-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/CircularStd-MediumItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /src/assets/images/mae-mu-pastry-unsplash.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/images/mae-mu-pastry-unsplash.jpeg -------------------------------------------------------------------------------- /src/assets/dummy/coffee-cup-by-pixzolo-small.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/dummy/coffee-cup-by-pixzolo-small.jpeg -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/fonts/Montserrat-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /src/assets/images/header_container_pattern_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/images/header_container_pattern_bg.png -------------------------------------------------------------------------------- /src/assets/logo/logo_coffeeshop_square_white@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/logo/logo_coffeeshop_square_white@3x.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/CircularStd-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/CircularStd-Bold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/CircularStd-Book.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/CircularStd-Book.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-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/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Light.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Thin.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-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/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-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/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/CircularStd-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/CircularStd-Black.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/CircularStd-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/CircularStd-Medium.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Italic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/assets/images/coin-michael-longmire-by-unsplash.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/src/assets/images/coin-michael-longmire-by-unsplash.jpeg -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-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/sanengineer/ecommerce-with-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/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-ExtraLight.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-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/sanengineer/ecommerce-with-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/sanengineer/ecommerce-with-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/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/CircularStd-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/CircularStd-BlackItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/CircularStd-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/CircularStd-BoldItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/CircularStd-BookItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/CircularStd-BookItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-BlackItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-LightItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-Thin.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/CircularStd-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/CircularStd-MediumItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/CircularStd-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/CircularStd-Black.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/CircularStd-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/CircularStd-Bold.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/CircularStd-Book.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/CircularStd-Book.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/CircularStd-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/CircularStd-Medium.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-Black.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-Italic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-Light.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Montserrat-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/android/app/src/main/assets/fonts/Montserrat-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-ExtraBold.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/CircularStd-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/CircularStd-BlackItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/CircularStd-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/CircularStd-BoldItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/CircularStd-BookItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/CircularStd-BookItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-BlackItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-BoldItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-ExtraLight.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-LightItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-ThinItalic.ttf -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | bracketSpacing: true, 3 | jsxBracketSameLine: true, 4 | singleQuote: true, 5 | trailingComma: 'all', 6 | arrowParens: 'avoid', 7 | tabWidth: 2, 8 | }; 9 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/CircularStd-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/CircularStd-MediumItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/assets/fonts/Montserrat-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/assets/fonts/Montserrat-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'EcommerceWithReactNative' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | include ':app' 4 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_app@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_app@2x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_app@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_app@3x.png -------------------------------------------------------------------------------- /src/components/atoms/Space/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { View } from 'react-native'; 3 | 4 | const Space = ({ width, height }) => { 5 | return ; 6 | }; 7 | 8 | export default Space; 9 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_app_store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_app_store.png -------------------------------------------------------------------------------- /src/assets/icons/icon_chevron_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icons/icon_chevron_up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_settings@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_settings@2x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_settings@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_settings@3x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_spotlight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_spotlight@2x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_spotlight@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_spotlight@3x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/SplashIcon.imageset/splash_icon_coffeeshop_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/SplashIcon.imageset/splash_icon_coffeeshop_app.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : UIResponder 5 | 6 | @property (nonatomic, strong) UIWindow *window; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_notification@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_notification@2x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_notification@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/AppIcon.appiconset/icon_coffeeshop_notification@3x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/SplashIcon.imageset/splash_icon_coffeeshop_app@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/SplashIcon.imageset/splash_icon_coffeeshop_app@2x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/SplashIcon.imageset/splash_icon_coffeeshop_app@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sanengineer/ecommerce-with-react-native/HEAD/ios/EcommerceWithReactNative/Images.xcassets/SplashIcon.imageset/splash_icon_coffeeshop_app@3x.png -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/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 | -------------------------------------------------------------------------------- /src/assets/dummy/index.js: -------------------------------------------------------------------------------- 1 | import ImageProfileDummy from './user_marques-brownlee.jpg'; 2 | import ImageProfileSan from './user_sanengineer.jpg'; 3 | import CoffeeCup from './coffee-cup-by-pixzolo-small.jpeg'; 4 | 5 | export { ImageProfileDummy, CoffeeCup, ImageProfileSan }; 6 | -------------------------------------------------------------------------------- /src/utils/index.js: -------------------------------------------------------------------------------- 1 | import DismissKeyboard from './DismissKeyboard'; 2 | import KeyboardScrollUpForms from './KeyboardScrollUpForms'; 3 | import useForm from './useForm'; 4 | import { getData, storeData } from './storage'; 5 | 6 | export { DismissKeyboard, KeyboardScrollUpForms, useForm, getData, storeData }; 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /__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 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/icons/icon_cross_big.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/assets/icons/icon_cross_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/utils/DismissKeyboard/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { TouchableNativeFeedback, Keyboard } from 'react-native'; 3 | 4 | const DismissKeyboard = ({ children }) => ( 5 | Keyboard.dismiss()}> 6 | {children} 7 | 8 | ); 9 | 10 | export default DismissKeyboard; 11 | -------------------------------------------------------------------------------- /src/utils/KeyboardScrollUpForms/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { KeyboardAvoidingView } from 'react-native'; 3 | 4 | const KeyboardScrollUpForms = ({ children, ...props }) => ( 5 | 6 | {children} 7 | 8 | ); 9 | 10 | export default KeyboardScrollUpForms; 11 | -------------------------------------------------------------------------------- /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 | import { View, Text } from 'react-native'; 9 | 10 | AppRegistry.registerComponent(appName, () => App); 11 | 12 | Text.defaultProps = Text.defaultProps || {}; 13 | Text.defaultProps.allowFontScaling = false; 14 | -------------------------------------------------------------------------------- /src/components/atoms/IconContainer/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, View } from 'react-native'; 3 | 4 | const IconContainer = ({ children }) => { 5 | return {children}; 6 | }; 7 | 8 | export default IconContainer; 9 | 10 | const styles = StyleSheet.create({ 11 | container: { 12 | justifyContent: 'center', 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /src/assets/icons/icon_search_rounded.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/assets/icons/icon_search_rounded_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:metro-react-native-babel-preset'], 3 | plugins: [ 4 | [ 5 | 'module:react-native-dotenv', 6 | { 7 | moduleName: '@env', 8 | path: '.env', 9 | blocklist: null, 10 | allowlist: null, 11 | safe: false, 12 | allowUndefined: true, 13 | verbose: false, 14 | }, 15 | ], 16 | ], 17 | }; 18 | -------------------------------------------------------------------------------- /src/services/httpService.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | import envConfig from '../../env-config'; 3 | import { hostname, port, cloudUrl, login } from './hostnameServerApi'; 4 | 5 | const api = axios.create({ 6 | baseURL: `${cloudUrl}`, 7 | headers: { 8 | 'content-type': 'application/json', 9 | }, 10 | }); 11 | 12 | // 13 | //debug 14 | console.log('API:', `${cloudUrl}`, '\n', 'URL: ' + login); 15 | 16 | export default api; 17 | -------------------------------------------------------------------------------- /src/utils/useForm/index.js: -------------------------------------------------------------------------------- 1 | import { useState } from 'react'; 2 | 3 | const useForm = initialValue => { 4 | const [form, setForm] = useState(initialValue); 5 | 6 | return [ 7 | form, 8 | (formType, formValue) => { 9 | if (formType === 'reset') { 10 | return setForm(initialValue); 11 | } 12 | 13 | return setForm({ ...form, [formType]: formValue }); 14 | }, 15 | ]; 16 | }; 17 | 18 | export default useForm; 19 | -------------------------------------------------------------------------------- /src/assets/icons/icon_angle-left-big.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/components/atoms/Border/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View } from 'react-native'; 3 | 4 | const Border = ({ height = 10, backgroundColor = '#EFEFEF' }) => ( 5 | 6 | ); 7 | 8 | export default Border; 9 | 10 | const styles = StyleSheet.create({ 11 | box: (height, backgroundColor) => ({ 12 | height: height, 13 | backgroundColor: backgroundColor, 14 | }), 15 | }); 16 | -------------------------------------------------------------------------------- /src/assets/images/index.js: -------------------------------------------------------------------------------- 1 | import ImageHeaderBg from './header_container_pattern_bg.png'; 2 | import ImageBannerDummy from './banner_dummy.jpg'; 3 | import ImageCoinBg from './coin-michael-longmire-by-unsplash.jpeg'; 4 | import ImageHeaderBgBlue from './drinks_cup_background.png'; 5 | import ImagePastry from './mae-mu-pastry-unsplash.jpeg'; 6 | 7 | export { 8 | ImageHeaderBg, 9 | ImageBannerDummy, 10 | ImageCoinBg, 11 | ImageHeaderBgBlue, 12 | ImagePastry, 13 | }; 14 | -------------------------------------------------------------------------------- /src/assets/logo/index.js: -------------------------------------------------------------------------------- 1 | import LogoGojek from './gojek-logo-2019.svg'; 2 | import LogoGrab from './grab-logo-word.svg'; 3 | import LogoCoffeeShop from './logo_coffeeshop_square_white.svg'; 4 | import LogoCoffeeShopBlueWhitSquareRound from './logo_coffeeshop_square_round_white_blue.svg'; 5 | import LogoMidtrans from './logo_midtrans.svg'; 6 | 7 | export { 8 | LogoGojek, 9 | LogoGrab, 10 | LogoCoffeeShop, 11 | LogoCoffeeShopBlueWhitSquareRound, 12 | LogoMidtrans, 13 | }; 14 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/ecommercewithreactnative/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.ecommercewithreactnative; 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 "EcommerceWithReactNative"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/assets/icons/icon_chevron_down_big.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/components/atoms/Dot/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, View } from 'react-native'; 3 | 4 | const Dot = ({ square = 7, borderRadius = 100, bgColor = '#000' }) => { 5 | return ; 6 | }; 7 | 8 | export default Dot; 9 | 10 | const styles = StyleSheet.create({ 11 | dot: (square, borderRadius, bgColor) => ({ 12 | height: square, 13 | width: square, 14 | borderRadius: borderRadius, 15 | backgroundColor: bgColor, 16 | }), 17 | }); 18 | -------------------------------------------------------------------------------- /src/stacks/Help/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View, SafeAreaView } from 'react-native'; 3 | import { NavHeader } from '../../components'; 4 | 5 | const Help = ({ navigation, route }) => { 6 | return ( 7 | 8 | 9 | 10 | ); 11 | }; 12 | 13 | export default Help; 14 | 15 | const styles = StyleSheet.create({ 16 | safeContainer: { 17 | flex: 1, 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /src/stacks/TermCondition/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View, SafeAreaView } from 'react-native'; 3 | import { NavHeader } from '../../components'; 4 | 5 | const TermCondition = ({ navigation, route }) => { 6 | return ( 7 | 8 | 9 | 10 | ); 11 | }; 12 | 13 | export default TermCondition; 14 | 15 | const styles = StyleSheet.create({ 16 | safeContianer: { 17 | flex: 1, 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /src/redux/store/index.js: -------------------------------------------------------------------------------- 1 | import { applyMiddleware, createStore } from 'redux'; 2 | import thunkMiddleware from 'redux-thunk'; 3 | import reducers from '../reducers'; 4 | import { composeWithDevTools } from 'redux-devtools-extension/developmentOnly'; 5 | 6 | const initialState = {}; 7 | 8 | const middleware = [thunkMiddleware]; 9 | 10 | const store = createStore( 11 | reducers, 12 | initialState, 13 | composeWithDevTools(applyMiddleware(...middleware)), 14 | ); 15 | 16 | // 17 | //debug 18 | console.log('middleware', middleware); 19 | 20 | export default store; 21 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/assets/icons/icon_bio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNative/Images.xcassets/SplashIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "splash_icon_coffeeshop_app.png", 5 | "idiom" : "iphone", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "splash_icon_coffeeshop_app@2x.png", 10 | "idiom" : "iphone", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "splash_icon_coffeeshop_app@3x.png", 15 | "idiom" : "iphone", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/assets/icons/icon_menu_rounded_deactive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/components/atoms/TextField/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View } from 'react-native'; 3 | 4 | const TextField = ({ 5 | textField, 6 | fontFamily = 'CircularStd-Book', 7 | fontSize = 14, 8 | }) => { 9 | return ( 10 | 11 | {textField} 12 | 13 | ); 14 | }; 15 | 16 | export default TextField; 17 | 18 | const styles = StyleSheet.compose({ 19 | text: (fontFamily, fontSize) => ({ 20 | fontFamily: fontFamily, 21 | fontSize: fontSize, 22 | textAlign: 'center', 23 | }), 24 | }); 25 | -------------------------------------------------------------------------------- /env-config.js: -------------------------------------------------------------------------------- 1 | import { 2 | LOCAL_API_HOSTNAME, 3 | LOCAL_API_PORT, 4 | LOCAL_API_VERSION, 5 | LOCAL_API_PATH_LOGIN, 6 | LOCAL_API_PATH_REGISTER, 7 | LOCAL_API_PATH_USER, 8 | LOCAL_API_PATH_PRODUCT, 9 | LOCAL_API_PATH_VARIAN, 10 | LOCAL_API_PATH_CATEGORY, 11 | LOCAL_API_PATH_CART, 12 | } from '@env'; 13 | 14 | export default { 15 | LOCAL_API_HOSTNAME, 16 | LOCAL_API_PORT, 17 | LOCAL_API_VERSION, 18 | LOCAL_API_PATH_LOGIN, 19 | LOCAL_API_PATH_REGISTER, 20 | LOCAL_API_PATH_USER, 21 | LOCAL_API_PATH_PRODUCT, 22 | LOCAL_API_PATH_VARIAN, 23 | LOCAL_API_PATH_CATEGORY, 24 | LOCAL_API_PATH_CART, 25 | }; 26 | -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Metro configuration for React Native 3 | * https://github.com/facebook/react-native 4 | * 5 | * @format 6 | */ 7 | 8 | const { getDefaultConfig } = require('metro-config'); 9 | 10 | module.exports = (async () => { 11 | const { 12 | resolver: { sourceExts, assetExts }, 13 | } = await getDefaultConfig(); 14 | return { 15 | transformer: { 16 | babelTransformerPath: require.resolve('react-native-svg-transformer'), 17 | }, 18 | resolver: { 19 | assetExts: assetExts.filter(ext => ext !== 'svg'), 20 | sourceExts: [...sourceExts, 'svg'], 21 | }, 22 | }; 23 | })(); 24 | -------------------------------------------------------------------------------- /src/assets/icons/icon_heart-enable.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/components/atoms/index.js: -------------------------------------------------------------------------------- 1 | import Space from './Space'; 2 | import Button, { Buttons } from './Button'; 3 | import TextField from './TextField'; 4 | import TextInput from './TextInput'; 5 | import IconContainer from './IconContainer'; 6 | import Row from './Row'; 7 | import Dot from './Dot'; 8 | import Border from './Border'; 9 | import LogoCoffeeCustom from './LogoCoffeeCustom'; 10 | import SafeAreaViewCustom from './SafeAreaViewCustom'; 11 | 12 | export { 13 | Space, 14 | Button, 15 | Buttons, 16 | TextField, 17 | TextInput, 18 | IconContainer, 19 | Row, 20 | Dot, 21 | Border, 22 | LogoCoffeeCustom, 23 | SafeAreaViewCustom, 24 | }; 25 | -------------------------------------------------------------------------------- /src/stacks/Security/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SafeAreaView } from 'react-native'; 3 | import { StyleSheet, Text, View } from 'react-native'; 4 | import { IconTextNav, NavHeader } from '../../components'; 5 | 6 | const Security = ({ navigation, route }) => { 7 | return ( 8 | 9 | 10 | 11 | 12 | 13 | ); 14 | }; 15 | 16 | export default Security; 17 | 18 | const styles = StyleSheet.create({ 19 | safeContainer: { 20 | flex: 1, 21 | backgroundColor: '#fff', 22 | }, 23 | }); 24 | -------------------------------------------------------------------------------- /src/assets/icons/icon_profile_rounded_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/build_defs.bzl: -------------------------------------------------------------------------------- 1 | """Helper definitions to glob .aar and .jar targets""" 2 | 3 | def create_aar_targets(aarfiles): 4 | for aarfile in aarfiles: 5 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] 6 | lib_deps.append(":" + name) 7 | android_prebuilt_aar( 8 | name = name, 9 | aar = aarfile, 10 | ) 11 | 12 | def create_jar_targets(jarfiles): 13 | for jarfile in jarfiles: 14 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] 15 | lib_deps.append(":" + name) 16 | prebuilt_jar( 17 | name = name, 18 | binary_jar = jarfile, 19 | ) 20 | -------------------------------------------------------------------------------- /src/redux/reducers/index.js: -------------------------------------------------------------------------------- 1 | import { combineReducers } from 'redux'; 2 | import authLoginReducer from './authLoginReducer'; 3 | import authRegisterReducer from './authRegisterReducer'; 4 | import { 5 | getCategoriesReducer, 6 | getCategoryByIdReducer, 7 | } from './getCategoryReducer'; 8 | import getProdutsReducer from './getProducts'; 9 | import getUserProfileReducer from './getUserProfile'; 10 | 11 | export default combineReducers({ 12 | register: authRegisterReducer, 13 | auth_login: authLoginReducer, 14 | get_user_profile: getUserProfileReducer, 15 | get_products: getProdutsReducer, 16 | get_category_by_id: getCategoryByIdReducer, 17 | get_categories: getCategoriesReducer, 18 | }); 19 | -------------------------------------------------------------------------------- /src/redux/reducers/getProducts.js: -------------------------------------------------------------------------------- 1 | import { 2 | GET_PRODUCTS_FAIL, 3 | GET_PRODUCTS_START, 4 | GET_PRODUCTS_SUCCESS, 5 | } from '../actions/actionTypes'; 6 | 7 | const initialState = { 8 | loading: true, 9 | data: [], 10 | error: null, 11 | }; 12 | 13 | export default function getProdutsReducer(state = initialState, action) { 14 | switch (action.type) { 15 | case GET_PRODUCTS_SUCCESS: 16 | return { 17 | ...state, 18 | loading: false, 19 | data: action.payload.products_data, 20 | }; 21 | case GET_PRODUCTS_FAIL: { 22 | return { 23 | ...state, 24 | data: null, 25 | error: action.error.error, 26 | }; 27 | } 28 | default: 29 | return state; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/assets/icons/icon_more-horizontal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/assets/icons/icon_home_rounded_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/components/molecules/ModalCenter/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View } from 'react-native'; 3 | import Modal from 'react-native-modal'; 4 | 5 | const ModalCenter = ({ isVisible, backdropColor, children, ...props }) => { 6 | return ( 7 | <> 8 | 18 | {children} 19 | 20 | 21 | ); 22 | }; 23 | 24 | export default ModalCenter; 25 | 26 | const styles = StyleSheet.create({}); 27 | -------------------------------------------------------------------------------- /src/assets/icons/icon_start-enable.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icons/icon_start-disable.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icons/icon_trash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/components/atoms/SafeAreaViewCustom/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | SafeAreaView, 4 | StyleSheet, 5 | Text, 6 | View, 7 | Platform, 8 | Dimensions, 9 | StatusBar, 10 | } from 'react-native'; 11 | 12 | const SafeAreaViewCustom = ({ children, ...props }) => { 13 | return ( 14 | 15 | {Platform.OS === 'ios' && ( 16 | <> 17 | 27 | 28 | )} 29 | {children} 30 | 31 | ); 32 | }; 33 | 34 | export default SafeAreaViewCustom; 35 | -------------------------------------------------------------------------------- /src/assets/icons/icon_trash-grey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ios/EcommerceWithReactNativeTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | require_relative '../node_modules/react-native/scripts/react_native_pods' 2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' 3 | 4 | platform :ios, '10.0' 5 | 6 | target 'EcommerceWithReactNative' do 7 | config = use_native_modules! 8 | 9 | use_react_native!( 10 | :path => config[:reactNativePath], 11 | # to enable hermes on iOS, change `false` to `true` and then install pods 12 | :hermes_enabled => false 13 | ) 14 | 15 | target 'EcommerceWithReactNativeTests' do 16 | inherit! :complete 17 | # Pods for testing 18 | end 19 | 20 | # Enables Flipper. 21 | # 22 | # Note that if you have use_frameworks! enabled, Flipper will not work and 23 | # you should disable the next line. 24 | # use_flipper!() 25 | 26 | # post_install do |installer| 27 | # react_native_post_install(installer) 28 | # end 29 | end -------------------------------------------------------------------------------- /src/redux/reducers/authLoginReducer.js: -------------------------------------------------------------------------------- 1 | import { 2 | AUTH_LOGIN_FAIL, 3 | AUTH_LOGIN_START, 4 | AUTH_LOGIN_SUCCESS, 5 | } from '../actions/actionTypes'; 6 | 7 | const initialState = { 8 | loading: false, 9 | data: {}, 10 | error: null, 11 | }; 12 | 13 | export default function authLoginReducer(state = initialState, action) { 14 | switch (action.type) { 15 | case AUTH_LOGIN_START: 16 | return { 17 | ...state, 18 | loading: true, 19 | error: null, 20 | }; 21 | case AUTH_LOGIN_SUCCESS: 22 | return { 23 | ...state, 24 | loading: false, 25 | data: action.payload.auth_login_success, 26 | }; 27 | case AUTH_LOGIN_FAIL: 28 | return { 29 | ...state, 30 | loading: false, 31 | error: action.payload.auth_login_fail, 32 | }; 33 | default: 34 | return state; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/components/molecules/ListText/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View } from 'react-native'; 3 | 4 | const ListText = ({ 5 | text, 6 | color = 'black', 7 | size = 16, 8 | fontFam = 'CircularStd-Book', 9 | paddingX = 0, 10 | paddingY = 0, 11 | }) => { 12 | return ( 13 | 14 | {text} 15 | 16 | ); 17 | }; 18 | 19 | export default ListText; 20 | 21 | const styles = StyleSheet.create({ 22 | listTextContainer: (paddingX, paddingY) => ({ 23 | paddingVertical: paddingX, 24 | paddingHorizontal: paddingY, 25 | justifyContent: 'center', 26 | }), 27 | text: (color, size, fontFam) => ({ 28 | fontFamily: fontFam, 29 | fontSize: size, 30 | color: color, 31 | textAlign: 'center', 32 | }), 33 | }); 34 | -------------------------------------------------------------------------------- /src/utils/storage/index.js: -------------------------------------------------------------------------------- 1 | import AsyncStorage from '@react-native-async-storage/async-storage'; 2 | 3 | const storeData = async (storageKey, value) => { 4 | try { 5 | const jsonValue = JSON.stringify(value); 6 | // 7 | //debug 8 | console.log('jsonValue_storeData, jsonValue'); 9 | await AsyncStorage.setItem(storageKey, jsonValue); 10 | } catch (e) { 11 | // 12 | //debug 13 | console.log('error:', e); 14 | } 15 | }; 16 | 17 | const getData = async storageKey => { 18 | try { 19 | const jsonValue = await AsyncStorage.getItem(storageKey); 20 | // 21 | //debug 22 | console.log('jsonValue_getData:', '\n', jsonValue); 23 | return jsonValue != null ? JSON.parse(jsonValue) : null; 24 | } catch (e) { 25 | //error reading value 26 | // 27 | //debug 28 | console.log('error:', e); 29 | } 30 | }; 31 | 32 | export { storeData, getData }; 33 | -------------------------------------------------------------------------------- /src/components/molecules/Header/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View } from 'react-native'; 3 | 4 | const Header = ({ title, desc, showDesc = true }) => { 5 | return ( 6 | 7 | {title} 8 | {showDesc && {desc}} 9 | 10 | ); 11 | }; 12 | 13 | export default Header; 14 | 15 | const styles = StyleSheet.compose({ 16 | container: { 17 | backgroundColor: '#fff', 18 | paddingHorizontal: 20, 19 | paddingTop: 0, 20 | paddingBottom: 0, 21 | // backgroundColor: 'red', 22 | }, 23 | title: { 24 | fontFamily: 'CircularStd-Bold', 25 | fontSize: 24, 26 | marginBottom: 0, 27 | }, 28 | desc: { 29 | fontFamily: 'CircularStd-Book', 30 | fontSize: 16, 31 | lineHeight: 25, 32 | paddingRight: 50, 33 | }, 34 | }); 35 | -------------------------------------------------------------------------------- /src/redux/reducers/authRegisterReducer.js: -------------------------------------------------------------------------------- 1 | import { 2 | AUTH_REGISTER_FAIL, 3 | AUTH_REGISTER_START, 4 | AUTH_REGISTER_SUCCESS, 5 | } from '../actions/actionTypes'; 6 | 7 | const initialState = { 8 | loading: false, 9 | auth_form: {}, 10 | error: null, 11 | }; 12 | 13 | export default function authRegisterReducer(state = initialState, action) { 14 | switch (action.type) { 15 | case AUTH_REGISTER_START: 16 | return { 17 | ...state, 18 | loading: true, 19 | error: null, 20 | }; 21 | case AUTH_REGISTER_SUCCESS: 22 | return { 23 | ...state, 24 | loading: false, 25 | auth_form: action.payload.auth_register_success, 26 | }; 27 | case AUTH_REGISTER_FAIL: 28 | return { 29 | ...state, 30 | loading: false, 31 | error: action.payload, 32 | }; 33 | 34 | default: { 35 | return state; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/redux/reducers/getUserProfile.js: -------------------------------------------------------------------------------- 1 | import { 2 | GET_USER_PROFILE_FAIL, 3 | GET_USER_PROFILE_START, 4 | GET_USER_PROFILE_SUCCESS, 5 | } from '../actions/actionTypes'; 6 | 7 | const initialState = { 8 | loading: false, 9 | data: {}, 10 | error: null, 11 | }; 12 | 13 | export default function getUserProfileReducer(state = initialState, action) { 14 | switch (action.type) { 15 | case GET_USER_PROFILE_START: 16 | return { 17 | ...state, 18 | loading: true, 19 | error: null, 20 | }; 21 | case GET_USER_PROFILE_SUCCESS: 22 | return { 23 | ...state, 24 | data: action.payload.user_profile_success, 25 | error: null, 26 | }; 27 | case GET_USER_PROFILE_FAIL: 28 | return { 29 | ...state, 30 | loading: false, 31 | error: action.payload.user_profile_success, 32 | }; 33 | default: 34 | return state; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/assets/icons/icon_arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/components/atoms/TextInput/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | StyleSheet, 4 | Text, 5 | View, 6 | TextInput as TextInputReact, 7 | } from 'react-native'; 8 | 9 | const TextInput = ({ label, placeholder, ...props }) => { 10 | return ( 11 | 12 | {label} 13 | 19 | 20 | ); 21 | }; 22 | 23 | export default TextInput; 24 | 25 | const styles = StyleSheet.compose({ 26 | label: { 27 | fontFamily: 'CircularStd-Bold', 28 | fontSize: 14, 29 | marginBottom: 10, 30 | }, 31 | input: { 32 | fontFamily: 'CircularStd-Book', 33 | fontSize: 14, 34 | color: '#000', 35 | paddingVertical: 14, 36 | paddingHorizontal: 10, 37 | borderWidth: 1, 38 | borderRadius: 6, 39 | borderStyle: 'solid', 40 | borderColor: '#0030FF', 41 | }, 42 | }); 43 | -------------------------------------------------------------------------------- /src/assets/logo/logo_coffeeshop_square_round_white_blue.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/assets/icons/icon_profile_rounded.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/redux/actions/getProducts.js: -------------------------------------------------------------------------------- 1 | import { UserServices } from '../../services'; 2 | import * as actionTypes from './actionTypes'; 3 | 4 | export const getProductsAction = token => dispatch => { 5 | //debug 6 | console.log('\n', 'PRODUCTS-get_products.js', token); 7 | // dispatch(getProductsActionStart()); 8 | 9 | UserServices.getProducts(token) 10 | .then(res => { 11 | //debug 12 | console.log('\n', 'PRODUCTS_DATA:', res.statusText, '\n'); 13 | dispatch(getProductsActionSuccess(res.data)); 14 | }) 15 | .catch(error => { 16 | //debug 17 | console.log('ERR-getProduct.js', error); 18 | dispatch(getProductsActionFail(error.data)); 19 | }); 20 | }; 21 | 22 | // export const getProductsActionStart = () => ({ 23 | // type: actionTypes.GET_PRODUCTS_START, 24 | // }); 25 | 26 | export const getProductsActionSuccess = products_data => ({ 27 | type: actionTypes.GET_PRODUCTS_SUCCESS, 28 | payload: { products_data }, 29 | }); 30 | 31 | export const getProductsActionFail = error => ({ 32 | type: actionTypes.GET_PRODUCTS_FAIL, 33 | error: { error }, 34 | }); 35 | -------------------------------------------------------------------------------- /src/components/atoms/Row/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, View } from 'react-native'; 3 | 4 | const Row = ({ 5 | paddingTop = 30, 6 | paddingHorizontal = 20, 7 | paddingBottom = 30, 8 | borderBottomWidth = 1, 9 | borderBottomColor = '#F2F2F2', 10 | flexDirection = false, 11 | children, 12 | }) => ( 13 | 22 | {children} 23 | 24 | ); 25 | 26 | export default Row; 27 | 28 | const styles = StyleSheet.create({ 29 | row: ( 30 | paddingTop, 31 | paddingHorizontal, 32 | paddingBottom, 33 | borderBottomWidth, 34 | borderBottomColor, 35 | flexDirection, 36 | ) => ({ 37 | paddingTop: paddingTop, 38 | paddingHorizontal: paddingHorizontal, 39 | paddingBottom: paddingBottom, 40 | borderBottomWidth: borderBottomWidth, 41 | borderBottomColor: borderBottomColor, 42 | flexDirection: flexDirection ? 'row' : 'column', 43 | }), 44 | }); 45 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 13 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/assets/icons/icon_shipping.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from 'react'; 2 | import { NavigationContainer } from '@react-navigation/native'; 3 | import Router from './router'; 4 | import { Provider } from 'react-redux'; 5 | import store from './redux/store'; 6 | import { getData } from './utils'; 7 | import DeviceInfo from 'react-native-device-info'; 8 | import { Platform, StatusBar, View } from 'react-native'; 9 | import { Space } from './components'; 10 | 11 | function App(props) { 12 | const [data, setData] = useState(); 13 | 14 | useEffect(() => { 15 | getData('user').then(user => { 16 | //debug 17 | console.log('TOKEN - MAIN_JS:', user); 18 | setData(user); 19 | }); 20 | }, []); 21 | 22 | // 23 | //debug 24 | console.log('PROPS:', props); 25 | console.log('DATA:', data); 26 | console.log( 27 | 'DEVICE_INFO:', 28 | DeviceInfo.getMacAddress().then(e => { 29 | console.log(e); 30 | }), 31 | ); 32 | 33 | return ( 34 | 35 | 36 | 37 | 38 | 39 | ); 40 | } 41 | 42 | export default App; 43 | -------------------------------------------------------------------------------- /src/redux/actions/getUserProfile.js: -------------------------------------------------------------------------------- 1 | import * as actionTypes from './actionTypes'; 2 | import { UserServices } from '../../services'; 3 | import { getData } from '../../utils'; 4 | 5 | export const getUserProfileAction = (user_id, token) => dispatch => { 6 | //debug 7 | console.log('\n', 'USER_ID-action_get_user.js:', user_id); 8 | console.log('\n', 'TOKEN-action_get_user.js:', token); 9 | 10 | UserServices.getUserProfile(user_id, token) 11 | .then(res => { 12 | //debug 13 | console.log('RESSSSS', res.data); 14 | dispatch(getUserProfileActionSuccess(res.data)); 15 | }) 16 | .catch(err => { 17 | //debug 18 | console.log('ERRR', err.data); 19 | }); 20 | }; 21 | 22 | export const getUserProfileActionStart = () => ({ 23 | type: actionTypes.GET_USER_PROFILE_START, 24 | }); 25 | 26 | export const getUserProfileActionSuccess = user_profile_success => ({ 27 | type: actionTypes.GET_USER_PROFILE_SUCCESS, 28 | payload: { user_profile_success }, 29 | }); 30 | 31 | export const getUserProfileActionFail = user_profile_fail => ({ 32 | type: actionTypes.GET_USER_PROFILE_FAIL, 33 | payload: { user_profile_fail }, 34 | }); 35 | -------------------------------------------------------------------------------- /src/assets/icons/icon_percent_big_blue.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.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 | 24 | # Android/IntelliJ 25 | # 26 | build/ 27 | .idea 28 | .gradle 29 | local.properties 30 | *.iml 31 | 32 | # node.js 33 | # 34 | node_modules/ 35 | npm-debug.log 36 | yarn-error.log 37 | 38 | # BUCK 39 | buck-out/ 40 | \.buckd/ 41 | *.keystore 42 | !debug.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | */fastlane/report.xml 52 | */fastlane/Preview.html 53 | */fastlane/screenshots 54 | 55 | # Bundle artifact 56 | *.jsbundle 57 | 58 | # CocoaPods 59 | /ios/Pods/ 60 | 61 | # Environment 62 | .env 63 | ./src/services/hostnameServerApi.js 64 | src/services/hostnameServerApi.js 65 | -------------------------------------------------------------------------------- /src/components/molecules/index.js: -------------------------------------------------------------------------------- 1 | import Header from './Header'; 2 | import BottomNav from './BottomNav'; 3 | import ListText from './ListText'; 4 | import BannerHome from './BannerHome'; 5 | import NavHeader from './NavHeader'; 6 | import TextButtonRow from './TextButtonRow'; 7 | import TextPlainNav from './TextPlainNav'; 8 | import IconTextNav from './IconTextNav'; 9 | import TextSubtext from './TextSubtext'; 10 | import TextSubtextInput from './TextSubtextInput'; 11 | import ModalBottom from './ModalBottom'; 12 | import IconText from './IconText'; 13 | import RadioFormCustom from './RadioFormCustom'; 14 | import ModalCenter from './ModalCenter'; 15 | import ModalCenterTwoButton from './ModalCenterTwoButton'; 16 | import CardImageTextButton from './CardImageTextButton'; 17 | import FormTextSubtext from './FormTextSubtext'; 18 | 19 | export { 20 | Header, 21 | BottomNav, 22 | ListText, 23 | BannerHome, 24 | NavHeader, 25 | TextButtonRow, 26 | TextPlainNav, 27 | IconTextNav, 28 | TextSubtext, 29 | TextSubtextInput, 30 | ModalBottom, 31 | IconText, 32 | RadioFormCustom, 33 | ModalCenter, 34 | ModalCenterTwoButton, 35 | CardImageTextButton, 36 | FormTextSubtext, 37 | }; 38 | -------------------------------------------------------------------------------- /src/redux/actions/actionTypes.js: -------------------------------------------------------------------------------- 1 | export const AUTH_REGISTER_START = 'AUTH_REGISTER_START'; 2 | export const AUTH_REGISTER_SUCCESS = 'AUTH_REGISTER_SUCCESS'; 3 | export const AUTH_REGISTER_FAIL = 'AUTH_REGISTER_FAIL'; 4 | 5 | export const AUTH_LOGIN_START = 'AUTH_LOGIN_START'; 6 | export const AUTH_LOGIN_SUCCESS = 'AUTH_LOGIN_SUCCESS'; 7 | export const AUTH_LOGIN_FAIL = 'AUTH_LOGIN_FAIL'; 8 | 9 | export const GET_USER_PROFILE_START = 'GET_USER_PROFILE_START'; 10 | export const GET_USER_PROFILE_SUCCESS = 'GET_USER_PROFILE_SUCCESS'; 11 | export const GET_USER_PROFILE_FAIL = 'GET_USER_PROFILE_FAIL'; 12 | 13 | export const GET_PRODUCTS_START = 'GET_PRODUCTS_START'; 14 | export const GET_PRODUCTS_SUCCESS = 'GET_PRODUCTS_SUCCESS'; 15 | export const GET_PRODUCTS_FAIL = 'GET_PRODUCTS_SUCCESS'; 16 | 17 | export const GET_CATEGORY_BYID_START = 'GET_CATEGORY_BYID_START'; 18 | export const GET_CATEGORY_BYID_SUCCESS = 'GET_CATEGORY_BYID_SUCCESS'; 19 | export const GET_CATEGORY_BYID_FAIL = 'GET_CATEGORY_BYID_SUCCESS'; 20 | 21 | export const GET_CATEGORIES_START = 'GET_CATEGORIES_START'; 22 | export const GET_CATEGORIES_SUCCESS = 'GET_CATEGORIES_SUCCESS'; 23 | export const GET_CATEGORIES_FAIL = 'GET_CATEGORIES_SUCCESS'; 24 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext { 5 | buildToolsVersion = "29.0.3" 6 | minSdkVersion = 21 7 | compileSdkVersion = 29 8 | targetSdkVersion = 29 9 | ndkVersion = "20.1.5948944" 10 | } 11 | repositories { 12 | google() 13 | jcenter() 14 | } 15 | dependencies { 16 | classpath("com.android.tools.build:gradle:4.1.0") 17 | // NOTE: Do not place your application dependencies here; they belong 18 | // in the individual module build.gradle files 19 | } 20 | } 21 | 22 | allprojects { 23 | repositories { 24 | mavenLocal() 25 | maven { 26 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 27 | url("$rootDir/../node_modules/react-native/android") 28 | } 29 | maven { 30 | // Android JSC is installed from npm 31 | url("$rootDir/../node_modules/jsc-android/dist") 32 | } 33 | 34 | google() 35 | jcenter() 36 | maven { url 'https://www.jitpack.io' } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/components/molecules/FormTextSubtext/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, View } from 'react-native'; 3 | import { Space } from '../../atoms'; 4 | import TextSubtextInput from '../TextSubtextInput'; 5 | 6 | const FormTextSubtext = ({ 7 | text = 'Text', 8 | subtext = '...', 9 | borderBottomColor = '#cecece', 10 | borderBottomWidth = 1, 11 | textFam = 'CircularStd-Book', 12 | color = '#747474', 13 | textColor = '#000', 14 | ...props 15 | }) => ( 16 | <> 17 | 18 | 29 | 30 | 31 | 32 | ); 33 | 34 | export default FormTextSubtext; 35 | 36 | const styles = StyleSheet.create({ 37 | formContainer: (borderBottomColor, borderBottomWidth) => ({ 38 | // backgroundColor: 'red', 39 | borderBottomColor: borderBottomColor, 40 | borderBottomWidth: borderBottomWidth, 41 | flex: 1, 42 | }), 43 | }); 44 | -------------------------------------------------------------------------------- /src/components/molecules/IconText/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View } from 'react-native'; 3 | import { Space } from '../../atoms'; 4 | 5 | const IconText = ({ 6 | showIcon = true, 7 | icon = '🤖', 8 | width = 10, 9 | text = 'Text', 10 | iconSize = 18, 11 | paddingY = 10, 12 | paddingX = 20, 13 | color = 'black', 14 | textSize = 16, 15 | textFam = 'CircularStd-Bold', 16 | }) => { 17 | return ( 18 | 19 | {showIcon ? {icon} : <>} 20 | 21 | {text} 22 | 23 | ); 24 | }; 25 | 26 | export default IconText; 27 | 28 | const styles = StyleSheet.create({ 29 | container: (paddingY, paddingX) => ({ 30 | flexDirection: 'row', 31 | alignItems: 'center', 32 | paddingVertical: paddingY, 33 | marginHorizontal: paddingX, 34 | // backgroundColor: 'red', 35 | }), 36 | icon: iconSize => ({ 37 | fontSize: iconSize, 38 | // backgroundColor: 'grey', 39 | }), 40 | text: (color, textSize, textFam) => ({ 41 | color: color, 42 | fontSize: textSize, 43 | fontFamily: textFam, 44 | // backgroundColor: 'aqua', 45 | }), 46 | }); 47 | -------------------------------------------------------------------------------- /src/components/molecules/TextSubtext/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View } from 'react-native'; 3 | import { Space } from '../../atoms'; 4 | 5 | const TextSubtext = ({ 6 | alignItems = 'flex-start', 7 | textSize = 12, 8 | textFam = 'CircularStd-Book', 9 | text = 'Text', 10 | midHeight = 7, 11 | subtextSize = 16, 12 | subtextFam = 'CircularStd-Bold', 13 | subtext = 'Subtext', 14 | bottomHeight = 0, 15 | }) => { 16 | return ( 17 | 18 | {text} 19 | 20 | {subtext} 21 | 22 | 23 | ); 24 | }; 25 | 26 | export default TextSubtext; 27 | 28 | const styles = StyleSheet.create({ 29 | textSubtextContainer: alignItems => ({ 30 | flexDirection: 'column', 31 | alignItems: alignItems, 32 | }), 33 | text: (textSize, textFam) => ({ 34 | fontSize: textSize, 35 | fontFamily: textFam, 36 | textTransform: 'capitalize', 37 | }), 38 | subtext: (subtextSize, subtextFam) => ({ 39 | fontSize: subtextSize, 40 | fontFamily: subtextFam, 41 | textTransform: 'capitalize', 42 | }), 43 | }); 44 | -------------------------------------------------------------------------------- /src/assets/icons/icon_home_rounded.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/stacks/SuccessLogin/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, Text, View } from 'react-native'; 3 | import { Button, Space, TextField } from '../../components'; 4 | 5 | const SuccessLogin = ({ navigation }) => { 6 | return ( 7 | 8 | 9 | 10 | 🎉 11 | 12 | 17 | 18 | 23 | 24 |