├── .buckconfig ├── .eslintrc ├── .flowconfig ├── .gitattributes ├── .gitignore ├── .prettierrc ├── .vscode └── launch.json ├── .watchmanconfig ├── App.js ├── CHANGELOG.md ├── LICENSE ├── README.md ├── android ├── app │ ├── BUCK │ ├── build.gradle │ ├── build_defs.bzl │ ├── google-services.json │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── fonts │ │ │ ├── AntDesign.ttf │ │ │ ├── Entypo.ttf │ │ │ ├── EvilIcons.ttf │ │ │ ├── Feather.ttf │ │ │ ├── FontAwesome.ttf │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ ├── Foundation.ttf │ │ │ ├── Ionicons.ttf │ │ │ ├── Lato-Bold.ttf │ │ │ ├── Lato-BoldItalic.ttf │ │ │ ├── Lato-Italic.ttf │ │ │ ├── Lato-Light.ttf │ │ │ ├── Lato-LightItalic.ttf │ │ │ ├── Lato-Medium.ttf │ │ │ ├── Lato-Regular.ttf │ │ │ ├── Lato-Semibold.ttf │ │ │ ├── Lato-Thin.ttf │ │ │ ├── MaterialCommunityIcons.ttf │ │ │ ├── MaterialIcons.ttf │ │ │ ├── Octicons.ttf │ │ │ ├── SimpleLineIcons.ttf │ │ │ ├── Zocial.ttf │ │ │ ├── aller_display_std_rg.ttf │ │ │ ├── aller_std_bd.ttf │ │ │ ├── aller_std_bd_it.ttf │ │ │ ├── aller_std_it.ttf │ │ │ ├── aller_std_lt.ttf │ │ │ ├── aller_std_lt_it.ttf │ │ │ ├── aller_std_rg.ttf │ │ │ ├── helvetica_ltstd_bold.otf │ │ │ ├── proxima_nova_alt_bold.otf │ │ │ ├── proxima_nova_alt_light.otf │ │ │ ├── proxima_nova_alt_regular.otf │ │ │ ├── proxima_nova_alt_semibold.otf │ │ │ └── proxima_nova_alt_thin.otf │ │ ├── java │ │ └── com │ │ │ └── reactnativestarter │ │ │ ├── MainActivity.java │ │ │ └── MainApplication.java │ │ └── res │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── keystores │ ├── BUCK │ └── debug.keystore.properties └── settings.gradle ├── app.json ├── assets ├── fonts │ ├── Lato-Bold.ttf │ ├── Lato-BoldItalic.ttf │ ├── Lato-Italic.ttf │ ├── Lato-Light.ttf │ ├── Lato-LightItalic.ttf │ ├── Lato-Medium.ttf │ ├── Lato-Regular.ttf │ ├── Lato-Semibold.ttf │ ├── Lato-Thin.ttf │ ├── aller_display_std_rg.ttf │ ├── aller_std_bd.ttf │ ├── aller_std_bd_it.ttf │ ├── aller_std_it.ttf │ ├── aller_std_lt.ttf │ ├── aller_std_lt_it.ttf │ ├── aller_std_rg.ttf │ ├── helvetica_ltstd_bold.otf │ ├── proxima_nova_alt_bold.otf │ ├── proxima_nova_alt_light.otf │ ├── proxima_nova_alt_regular.otf │ ├── proxima_nova_alt_semibold.otf │ └── proxima_nova_alt_thin.otf └── images │ ├── block.png │ ├── bone_profile_default.jpg │ ├── boneoffcb.png │ ├── boneoffcb_gray.png │ ├── boneoncb.png │ ├── boneprofile.png │ ├── boneprofileon.png │ ├── bonestock.jpg │ ├── brokenbone.png │ ├── bubble_gray.9.png │ ├── bubble_mine.9.png │ ├── bubble_mine_deliverr.9.png │ ├── bubble_mine_seen.9.png │ ├── bubble_someone.9.png │ ├── bubble_someone_black.9.png │ ├── camera.png │ ├── chat_wallpaper.jpg │ ├── chatprofile.png │ ├── checked.png │ ├── checked@2x.png │ ├── checked@3x.png │ ├── close.png │ ├── defaultImage.png │ ├── dot_chat.png │ ├── download.png │ ├── edit.png │ ├── eyeoff.png │ ├── eyeon.png │ ├── filteroff.png │ ├── filteron.png │ ├── forward.png │ ├── forward_white.png │ ├── gallery.png │ ├── icons │ ├── arrow-back.png │ ├── arrow-back@2x.png │ └── arrow-back@3x.png │ ├── locate.png │ ├── location.png │ ├── locationoff.png │ ├── locationon.png │ ├── lock.png │ ├── lookingfors │ ├── 420_off.png │ ├── 420_on.png │ ├── bear_off.png │ ├── bear_on.png │ ├── camaction_off.png │ ├── camaction_on.png │ ├── drag_off.png │ ├── drag_on.png │ ├── duo_off.png │ ├── duo_on.png │ ├── glory_off.png │ ├── glory_on.png │ ├── muscle_off.png │ ├── muscle_on.png │ ├── pig_off.png │ ├── pig_on.png │ ├── quatro_off.png │ ├── quatro_on.png │ ├── quatroplus_off.png │ ├── quatroplus_on.png │ ├── rice_off.png │ ├── rice_on.png │ ├── sauna_off.png │ ├── sauna_on.png │ ├── service_off.png │ ├── service_on.png │ ├── snm_off.png │ ├── snm_on.png │ ├── transformation_off.png │ ├── transformation_on.png │ ├── trio_off.png │ ├── trio_on.png │ ├── twink_off.png │ ├── twink_on.png │ ├── xl_off.png │ └── xl_on.png │ ├── mic_off.png │ ├── mic_on.png │ ├── minus.png │ ├── pause.png │ ├── play.png │ ├── plus.png │ ├── plus_pic.png │ ├── rating_off.png │ ├── rating_on.png │ ├── rating_small_off.png │ ├── rating_small_on.png │ ├── record.png │ ├── report_profile.png │ ├── role_profile.png │ ├── searchoff.png │ ├── searchon.png │ ├── send.png │ ├── settings.png │ ├── splash.jpg │ ├── splash.png │ ├── status_away.png │ ├── status_offline.png │ ├── status_online.png │ ├── switch_camera.png │ ├── tab_bone.png │ ├── tab_bone_selected.png │ ├── tab_chat.png │ ├── tab_chat_selected.png │ ├── tab_profile.png │ ├── three_dots.png │ ├── time.png │ ├── video_cam_off.png │ ├── video_cam_on.png │ └── voicecall.png ├── babel.config.js ├── dangerfile.js ├── index.js ├── ios ├── Pods │ └── Local Podspecs │ │ └── RNSha256.podspec.json ├── ReactNativeStarter-tvOS │ └── Info.plist ├── ReactNativeStarter-tvOSTests │ └── Info.plist ├── ReactNativeStarter.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── ReactNativeStarter-tvOS.xcscheme │ │ └── ReactNativeStarter.xcscheme ├── ReactNativeStarter │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj │ │ └── LaunchScreen.xib │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ ├── Icon-App-83.5x83.5@2x.png │ │ │ └── ItunesArtwork@2x.png │ │ ├── Contents.json │ │ └── splash.imageset │ │ │ ├── Contents.json │ │ │ └── splash.jpg │ ├── Info.plist │ ├── ReactNativeStarter.entitlements │ ├── Resources │ │ ├── Lato-Bold.ttf │ │ ├── Lato-BoldItalic.ttf │ │ ├── Lato-Italic.ttf │ │ ├── Lato-Light.ttf │ │ ├── Lato-LightItalic.ttf │ │ ├── Lato-Medium.ttf │ │ ├── Lato-Regular.ttf │ │ ├── Lato-Semibold.ttf │ │ ├── Lato-Thin.ttf │ │ ├── aller_display_std_rg.ttf │ │ ├── aller_std_bd.ttf │ │ ├── aller_std_bd_it.ttf │ │ ├── aller_std_it.ttf │ │ ├── aller_std_lt.ttf │ │ ├── aller_std_lt_it.ttf │ │ ├── aller_std_rg.ttf │ │ ├── helvetica_ltstd_bold.otf │ │ ├── proxima_nova_alt_bold.otf │ │ ├── proxima_nova_alt_light.otf │ │ ├── proxima_nova_alt_regular.otf │ │ ├── proxima_nova_alt_semibold.otf │ │ └── proxima_nova_alt_thin.otf │ └── main.m ├── ReactNativeStarterTests │ ├── Info.plist │ └── ReactNativeStarterTests.m └── Resources │ ├── Lato-Bold.ttf │ ├── Lato-BoldItalic.ttf │ ├── Lato-Italic.ttf │ ├── Lato-Light.ttf │ ├── Lato-LightItalic.ttf │ ├── Lato-Medium.ttf │ ├── Lato-Regular.ttf │ ├── Lato-Semibold.ttf │ ├── Lato-Thin.ttf │ ├── aller_display_std_rg.ttf │ ├── aller_std_bd.ttf │ ├── aller_std_bd_it.ttf │ ├── aller_std_it.ttf │ ├── aller_std_lt.ttf │ ├── aller_std_lt_it.ttf │ ├── aller_std_rg.ttf │ ├── helvetica_ltstd_bold.otf │ ├── proxima_nova_alt_bold.otf │ ├── proxima_nova_alt_light.otf │ ├── proxima_nova_alt_regular.otf │ ├── proxima_nova_alt_semibold.otf │ └── proxima_nova_alt_thin.otf ├── jest-setup.js ├── package.json ├── plopfile.js ├── src ├── actions │ ├── ActionTypes.js │ ├── AppActions.js │ ├── AuthActions.js │ ├── ChatActions.js │ ├── CommentActions.js │ ├── GalleryActions.js │ ├── LockCodeActions.js │ ├── PublicUserActions.js │ └── UserActions.js ├── components │ ├── BackgroundView.js │ ├── Button.js │ ├── CollapsibleView.js │ ├── Dropdown.js │ ├── GridRow.js │ ├── IconizedTextInput.js │ ├── ImageView.js │ ├── Images │ │ ├── checked.png │ │ ├── checked@2x.png │ │ └── checked@3x.png │ ├── LoadingOverlay.js │ ├── PhotoPickerView.js │ ├── RadioGroup.js │ ├── SegmentedControl.js │ ├── StyledButton.js │ ├── StyledText.js │ ├── TextInput.js │ ├── TopNavigatorView.js │ └── index.js ├── config │ ├── api.js │ ├── index.js │ ├── terms.js │ └── unitSystems.js ├── helpers │ ├── alert.js │ ├── calculateConstrainedDimensions.js │ ├── calculatePortraitDimension.js │ ├── encrypt.js │ ├── index.js │ ├── toast.js │ └── validator.js ├── middlewares │ ├── index.js │ ├── requestFormUrlEncodeMiddleware.js │ └── requestMiddleware.js ├── modules │ ├── AppState.js │ ├── AppView.js │ ├── AppViewContainer.js │ ├── auth │ │ ├── Auth.js │ │ ├── ForgotPassword.js │ │ ├── Login.js │ │ └── Register.js │ ├── chat │ │ ├── Chat.js │ │ ├── Messages.js │ │ ├── components │ │ │ ├── ChatRoomList.js │ │ │ ├── ComposerContainer.js │ │ │ ├── CustomActions.js │ │ │ ├── CustomAudioView.js │ │ │ ├── CustomMapView.js │ │ │ ├── CustomView.js │ │ │ ├── MessageTypes.js │ │ │ ├── MessagesHolder.js │ │ │ └── index.js │ │ └── data │ │ │ ├── messages.js │ │ │ └── old_messages.js │ ├── home │ │ ├── Home.js │ │ ├── UserFilter.js │ │ └── components │ │ │ ├── HorizontalUserList.js │ │ │ ├── RelocateView.js │ │ │ ├── UserSearchView.js │ │ │ └── UsersGrid.js │ ├── lock-code │ │ ├── LockCode.js │ │ └── components │ │ │ └── LockNumberPad.js │ ├── navigation │ │ ├── AuthNavigator.js │ │ ├── MainNavigator.js │ │ ├── MainTabNavigator.js │ │ ├── ModalNavigator.js │ │ └── Navigator.js │ ├── profile │ │ ├── BlockingList.js │ │ ├── ChangeEmail.js │ │ ├── ChangePassword.js │ │ ├── DeactivateAccount.js │ │ ├── GalleryEdit.js │ │ ├── Profile.js │ │ ├── ProfileEdit.js │ │ ├── PublicProfile.js │ │ ├── ReactivateAccount.js │ │ ├── Settings.js │ │ ├── UploadPhoto.js │ │ └── components │ │ │ ├── BlockUserModal.js │ │ │ ├── BottomSheet.js │ │ │ ├── CommentView.js │ │ │ ├── DatePickerListItem.js │ │ │ ├── ItemPickerListItem.js │ │ │ ├── ListItem.js │ │ │ ├── ListItemSwitch.js │ │ │ ├── MultipleItemPickerView.js │ │ │ ├── NumberPickerListItem.js │ │ │ ├── NumberRangePickerListItem.js │ │ │ ├── PhotosPanel.js │ │ │ ├── RateUserModal.js │ │ │ ├── ReportUserModal.js │ │ │ ├── SectionTitleItem.js │ │ │ └── TextInputView.js │ ├── shared │ │ └── PhotoModal.js │ └── term │ │ └── Terms.js ├── reducers │ ├── AppReducer.js │ ├── AuthReducer.js │ ├── ChatReducer.js │ ├── CommentReducer.js │ ├── GalleryReducer.js │ ├── LockCodeReducer.js │ ├── PublicUserReducer.js │ └── UserReducer.js ├── redux │ ├── reducer.js │ └── store.js ├── socket-manager │ ├── SocketActions.js │ └── SocketManager.js ├── styles │ ├── colors.js │ ├── common.js │ ├── fonts.js │ └── index.js └── translations │ ├── en.json │ ├── index.js │ └── ru.json └── yarn.lock /.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["airbnb", "prettier"], 3 | "plugins": ["react", "jsx-a11y", "import"], 4 | "parser": "babel-eslint", 5 | "rules": { 6 | "react/jsx-filename-extension": "off", 7 | "react/destructuring-assignment": "off", 8 | "no-use-before-define": "off", 9 | "react/prop-types": "off", 10 | "no-case-declarations": "off", 11 | "global-require": "off", 12 | "no-underscore-dangle": "off", 13 | "react/jsx-one-expression-per-line": "off", 14 | "react/require-default-props": "off" 15 | } 16 | } -------------------------------------------------------------------------------- /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | ; We fork some components by platform 3 | .*/*[.]android.js 4 | 5 | ; Ignore "BUCK" generated dirs 6 | /\.buckd/ 7 | 8 | ; Ignore unexpected extra "@providesModule" 9 | .*/node_modules/.*/node_modules/fbjs/.* 10 | 11 | ; Ignore duplicate module providers 12 | ; For RN Apps installed via npm, "Libraries" folder is inside 13 | ; "node_modules/react-native" but in the source repo it is in the root 14 | .*/Libraries/react-native/React.js 15 | 16 | ; Ignore polyfills 17 | .*/Libraries/polyfills/.* 18 | 19 | ; Ignore metro 20 | .*/node_modules/metro/.* 21 | 22 | [include] 23 | 24 | [libs] 25 | node_modules/react-native/Libraries/react-native/react-native-interface.js 26 | node_modules/react-native/flow/ 27 | node_modules/react-native/flow-github/ 28 | 29 | [options] 30 | emoji=true 31 | 32 | esproposal.optional_chaining=enable 33 | esproposal.nullish_coalescing=enable 34 | 35 | module.system=haste 36 | module.system.haste.use_name_reducers=true 37 | # get basename 38 | module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1' 39 | # strip .js or .js.flow suffix 40 | module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1' 41 | # strip .ios suffix 42 | module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1' 43 | module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1' 44 | module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1' 45 | module.system.haste.paths.blacklist=.*/__tests__/.* 46 | module.system.haste.paths.blacklist=.*/__mocks__/.* 47 | module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/Animated/src/polyfills/.* 48 | module.system.haste.paths.whitelist=/node_modules/react-native/Libraries/.* 49 | 50 | munge_underscores=true 51 | 52 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' 53 | 54 | module.file_ext=.js 55 | module.file_ext=.jsx 56 | module.file_ext=.json 57 | module.file_ext=.native.js 58 | 59 | suppress_type=$FlowIssue 60 | suppress_type=$FlowFixMe 61 | suppress_type=$FlowFixMeProps 62 | suppress_type=$FlowFixMeState 63 | 64 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) 65 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ 66 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy 67 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError 68 | 69 | [version] 70 | ^0.86.0 71 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 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 | jest_coverage -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "all", 3 | "semi": true, 4 | "singleQuote": true, 5 | "bracketSpacing": true, 6 | "jsxBracketSameLine": false, 7 | "tabWidth": 2, 8 | "parser": "flow" 9 | } 10 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "Debug Android", 9 | "program": "${workspaceRoot}/.vscode/launchReactNative.js", 10 | "type": "reactnative", 11 | "request": "launch", 12 | "platform": "android", 13 | "sourceMaps": true, 14 | "outDir": "${workspaceRoot}/.vscode/.react" 15 | }, 16 | { 17 | "name": "Debug iOS", 18 | "program": "${workspaceRoot}/.vscode/launchReactNative.js", 19 | "type": "reactnative", 20 | "request": "launch", 21 | "platform": "ios", 22 | "sourceMaps": true, 23 | "outDir": "${workspaceRoot}/.vscode/.react" 24 | } 25 | 26 | ] 27 | } -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /App.js: -------------------------------------------------------------------------------- 1 | import { Provider } from 'react-redux'; 2 | import React from 'react'; 3 | import { View, ActivityIndicator, StyleSheet } from 'react-native'; 4 | import { PersistGate } from 'redux-persist/integration/react'; 5 | import { colors } from './src/styles'; 6 | 7 | import { store, persistor } from './src/redux/store'; 8 | 9 | import AppView from './src/modules/AppViewContainer'; 10 | 11 | export default function App() { 12 | return ( 13 | 14 | 17 | 18 | 19 | } 20 | persistor={persistor} 21 | > 22 | 23 | 24 | 25 | ); 26 | } 27 | 28 | const styles = StyleSheet.create({ 29 | container: { 30 | flex: 1, 31 | justifyContent: 'center', 32 | alignItems: 'center', 33 | backgroundColor: 'white', 34 | }, 35 | }); 36 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [2.0.0] 4 | 5 | It's a huge update that doesn't have a backward compability with the 1.x version because we totally rebuilt the RNS from the ground. 6 | 7 | ### New Features 8 | 9 | - Removed Expo and transitioned to native projects, because of lots of restrictions that expo adds to your projects. 10 | - Added Plop generator for easy deveopment. 11 | - Added support for unit testing with Jest and Enzyme. 12 | - Added support for e2e testing with Detox. 13 | - New modular architecture that will help you speed up the applications development. 14 | - Lots of performance improvements in comparison with v1.0.0 15 | - Removed eslint styling rules in favour of prettier. 16 | - Added new documentation at https://docs.reactnativestarter.com/ 17 | - CI/CD compatibale project 18 | - Lots of new fixes and improvements 19 | 20 | ## [1.1.0] 21 | 22 | ### Fixed 23 | 24 | - Navigation header issue 25 | 26 | ### Updated 27 | 28 | - Updated React Navigation to version 3.0.0 29 | - Updated all the libraries to latest versions 30 | - Added Prettier 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Futurice 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Dating App on React Native

2 |

Function

3 |
    4 |
  • User search by location, filters

  • 5 |
  • Upload public/private profiles

  • 6 |
  • Invite, Accept/Reject invitation

  • 7 |
  • Group/Private chat with texts, location, image, video, calling

  • 8 |
  • User report

  • 9 |
10 | -------------------------------------------------------------------------------- /android/app/BUCK: -------------------------------------------------------------------------------- 1 | # To learn about Buck see [Docs](https://buckbuild.com/). 2 | # To run your application with Buck: 3 | # - install Buck 4 | # - `npm start` - to start the packager 5 | # - `cd android` 6 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` 7 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck 8 | # - `buck install -r android/app` - compile, install and run application 9 | # 10 | 11 | load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") 12 | 13 | lib_deps = [] 14 | 15 | create_aar_targets(glob(["libs/*.aar"])) 16 | 17 | create_jar_targets(glob(["libs/*.jar"])) 18 | 19 | android_library( 20 | name = "all-libs", 21 | exported_deps = lib_deps, 22 | ) 23 | 24 | android_library( 25 | name = "app-code", 26 | srcs = glob([ 27 | "src/main/java/**/*.java", 28 | ]), 29 | deps = [ 30 | ":all-libs", 31 | ":build_config", 32 | ":res", 33 | ], 34 | ) 35 | 36 | android_build_config( 37 | name = "build_config", 38 | package = "com.reactnativestarter", 39 | ) 40 | 41 | android_resource( 42 | name = "res", 43 | package = "com.reactnativestarter", 44 | res = "src/main/res", 45 | ) 46 | 47 | android_binary( 48 | name = "app", 49 | keystore = "//android/keystores:debug", 50 | manifest = "src/main/AndroidManifest.xml", 51 | package_type = "debug", 52 | deps = [ 53 | ":app-code", 54 | ], 55 | ) 56 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /android/app/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "904794305606", 4 | "firebase_url": "https://boneandroid-da1c2.firebaseio.com", 5 | "project_id": "boneandroid-da1c2", 6 | "storage_bucket": "boneandroid-da1c2.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:904794305606:android:81fc8d9eb864e9d4", 12 | "android_client_info": { 13 | "package_name": "com.bone" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "904794305606-524nl76s6v0559rbsiuua6nvsmevat1i.apps.googleusercontent.com", 19 | "client_type": 3 20 | } 21 | ], 22 | "api_key": [ 23 | { 24 | "current_key": "AIzaSyCvFwT8aDWFmuA2D6XKlIo3d4vE8fQZgRE" 25 | } 26 | ], 27 | "services": { 28 | "analytics_service": { 29 | "status": 1 30 | }, 31 | "appinvite_service": { 32 | "status": 1, 33 | "other_platform_oauth_client": [] 34 | }, 35 | "ads_service": { 36 | "status": 2 37 | } 38 | } 39 | } 40 | ], 41 | "configuration_version": "1" 42 | } -------------------------------------------------------------------------------- /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 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 15 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/AntDesign.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Entypo.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Feather.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Foundation.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Ionicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-Bold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-BoldItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-Italic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-Light.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-LightItalic.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-Medium.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-Semibold.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Lato-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Lato-Thin.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Octicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/Zocial.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/aller_display_std_rg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/aller_display_std_rg.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/aller_std_bd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/aller_std_bd.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/aller_std_bd_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/aller_std_bd_it.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/aller_std_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/aller_std_it.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/aller_std_lt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/aller_std_lt.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/aller_std_lt_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/aller_std_lt_it.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/aller_std_rg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/aller_std_rg.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/helvetica_ltstd_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/helvetica_ltstd_bold.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/proxima_nova_alt_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/proxima_nova_alt_bold.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/proxima_nova_alt_light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/proxima_nova_alt_light.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/proxima_nova_alt_regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/proxima_nova_alt_regular.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/proxima_nova_alt_semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/proxima_nova_alt_semibold.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/proxima_nova_alt_thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/assets/fonts/proxima_nova_alt_thin.otf -------------------------------------------------------------------------------- /android/app/src/main/java/com/reactnativestarter/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.reactnativestarter; 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. 9 | * This is used to schedule rendering of the component. 10 | */ 11 | @Override 12 | protected String getMainComponentName() { 13 | return "ReactNativeStarter"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/reactnativestarter/MainApplication.java: -------------------------------------------------------------------------------- 1 | package com.reactnativestarter; 2 | 3 | import android.app.Application; 4 | 5 | import com.facebook.react.ReactApplication; 6 | import com.cmcewen.blurview.BlurViewPackage; 7 | import com.beefe.picker.PickerViewPackage; 8 | import com.reactnative.ivpusic.imagepicker.PickerPackage; 9 | import com.imagepicker.ImagePickerPackage; 10 | import com.RNFetchBlob.RNFetchBlobPackage; 11 | import com.dylanvann.fastimage.FastImageViewPackage; 12 | import io.invertase.firebase.RNFirebasePackage; 13 | import com.sha256lib.Sha256Package; 14 | import com.lugg.ReactNativeConfig.ReactNativeConfigPackage; 15 | import com.airbnb.android.react.maps.MapsPackage; 16 | import com.horcrux.svg.SvgPackage; 17 | import com.oblador.vectoricons.VectorIconsPackage; 18 | import com.reactcommunity.rnlocalize.RNLocalizePackage; 19 | import com.BV.LinearGradient.LinearGradientPackage; 20 | import com.swmansion.gesturehandler.react.RNGestureHandlerPackage; 21 | import com.facebook.react.ReactNativeHost; 22 | import com.facebook.react.ReactPackage; 23 | import com.facebook.react.shell.MainReactPackage; 24 | import com.facebook.soloader.SoLoader; 25 | import io.invertase.firebase.messaging.RNFirebaseMessagingPackage; 26 | 27 | import java.util.Arrays; 28 | import java.util.List; 29 | 30 | public class MainApplication extends Application implements ReactApplication { 31 | 32 | private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { 33 | @Override 34 | public boolean getUseDeveloperSupport() { 35 | return BuildConfig.DEBUG; 36 | } 37 | 38 | @Override 39 | protected List getPackages() { 40 | return Arrays.asList( 41 | new MainReactPackage(), 42 | new BlurViewPackage(), 43 | new PickerViewPackage(), 44 | new PickerPackage(), 45 | new ImagePickerPackage(), 46 | new RNFetchBlobPackage(), 47 | new FastImageViewPackage(), 48 | new RNFirebasePackage(), 49 | new RNFirebaseMessagingPackage(), 50 | new Sha256Package(), 51 | new ReactNativeConfigPackage(), 52 | new MapsPackage(), 53 | new SvgPackage(), 54 | new VectorIconsPackage(), 55 | new RNLocalizePackage(), 56 | new LinearGradientPackage(), 57 | new RNGestureHandlerPackage() 58 | ); 59 | } 60 | 61 | @Override 62 | protected String getJSMainModuleName() { 63 | return "index"; 64 | } 65 | }; 66 | 67 | @Override 68 | public ReactNativeHost getReactNativeHost() { 69 | return mReactNativeHost; 70 | } 71 | 72 | @Override 73 | public void onCreate() { 74 | super.onCreate(); 75 | SoLoader.init(this, /* native exopackage */ false); 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Bone 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /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 = "28.0.3" 6 | minSdkVersion = 16 7 | compileSdkVersion = 28 8 | targetSdkVersion = 27 9 | supportLibVersion = "28.0.0" 10 | } 11 | repositories { 12 | google() 13 | jcenter() 14 | } 15 | dependencies { 16 | classpath 'com.android.tools.build:gradle:3.2.1' 17 | classpath 'com.google.gms:google-services:4.2.0' 18 | // NOTE: Do not place your application dependencies here; they belong 19 | // in the individual module build.gradle files 20 | } 21 | } 22 | 23 | allprojects { 24 | repositories { 25 | mavenLocal() 26 | google() 27 | jcenter() 28 | maven { 29 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 30 | url "$rootDir/../node_modules/react-native/android" 31 | } 32 | 33 | maven { url 'https://maven.google.com' } 34 | maven { url "https://jitpack.io" } 35 | } 36 | } 37 | 38 | subprojects { 39 | afterEvaluate {project -> 40 | if (project.hasProperty("android")) { 41 | android { 42 | compileSdkVersion 28 43 | buildToolsVersion "28.0.3" 44 | } 45 | } 46 | } 47 | } 48 | 49 | task wrapper(type: Wrapper) { 50 | gradleVersion = '4.7' 51 | distributionUrl = distributionUrl.replace("bin", "all") 52 | } 53 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | MYAPP_RELEASE_STORE_FILE=bone-release-key.keystore 21 | MYAPP_RELEASE_KEY_ALIAS=bone-key-alias 22 | MYAPP_RELEASE_STORE_PASSWORD=123456 23 | MYAPP_RELEASE_KEY_PASSWORD=123456 -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip 6 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /android/keystores/BUCK: -------------------------------------------------------------------------------- 1 | keystore( 2 | name = "debug", 3 | properties = "debug.keystore.properties", 4 | store = "debug.keystore", 5 | visibility = [ 6 | "PUBLIC", 7 | ], 8 | ) 9 | -------------------------------------------------------------------------------- /android/keystores/debug.keystore.properties: -------------------------------------------------------------------------------- 1 | key.store=debug.keystore 2 | key.alias=androiddebugkey 3 | key.store.password=android 4 | key.alias.password=android 5 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'ReactNativeStarter' 2 | include ':@react-native-community_blur' 3 | project(':@react-native-community_blur').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/blur/android') 4 | include ':react-native-picker' 5 | project(':react-native-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-picker/android') 6 | include ':react-native-image-crop-picker' 7 | project(':react-native-image-crop-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-crop-picker/android') 8 | include ':react-native-image-picker' 9 | project(':react-native-image-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-picker/android') 10 | include ':rn-fetch-blob' 11 | project(':rn-fetch-blob').projectDir = new File(rootProject.projectDir, '../node_modules/rn-fetch-blob/android') 12 | include ':react-native-fast-image' 13 | project(':react-native-fast-image').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fast-image/android') 14 | include ':react-native-firebase' 15 | project(':react-native-firebase').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase/android') 16 | include ':react-native-webview' 17 | project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android') 18 | include ':react-native-sha256' 19 | project(':react-native-sha256').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sha256/android') 20 | include ':react-native-config' 21 | project(':react-native-config').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-config/android') 22 | include ':react-native-maps' 23 | project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/lib/android') 24 | include ':react-native-svg' 25 | project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android') 26 | include ':react-native-vector-icons' 27 | project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') 28 | include ':react-native-localize' 29 | project(':react-native-localize').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-localize/android') 30 | include ':react-native-linear-gradient' 31 | project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android') 32 | include ':react-native-gesture-handler' 33 | project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android') 34 | 35 | include ':app' 36 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactNativeStarter", 3 | "displayName": "Bone" 4 | } -------------------------------------------------------------------------------- /assets/fonts/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-Bold.ttf -------------------------------------------------------------------------------- /assets/fonts/Lato-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-BoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Lato-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-Italic.ttf -------------------------------------------------------------------------------- /assets/fonts/Lato-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-Light.ttf -------------------------------------------------------------------------------- /assets/fonts/Lato-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-LightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Lato-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-Medium.ttf -------------------------------------------------------------------------------- /assets/fonts/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/Lato-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-Semibold.ttf -------------------------------------------------------------------------------- /assets/fonts/Lato-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/Lato-Thin.ttf -------------------------------------------------------------------------------- /assets/fonts/aller_display_std_rg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/aller_display_std_rg.ttf -------------------------------------------------------------------------------- /assets/fonts/aller_std_bd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/aller_std_bd.ttf -------------------------------------------------------------------------------- /assets/fonts/aller_std_bd_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/aller_std_bd_it.ttf -------------------------------------------------------------------------------- /assets/fonts/aller_std_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/aller_std_it.ttf -------------------------------------------------------------------------------- /assets/fonts/aller_std_lt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/aller_std_lt.ttf -------------------------------------------------------------------------------- /assets/fonts/aller_std_lt_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/aller_std_lt_it.ttf -------------------------------------------------------------------------------- /assets/fonts/aller_std_rg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/aller_std_rg.ttf -------------------------------------------------------------------------------- /assets/fonts/helvetica_ltstd_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/helvetica_ltstd_bold.otf -------------------------------------------------------------------------------- /assets/fonts/proxima_nova_alt_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/proxima_nova_alt_bold.otf -------------------------------------------------------------------------------- /assets/fonts/proxima_nova_alt_light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/proxima_nova_alt_light.otf -------------------------------------------------------------------------------- /assets/fonts/proxima_nova_alt_regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/proxima_nova_alt_regular.otf -------------------------------------------------------------------------------- /assets/fonts/proxima_nova_alt_semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/proxima_nova_alt_semibold.otf -------------------------------------------------------------------------------- /assets/fonts/proxima_nova_alt_thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/fonts/proxima_nova_alt_thin.otf -------------------------------------------------------------------------------- /assets/images/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/block.png -------------------------------------------------------------------------------- /assets/images/bone_profile_default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/bone_profile_default.jpg -------------------------------------------------------------------------------- /assets/images/boneoffcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/boneoffcb.png -------------------------------------------------------------------------------- /assets/images/boneoffcb_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/boneoffcb_gray.png -------------------------------------------------------------------------------- /assets/images/boneoncb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/boneoncb.png -------------------------------------------------------------------------------- /assets/images/boneprofile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/boneprofile.png -------------------------------------------------------------------------------- /assets/images/boneprofileon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/boneprofileon.png -------------------------------------------------------------------------------- /assets/images/bonestock.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/bonestock.jpg -------------------------------------------------------------------------------- /assets/images/brokenbone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/brokenbone.png -------------------------------------------------------------------------------- /assets/images/bubble_gray.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/bubble_gray.9.png -------------------------------------------------------------------------------- /assets/images/bubble_mine.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/bubble_mine.9.png -------------------------------------------------------------------------------- /assets/images/bubble_mine_deliverr.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/bubble_mine_deliverr.9.png -------------------------------------------------------------------------------- /assets/images/bubble_mine_seen.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/bubble_mine_seen.9.png -------------------------------------------------------------------------------- /assets/images/bubble_someone.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/bubble_someone.9.png -------------------------------------------------------------------------------- /assets/images/bubble_someone_black.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/bubble_someone_black.9.png -------------------------------------------------------------------------------- /assets/images/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/camera.png -------------------------------------------------------------------------------- /assets/images/chat_wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/chat_wallpaper.jpg -------------------------------------------------------------------------------- /assets/images/chatprofile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/chatprofile.png -------------------------------------------------------------------------------- /assets/images/checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/checked.png -------------------------------------------------------------------------------- /assets/images/checked@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/checked@2x.png -------------------------------------------------------------------------------- /assets/images/checked@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/checked@3x.png -------------------------------------------------------------------------------- /assets/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/close.png -------------------------------------------------------------------------------- /assets/images/defaultImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/defaultImage.png -------------------------------------------------------------------------------- /assets/images/dot_chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/dot_chat.png -------------------------------------------------------------------------------- /assets/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/download.png -------------------------------------------------------------------------------- /assets/images/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/edit.png -------------------------------------------------------------------------------- /assets/images/eyeoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/eyeoff.png -------------------------------------------------------------------------------- /assets/images/eyeon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/eyeon.png -------------------------------------------------------------------------------- /assets/images/filteroff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/filteroff.png -------------------------------------------------------------------------------- /assets/images/filteron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/filteron.png -------------------------------------------------------------------------------- /assets/images/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/forward.png -------------------------------------------------------------------------------- /assets/images/forward_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/forward_white.png -------------------------------------------------------------------------------- /assets/images/gallery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/gallery.png -------------------------------------------------------------------------------- /assets/images/icons/arrow-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/icons/arrow-back.png -------------------------------------------------------------------------------- /assets/images/icons/arrow-back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/icons/arrow-back@2x.png -------------------------------------------------------------------------------- /assets/images/icons/arrow-back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/icons/arrow-back@3x.png -------------------------------------------------------------------------------- /assets/images/locate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/locate.png -------------------------------------------------------------------------------- /assets/images/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/location.png -------------------------------------------------------------------------------- /assets/images/locationoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/locationoff.png -------------------------------------------------------------------------------- /assets/images/locationon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/locationon.png -------------------------------------------------------------------------------- /assets/images/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lock.png -------------------------------------------------------------------------------- /assets/images/lookingfors/420_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/420_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/420_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/420_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/bear_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/bear_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/bear_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/bear_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/camaction_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/camaction_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/camaction_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/camaction_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/drag_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/drag_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/drag_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/drag_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/duo_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/duo_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/duo_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/duo_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/glory_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/glory_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/glory_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/glory_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/muscle_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/muscle_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/muscle_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/muscle_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/pig_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/pig_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/pig_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/pig_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/quatro_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/quatro_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/quatro_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/quatro_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/quatroplus_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/quatroplus_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/quatroplus_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/quatroplus_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/rice_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/rice_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/rice_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/rice_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/sauna_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/sauna_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/sauna_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/sauna_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/service_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/service_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/service_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/service_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/snm_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/snm_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/snm_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/snm_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/transformation_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/transformation_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/transformation_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/transformation_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/trio_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/trio_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/trio_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/trio_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/twink_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/twink_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/twink_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/twink_on.png -------------------------------------------------------------------------------- /assets/images/lookingfors/xl_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/xl_off.png -------------------------------------------------------------------------------- /assets/images/lookingfors/xl_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/lookingfors/xl_on.png -------------------------------------------------------------------------------- /assets/images/mic_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/mic_off.png -------------------------------------------------------------------------------- /assets/images/mic_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/mic_on.png -------------------------------------------------------------------------------- /assets/images/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/minus.png -------------------------------------------------------------------------------- /assets/images/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/pause.png -------------------------------------------------------------------------------- /assets/images/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/play.png -------------------------------------------------------------------------------- /assets/images/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/plus.png -------------------------------------------------------------------------------- /assets/images/plus_pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/plus_pic.png -------------------------------------------------------------------------------- /assets/images/rating_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/rating_off.png -------------------------------------------------------------------------------- /assets/images/rating_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/rating_on.png -------------------------------------------------------------------------------- /assets/images/rating_small_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/rating_small_off.png -------------------------------------------------------------------------------- /assets/images/rating_small_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/rating_small_on.png -------------------------------------------------------------------------------- /assets/images/record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/record.png -------------------------------------------------------------------------------- /assets/images/report_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/report_profile.png -------------------------------------------------------------------------------- /assets/images/role_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/role_profile.png -------------------------------------------------------------------------------- /assets/images/searchoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/searchoff.png -------------------------------------------------------------------------------- /assets/images/searchon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/searchon.png -------------------------------------------------------------------------------- /assets/images/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/send.png -------------------------------------------------------------------------------- /assets/images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/settings.png -------------------------------------------------------------------------------- /assets/images/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/splash.jpg -------------------------------------------------------------------------------- /assets/images/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/splash.png -------------------------------------------------------------------------------- /assets/images/status_away.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/status_away.png -------------------------------------------------------------------------------- /assets/images/status_offline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/status_offline.png -------------------------------------------------------------------------------- /assets/images/status_online.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/status_online.png -------------------------------------------------------------------------------- /assets/images/switch_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/switch_camera.png -------------------------------------------------------------------------------- /assets/images/tab_bone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/tab_bone.png -------------------------------------------------------------------------------- /assets/images/tab_bone_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/tab_bone_selected.png -------------------------------------------------------------------------------- /assets/images/tab_chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/tab_chat.png -------------------------------------------------------------------------------- /assets/images/tab_chat_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/tab_chat_selected.png -------------------------------------------------------------------------------- /assets/images/tab_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/tab_profile.png -------------------------------------------------------------------------------- /assets/images/three_dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/three_dots.png -------------------------------------------------------------------------------- /assets/images/time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/time.png -------------------------------------------------------------------------------- /assets/images/video_cam_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/video_cam_off.png -------------------------------------------------------------------------------- /assets/images/video_cam_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/video_cam_on.png -------------------------------------------------------------------------------- /assets/images/voicecall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/assets/images/voicecall.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["module:metro-react-native-babel-preset"] 3 | } 4 | -------------------------------------------------------------------------------- /dangerfile.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable import/no-extraneous-dependencies */ 2 | import { markdown, message, danger, fail, warn } from 'danger'; 3 | import includes from 'lodash/includes'; 4 | 5 | const modifiedMD = danger.git.modified_files.join('\n- '); 6 | message(`Changed Files in this PR: \n - ${modifiedMD}`); 7 | 8 | if (danger.github.pr.body.length < 10) { 9 | fail('This pull request needs an description.'); 10 | } 11 | 12 | const packageChanged = includes(danger.git.modified_files, 'package.json'); 13 | const lockfileChanged = includes(danger.git.modified_files, 'yarn.lock'); 14 | if (packageChanged && !lockfileChanged) { 15 | const msg = 'Changes were made to package.json, but not to yarn.lock'; 16 | const idea = 'Perhaps you need to run `yarn install`?'; 17 | warn(`${msg} - ${idea}`); 18 | } 19 | 20 | const bigPRThreshold = 600; 21 | if (danger.github.pr.additions + danger.github.pr.deletions > bigPRThreshold) { 22 | warn(`:exclamation: Big PR`); 23 | markdown( 24 | `Pull Request size seems relatively large. If Pull Request contains multiple changes, split each into separate PR will helps faster, easier review.` 25 | ); 26 | } 27 | 28 | if (danger.github.pr.assignee === null) { 29 | fail( 30 | 'Please assign someone to merge this PR, and optionally include people who should review.' 31 | ); 32 | } 33 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | * @lint-ignore-every XPLATJSCOPYRIGHT1 4 | */ 5 | 6 | import {AppRegistry} from 'react-native'; 7 | import App from './App'; 8 | import {name as appName} from './app.json'; 9 | import {setCustomText, setCustomTextInput} from 'react-native-global-props'; 10 | 11 | const customTextProps = { 12 | style: { 13 | fontFamily: 'Proxima Nova Alt' 14 | } 15 | }; 16 | setCustomTextInput(customTextProps) 17 | setCustomText(customTextProps); 18 | 19 | AppRegistry.registerComponent(appName, () => App); 20 | -------------------------------------------------------------------------------- /ios/Pods/Local Podspecs/RNSha256.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "RNSha256", 3 | "version": "1.3.6", 4 | "summary": "Native sha256 react-native", 5 | "authors": "Hagen Huebel (hhuebel@itinance.com)", 6 | "homepage": "https://github.com/itinance/react-native-sha256", 7 | "license": "MIT", 8 | "platforms": { 9 | "ios": "8.0" 10 | }, 11 | "source": { 12 | "git": "https://github.com/itinance/react-native-sha256.git", 13 | "tag": "1.3.6" 14 | }, 15 | "source_files": "ios/**/*.{h,m,swift}", 16 | "preserve_paths": "**/*.js", 17 | "dependencies": { 18 | "React": [ 19 | 20 | ] 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ios/ReactNativeStarter-tvOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UIViewControllerBasedStatusBarAppearance 38 | 39 | NSLocationWhenInUseUsageDescription 40 | 41 | NSAppTransportSecurity 42 | 43 | 44 | NSExceptionDomains 45 | 46 | localhost 47 | 48 | NSExceptionAllowsInsecureHTTPLoads 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /ios/ReactNativeStarter-tvOSTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 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/ReactNativeStarter/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | @property (nonatomic, strong) UIWindow *window; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /ios/ReactNativeStarter/AppDelegate.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import "AppDelegate.h" 9 | 10 | #import 11 | #import 12 | 13 | @implementation AppDelegate 14 | 15 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 16 | { 17 | NSURL *jsCodeLocation; 18 | 19 | jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; 20 | 21 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 22 | moduleName:@"ReactNativeStarter" 23 | initialProperties:nil 24 | launchOptions:launchOptions]; 25 | rootView.backgroundColor = [UIColor blackColor]; 26 | 27 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 28 | UIViewController *rootViewController = [UIViewController new]; 29 | rootViewController.view = rootView; 30 | self.window.rootViewController = rootViewController; 31 | [self.window makeKeyAndVisible]; 32 | 33 | /*for (NSString* family in [UIFont familyNames]) 34 | { 35 | NSLog(@"%@", family); 36 | for (NSString* name in [UIFont fontNamesForFamilyName: family]) 37 | { 38 | NSLog(@" %@", name); 39 | } 40 | }*/ 41 | return YES; 42 | } 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/splash.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "splash.jpg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Images.xcassets/splash.imageset/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Images.xcassets/splash.imageset/splash.jpg -------------------------------------------------------------------------------- /ios/ReactNativeStarter/ReactNativeStarter.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-Bold.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-BoldItalic.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-Italic.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-Light.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-LightItalic.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-Medium.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-Regular.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-Semibold.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/Lato-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/Lato-Thin.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/aller_display_std_rg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/aller_display_std_rg.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/aller_std_bd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/aller_std_bd.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/aller_std_bd_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/aller_std_bd_it.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/aller_std_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/aller_std_it.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/aller_std_lt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/aller_std_lt.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/aller_std_lt_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/aller_std_lt_it.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/aller_std_rg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/aller_std_rg.ttf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/helvetica_ltstd_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/helvetica_ltstd_bold.otf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/proxima_nova_alt_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/proxima_nova_alt_bold.otf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/proxima_nova_alt_light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/proxima_nova_alt_light.otf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/proxima_nova_alt_regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/proxima_nova_alt_regular.otf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/proxima_nova_alt_semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/proxima_nova_alt_semibold.otf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/Resources/proxima_nova_alt_thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/ReactNativeStarter/Resources/proxima_nova_alt_thin.otf -------------------------------------------------------------------------------- /ios/ReactNativeStarter/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ios/ReactNativeStarterTests/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/ReactNativeStarterTests/ReactNativeStarterTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | #import 10 | 11 | #import 12 | #import 13 | 14 | #define TIMEOUT_SECONDS 600 15 | #define TEXT_TO_LOOK_FOR @"Welcome to React Native!" 16 | 17 | @interface ReactNativeStarterTests : XCTestCase 18 | 19 | @end 20 | 21 | @implementation ReactNativeStarterTests 22 | 23 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test 24 | { 25 | if (test(view)) { 26 | return YES; 27 | } 28 | for (UIView *subview in [view subviews]) { 29 | if ([self findSubviewInView:subview matching:test]) { 30 | return YES; 31 | } 32 | } 33 | return NO; 34 | } 35 | 36 | - (void)testRendersWelcomeScreen 37 | { 38 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; 39 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; 40 | BOOL foundElement = NO; 41 | 42 | __block NSString *redboxError = nil; 43 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { 44 | if (level >= RCTLogLevelError) { 45 | redboxError = message; 46 | } 47 | }); 48 | 49 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { 50 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 51 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 52 | 53 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { 54 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { 55 | return YES; 56 | } 57 | return NO; 58 | }]; 59 | } 60 | 61 | RCTSetLogFunction(RCTDefaultLogFunction); 62 | 63 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); 64 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); 65 | } 66 | 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /ios/Resources/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-Bold.ttf -------------------------------------------------------------------------------- /ios/Resources/Lato-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-BoldItalic.ttf -------------------------------------------------------------------------------- /ios/Resources/Lato-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-Italic.ttf -------------------------------------------------------------------------------- /ios/Resources/Lato-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-Light.ttf -------------------------------------------------------------------------------- /ios/Resources/Lato-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-LightItalic.ttf -------------------------------------------------------------------------------- /ios/Resources/Lato-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-Medium.ttf -------------------------------------------------------------------------------- /ios/Resources/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-Regular.ttf -------------------------------------------------------------------------------- /ios/Resources/Lato-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-Semibold.ttf -------------------------------------------------------------------------------- /ios/Resources/Lato-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/Lato-Thin.ttf -------------------------------------------------------------------------------- /ios/Resources/aller_display_std_rg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/aller_display_std_rg.ttf -------------------------------------------------------------------------------- /ios/Resources/aller_std_bd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/aller_std_bd.ttf -------------------------------------------------------------------------------- /ios/Resources/aller_std_bd_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/aller_std_bd_it.ttf -------------------------------------------------------------------------------- /ios/Resources/aller_std_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/aller_std_it.ttf -------------------------------------------------------------------------------- /ios/Resources/aller_std_lt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/aller_std_lt.ttf -------------------------------------------------------------------------------- /ios/Resources/aller_std_lt_it.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/aller_std_lt_it.ttf -------------------------------------------------------------------------------- /ios/Resources/aller_std_rg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/aller_std_rg.ttf -------------------------------------------------------------------------------- /ios/Resources/helvetica_ltstd_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/helvetica_ltstd_bold.otf -------------------------------------------------------------------------------- /ios/Resources/proxima_nova_alt_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/proxima_nova_alt_bold.otf -------------------------------------------------------------------------------- /ios/Resources/proxima_nova_alt_light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/proxima_nova_alt_light.otf -------------------------------------------------------------------------------- /ios/Resources/proxima_nova_alt_regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/proxima_nova_alt_regular.otf -------------------------------------------------------------------------------- /ios/Resources/proxima_nova_alt_semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/proxima_nova_alt_semibold.otf -------------------------------------------------------------------------------- /ios/Resources/proxima_nova_alt_thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/ios/Resources/proxima_nova_alt_thin.otf -------------------------------------------------------------------------------- /jest-setup.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-undef,import/no-extraneous-dependencies */ 2 | import { NativeModules } from 'react-native'; 3 | import Enzyme from 'enzyme'; 4 | import Adapter from 'enzyme-adapter-react-16'; 5 | 6 | Enzyme.configure({ adapter: new Adapter() }); 7 | 8 | NativeModules.StatusBarManager = { getHeight: jest.fn() }; 9 | 10 | jest.mock('react-native-languages', () => ({ 11 | RNLanguages: { 12 | language: 'en', 13 | languages: ['en'] 14 | } 15 | })); 16 | -------------------------------------------------------------------------------- /plopfile.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len */ 2 | module.exports = function(plop) { 3 | plop.setGenerator('module', { 4 | description: 'Generates new module with or without redux connection', 5 | prompts: [ 6 | { 7 | type: 'input', 8 | name: 'name', 9 | message: 'Module name (Casing will be modified)' 10 | }, 11 | { 12 | type: 'list', 13 | name: 'type', 14 | message: 'Choose Module type', 15 | choices: ['statefull', 'stateless'] 16 | } 17 | ], 18 | actions(data) { 19 | const actions = [ 20 | { 21 | type: 'add', 22 | path: 'src/modules/{{camelCase name}}/{{properCase name}}View.js', 23 | templateFile: 'generators/module/ModuleView.js.hbs' 24 | }, 25 | { 26 | type: 'add', 27 | path: 28 | 'src/modules/{{camelCase name}}/{{properCase name}}ViewContainer.js', 29 | templateFile: 'generators/module/ModuleViewContainer.js.hbs' 30 | } 31 | ]; 32 | 33 | if (data.type === 'statefull') { 34 | actions.push({ 35 | type: 'add', 36 | path: 'src/modules/{{camelCase name}}/{{properCase name}}State.js', 37 | templateFile: 'generators/module/ModuleState.js.hbs' 38 | }); 39 | actions.push({ 40 | type: 'modify', 41 | path: 'src/redux/reducer.js', 42 | pattern: /\/\/ ## Generator Reducer Imports/gi, 43 | template: 44 | "// ## Generator Reducer Imports\r\nimport {{camelCase name}} from '../modules/{{camelCase name}}/{{properCase name}}State';" 45 | }); 46 | actions.push({ 47 | type: 'modify', 48 | path: 'src/redux/reducer.js', 49 | pattern: /\/\/ ## Generator Reducers/gi, 50 | template: '// ## Generator Reducers\r\n {{camelCase name}},' 51 | }); 52 | } 53 | 54 | return actions; 55 | } 56 | }); 57 | 58 | plop.setGenerator('component', { 59 | description: 'Generates new component', 60 | prompts: [ 61 | { 62 | type: 'input', 63 | name: 'name', 64 | message: 'Component name (Casing will be modified)' 65 | } 66 | ], 67 | actions: [ 68 | { 69 | type: 'add', 70 | path: 'src/components/{{properCase name}}.js', 71 | templateFile: 'generators/component/Component.js.hbs' 72 | }, 73 | { 74 | type: 'add', 75 | path: 'src/components/__tests__/{{properCase name}}.spec.js', 76 | templateFile: 'generators/component/Component.spec.js.hbs' 77 | }, 78 | { 79 | type: 'modify', 80 | path: 'src/components/index.js', 81 | pattern: /\/\/ ## Generator Components Imports/gi, 82 | template: 83 | "// ## Generator Components Imports\r\nimport {{properCase name}} from './{{properCase name}}';" 84 | }, 85 | { 86 | type: 'modify', 87 | path: 'src/components/index.js', 88 | pattern: /\/\/ ## Generator Components Exports/gi, 89 | template: '// ## Generator Components Exports\r\n {{properCase name}},' 90 | } 91 | ] 92 | }); 93 | }; 94 | -------------------------------------------------------------------------------- /src/actions/AppActions.js: -------------------------------------------------------------------------------- 1 | import { api } from '../config'; 2 | import * as ACTION_TYPES from './ActionTypes'; 3 | import { AsyncStorage } from 'react-native'; 4 | import RNFetchBlob from 'rn-fetch-blob'; 5 | 6 | export function getModifiables(userId) { 7 | 8 | return { 9 | type: ACTION_TYPES.GET_MODIFIABLES, 10 | request: { 11 | url: `${api.baseURL}/api/user/modifiables/${userId}`, 12 | }, 13 | } 14 | } -------------------------------------------------------------------------------- /src/actions/CommentActions.js: -------------------------------------------------------------------------------- 1 | import { api } from '../config'; 2 | import * as ACTION_TYPES from './ActionTypes'; 3 | 4 | export function postComment(fromUserId, toUserId, comment) { 5 | let body = { 6 | review: comment 7 | } 8 | return { 9 | type: ACTION_TYPES.POST_COMMENT, 10 | request: { 11 | url: `${api.baseURL}/api/review/${fromUserId}/submit/${toUserId}`, 12 | method: 'post', 13 | body: JSON.stringify(body) 14 | }, 15 | } 16 | } 17 | 18 | export function confirmComment(fromUserId, toUserId, approved) { 19 | let body = { 20 | isAccepted: approved? "true" : "false" 21 | } 22 | return { 23 | type: ACTION_TYPES.CONFIRM_COMMENT, 24 | request: { 25 | url: `${api.baseURL}/api/review/${fromUserId}/confirm/${toUserId}`, 26 | method: 'post', 27 | body: JSON.stringify(body) 28 | }, 29 | 30 | } 31 | } 32 | 33 | export function getAcceptedComments(userId) { 34 | return { 35 | type: ACTION_TYPES.GET_ACCEPTED_COMMENTS, 36 | request: { 37 | url: `${api.baseURL}/api/review/${userId}/acceptedReviews` 38 | 39 | }, 40 | userId 41 | 42 | } 43 | } -------------------------------------------------------------------------------- /src/actions/GalleryActions.js: -------------------------------------------------------------------------------- 1 | import { api } from '../config'; 2 | import * as ACTION_TYPES from './ActionTypes'; 3 | import { AsyncStorage } from 'react-native'; 4 | import RNFetchBlob from 'rn-fetch-blob'; 5 | 6 | export function getGallery(viewerUserId, viewingUserId) { 7 | 8 | return { 9 | type: ACTION_TYPES.GET_GALLERY, 10 | request: { 11 | url: `${api.baseURL}/api/user/${viewerUserId}/gallery/${viewingUserId}`, 12 | }, 13 | } 14 | } 15 | export function addGallery(userId, media) { 16 | const {uri: PATH , isPrivate, mime} = media; 17 | return (dispatch, getState) => { 18 | 19 | AsyncStorage.getItem('auth') 20 | .then((authString) => { 21 | const auth = JSON.parse(authString); 22 | 23 | dispatch({ type: ACTION_TYPES.ADD_IMAGE_GALLERY }); 24 | const requrestURL = `${api.baseURL}/api/user/${userId}/gallery/add`; 25 | const body = [ 26 | { 27 | name: 'isPrivate', 28 | data: isPrivate? 'true': 'false', 29 | }, 30 | { 31 | name: 'galleryPhoto', 32 | filename: 'photo.jpg', 33 | data: RNFetchBlob.wrap(PATH.replace('file://', '')), 34 | type: mime, 35 | }, 36 | ]; 37 | 38 | console.log('addGallery', body); 39 | const requestCONFIG = { 40 | 'Content-Type': 'multipart/form-data', 41 | 'token': auth ? `${auth.token}` : '' 42 | }; 43 | 44 | RNFetchBlob.fetch('POST', requrestURL, requestCONFIG, body) 45 | .uploadProgress({ interval: 5000 }, (written, total) => { 46 | const LEVEL = Math.round((written / total) * 100); 47 | console.log('uploaded', LEVEL); 48 | dispatch({ 49 | type: ACTION_TYPES.ADD_IMAGE_GALLERY_PROCESS, 50 | data: LEVEL.toString(), 51 | }); 52 | }) 53 | .then((res) => { 54 | dispatch({ 55 | type: ACTION_TYPES.ADD_IMAGE_GALLERY_SUCCESS, 56 | data: res, 57 | }); 58 | }) 59 | .catch((err) => { 60 | console.error(err); 61 | dispatch({ type: ACTION_TYPES.ADD_IMAGE_GALLERY_FAILURE }); 62 | showAlert('upload error', 'Please try again later, or contact your administrator.'); 63 | }); 64 | }) 65 | .catch((err) => { 66 | console.log('UNAUTHORIZED', err.message); 67 | dispatch({ type: ACTION_TYPES.ADD_IMAGE_GALLERY_FAILURE }); 68 | }); 69 | 70 | } 71 | } 72 | export function deleteGallery(userId, photoIds) { 73 | 74 | return { 75 | type: ACTION_TYPES.DELETE_IMAGE_GALLERY, 76 | request: { 77 | url: `${api.baseURL}/api/user/${userId}/gallery/delete`, 78 | method: 'post', 79 | body: JSON.stringify({photoId: photoIds}) 80 | }, 81 | } 82 | } -------------------------------------------------------------------------------- /src/actions/LockCodeActions.js: -------------------------------------------------------------------------------- 1 | import { api } from '../config'; 2 | import * as ACTION_TYPES from './ActionTypes'; 3 | 4 | export function enableLock(lockCode) { 5 | 6 | return { 7 | type: ACTION_TYPES.ENABLE_LOCK, 8 | lockCode 9 | } 10 | } 11 | export function disableLock() { 12 | return { 13 | type: ACTION_TYPES.DISABLE_LOCK 14 | } 15 | } -------------------------------------------------------------------------------- /src/actions/PublicUserActions.js: -------------------------------------------------------------------------------- 1 | import { api } from '../config'; 2 | import * as ACTION_TYPES from './ActionTypes'; 3 | import { AsyncStorage } from 'react-native'; 4 | import { showToast } from '../helpers'; 5 | 6 | export function loadUserProfile(userId, otherUserId) { 7 | return { 8 | type: ACTION_TYPES.LOAD_PUBLIC_PROFILE, 9 | request: { 10 | url: `${api.baseURL}/api/user/${userId}/profile/${otherUserId}`, 11 | }, 12 | 13 | } 14 | } 15 | 16 | export function rateUser(userId, otherUserId, rating) { 17 | let body = { 18 | rating: rating 19 | } 20 | return { 21 | type: ACTION_TYPES.RATE_USER, 22 | request: { 23 | url: `${api.baseURL}/api/review/Rating/${userId}/${otherUserId}`, 24 | method: 'post', 25 | body: JSON.stringify(body) 26 | }, 27 | rating 28 | } 29 | } 30 | 31 | export function reportUser(reporter, reported, reason, comment) { 32 | let body = { 33 | reasonReported: reason, 34 | reportComment: comment 35 | } 36 | return { 37 | type: ACTION_TYPES.REPORT_USER, 38 | request: { 39 | url: `${api.baseURL}/api/report/${reporter}/profile/${reported}`, 40 | method: 'post', 41 | body: JSON.stringify(body) 42 | } 43 | } 44 | } 45 | export function blockUser(fromUserId, toUserId) { 46 | return { 47 | type: ACTION_TYPES.BLOCK_USER, 48 | request: { 49 | url: `${api.baseURL}/api/interaction/${fromUserId}/block/${toUserId}`, 50 | method: 'post' 51 | } 52 | } 53 | } 54 | 55 | export function unblockUser(fromUserId, toUserId) { 56 | return { 57 | type: ACTION_TYPES.UNBLOCK_USER, 58 | request: { 59 | url: `${api.baseURL}/api/interaction/${fromUserId}/unblock/${toUserId}`, 60 | method: 'post' 61 | } 62 | } 63 | } 64 | 65 | export function watchUser(fromUserId, toUserId) { 66 | return { 67 | type: ACTION_TYPES.WATCH_USER, 68 | request: { 69 | url: `${api.baseURL}/api/interaction/${fromUserId}/watch/${toUserId}`, 70 | method: 'post' 71 | } 72 | } 73 | } 74 | 75 | export function unwatchUser(fromUserId, toUserId) { 76 | return { 77 | type: ACTION_TYPES.UNWATCH_USER, 78 | request: { 79 | url: `${api.baseURL}/api/interaction/${fromUserId}/unwatch/${toUserId}`, 80 | method: 'post' 81 | } 82 | } 83 | } 84 | 85 | export function boneUser(fromUserId, toUserId) { 86 | return { 87 | type: ACTION_TYPES.BONE_USER, 88 | request: { 89 | url: `${api.baseURL}/api/interaction/${fromUserId}/bone/${toUserId}`, 90 | method: 'post' 91 | } 92 | } 93 | } 94 | 95 | export function unboneUser(fromUserId, toUserId) { 96 | return { 97 | type: ACTION_TYPES.UNBONE_USER, 98 | request: { 99 | url: `${api.baseURL}/api/interaction/${fromUserId}/unbone/${toUserId}`, 100 | method: 'post' 101 | } 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /src/components/BackgroundView.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { View, StyleSheet, ImageBackground } from 'react-native'; 3 | import { connect } from 'react-redux'; 4 | import ImageView from './ImageView'; 5 | 6 | class BackgroundView extends Component { 7 | render = () => { 8 | return ( 9 | 15 | 16 | ); 17 | }; 18 | } 19 | 20 | const styles = StyleSheet.create({ 21 | background: { 22 | position: 'absolute', 23 | left: 0, 24 | right: 0, 25 | top: 0, 26 | bottom: 0, 27 | }, 28 | }); 29 | 30 | const mapStateToProps = (state) => { 31 | const { app } = state; 32 | 33 | return { app }; 34 | }; 35 | 36 | export default connect(mapStateToProps)(BackgroundView); 37 | -------------------------------------------------------------------------------- /src/components/CollapsibleView.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { View, StyleSheet, TouchableOpacity, Text } from 'react-native'; 3 | import { colors } from '../styles'; 4 | 5 | export default class CollapsibleView extends React.Component { 6 | 7 | constructor(props) { 8 | super(props); 9 | this.state = { 10 | collapsed : true 11 | } 12 | } 13 | 14 | 15 | render() { 16 | const { containerStyle, textStyle, 17 | collapseButtonStyle, title, 18 | collapseText, viewAllText, 19 | getComponent } = this.props; 20 | return ( 21 | 22 | 23 | {title} 24 | { 26 | this.setState({collapsed: !this.state.collapsed}) 27 | }} 28 | > 29 | 30 | { !this.state.collapsed? (collapseText ? collapseText :'Collapse >') : (viewAllText? viewAllText : 'View all >')} 31 | 32 | 33 | 34 | 35 | { 36 | getComponent && 37 | getComponent(this.state.collapsed) 38 | } 39 | 40 | 41 | ) 42 | } 43 | 44 | } 45 | 46 | const styles = StyleSheet.create({ 47 | container: { 48 | alignSelf: 'stretch', 49 | padding: 16 50 | }, 51 | content: { 52 | alignSelf: 'stretch', 53 | marginTop: 8, 54 | }, 55 | header: { 56 | flexDirection: 'row', 57 | justifyContent: 'space-between', 58 | alignItems: 'center' 59 | }, 60 | text: { 61 | fontSize: 13, 62 | color: colors.red 63 | }, 64 | collapseButton: { 65 | fontSize: 13, 66 | color: colors.lightGray 67 | } 68 | 69 | 70 | 71 | }); -------------------------------------------------------------------------------- /src/components/Dropdown.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ModalDropdown from 'react-native-modal-dropdown'; 3 | import Icon from 'react-native-vector-icons/FontAwesome'; 4 | 5 | import { View, Text } from 'react-native'; 6 | 7 | import { colors } from '../styles'; 8 | 9 | class RNSDropDown extends React.Component { 10 | static defaultProps = { 11 | placeholder: 'Please Select...', 12 | selectedIndex: -1, 13 | color: colors.primary, 14 | borderColor: colors.primary, 15 | }; 16 | 17 | constructor(props) { 18 | super(props); 19 | this.state = { 20 | isOpened: false, 21 | }; 22 | 23 | this._openModal = this._openModal.bind(this); 24 | this._closeModal = this._closeModal.bind(this); 25 | } 26 | 27 | _openModal() { 28 | this.setState({ isOpened: true }); 29 | } 30 | 31 | _closeModal() { 32 | this.setState({ isOpened: false }); 33 | } 34 | 35 | render() { 36 | return ( 37 | { 51 | // eslint-disable-next-line no-param-reassign 52 | params.left = 0; 53 | // eslint-disable-next-line no-param-reassign 54 | params.right = 0; 55 | return params; 56 | }} 57 | renderRow={text => ( 58 | 59 | {text} 60 | 61 | )} 62 | onSelect={this.props.onSelect} 63 | > 64 | 71 | 72 | {this.props.selectedIndex > -1 && 73 | this.props.items[this.props.selectedIndex] 74 | ? this.props.items[this.props.selectedIndex] 75 | : this.props.placeholder} 76 | 77 | 83 | 84 | 85 | ); 86 | } 87 | } 88 | 89 | const styles = { 90 | container: { 91 | height: 40, 92 | borderWidth: 1, 93 | borderColor: colors.primary, 94 | alignItems: 'center', 95 | justifyContent: 'space-between', 96 | paddingHorizontal: 10, 97 | flexDirection: 'row', 98 | borderRadius: 5, 99 | }, 100 | icon: { 101 | marginLeft: 10, 102 | }, 103 | }; 104 | 105 | export default RNSDropDown; 106 | -------------------------------------------------------------------------------- /src/components/GridRow.js: -------------------------------------------------------------------------------- 1 | import React, { Children } from 'react'; 2 | import { View } from 'react-native'; 3 | import _ from 'lodash'; 4 | 5 | /** 6 | * Renders empty placeholder views to fill any empty space 7 | * left by missing views within a row. This is necessary so that 8 | * the items in a row remain aligned correctly. 9 | * 10 | * @param count Number of placeholders to render 11 | * @returns {*} Placeholder views 12 | */ 13 | function renderPlaceholderViews(count) { 14 | return _.times(count, index => ); 15 | } 16 | 17 | // Ref needed 18 | // eslint-disable-next-line react/prefer-stateless-function 19 | class GridRow extends React.Component { 20 | render() { 21 | const { children, columns } = this.props; 22 | const missingElementsCount = columns - Children.count(children); 23 | 24 | return ( 25 | 26 | {children} 27 | {renderPlaceholderViews(missingElementsCount)} 28 | 29 | ); 30 | } 31 | } 32 | 33 | /* eslint-disable no-param-reassign */ 34 | /** 35 | * Groups data into rows for rendering in grid views. 36 | * Elements may need more than one column in the grid. 37 | * To accomplish this, a column span can be assigned to 38 | * each element. The column span of an element determines 39 | * the number of columns it should occupy. 40 | * 41 | * @param data The data elements to group. 42 | * @param columns The number of columns of the grid. 43 | * @param getColumnSpan Optional function that returns the 44 | * column span of a single element. Each element has a span 45 | * of 1 by default. 46 | * @returns {Array} An array of rows, each row is an array of 47 | * data elements. 48 | */ 49 | GridRow.groupByRows = (data, columns, getColumnSpan = _.constant(1)) => { 50 | const groupedData = _.reduce( 51 | data, 52 | (result, element) => { 53 | let currentRow = _.last(result.rows); 54 | const elementSpan = getColumnSpan(element); 55 | 56 | if (!currentRow || result.currentRowSize + elementSpan > columns) { 57 | currentRow = []; 58 | result.currentRowSize = 0; 59 | result.rows.push(currentRow); 60 | } 61 | 62 | result.currentRowSize += elementSpan; 63 | currentRow.push(element); 64 | return result; 65 | }, 66 | { currentRowSize: 0, rows: [] }, 67 | ); 68 | 69 | return groupedData.rows; 70 | }; 71 | 72 | export default GridRow; 73 | -------------------------------------------------------------------------------- /src/components/Images/checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/src/components/Images/checked.png -------------------------------------------------------------------------------- /src/components/Images/checked@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/src/components/Images/checked@2x.png -------------------------------------------------------------------------------- /src/components/Images/checked@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/src/components/Images/checked@3x.png -------------------------------------------------------------------------------- /src/components/LoadingOverlay.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { View, StyleSheet, ImageBackground, ActivityIndicator } from 'react-native'; 3 | import { connect } from 'react-redux'; 4 | 5 | class LoadingOverlay extends Component { 6 | 7 | render = () => { 8 | const { visible } = this.props; 9 | if(!visible) 10 | return null; 11 | return ( 12 | 13 | 14 | 15 | 16 | ); 17 | }; 18 | } 19 | 20 | const styles = StyleSheet.create({ 21 | background: { 22 | position: 'absolute', 23 | left: 0, 24 | right: 0, 25 | top: 0, 26 | bottom: 0, 27 | zIndex: 1, 28 | justifyContent: 'center', 29 | alignItems:'center' 30 | }, 31 | }); 32 | 33 | const mapStateToProps = (state) => { 34 | const { app } = state; 35 | 36 | return { app }; 37 | }; 38 | 39 | export default LoadingOverlay; 40 | -------------------------------------------------------------------------------- /src/components/RadioGroup.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import { TouchableOpacity, View, Text } from 'react-native'; 4 | 5 | import { colors } from '../styles'; 6 | 7 | export default function RNSRadioGroup({ 8 | items, 9 | selectedIndex, 10 | onChange, 11 | style, 12 | underline, 13 | }) { 14 | return ( 15 | 18 | {items && 19 | items.map((item, index) => { 20 | let isActive = false; 21 | if (selectedIndex !== undefined && selectedIndex === index) 22 | isActive = true; 23 | 24 | let activeStyle = styles.itemActive; 25 | if (underline) activeStyle = styles.itemActiveUnderline; 26 | 27 | let activeTextStyle = styles.textActive; 28 | if (underline) activeTextStyle = styles.textActiveUnderline; 29 | 30 | return ( 31 | onChange(index)} 33 | key={item.id || item} 34 | style={[ 35 | styles.item, 36 | underline && styles.itemUnderline, 37 | isActive && activeStyle, 38 | ]} 39 | > 40 | 47 | {item.value || item} 48 | 49 | {underline && isActive && ( 50 | 58 | )} 59 | 60 | ); 61 | })} 62 | 63 | ); 64 | } 65 | 66 | const styles = { 67 | container: { 68 | flex: 1, 69 | flexDirection: 'row', 70 | borderColor: colors.primary, 71 | borderWidth: 1, 72 | borderRadius: 5, 73 | }, 74 | underline: { 75 | borderWidth: 0, 76 | }, 77 | item: { 78 | flex: 1, 79 | alignItems: 'center', 80 | justifyContent: 'center', 81 | paddingVertical: 10, 82 | }, 83 | itemUnderline: { 84 | borderBottomWidth: 0.5, 85 | borderBottomColor: '#e3e3e3', 86 | }, 87 | itemActive: { 88 | backgroundColor: colors.primary, 89 | }, 90 | itemActiveUnderline: { 91 | borderBottomWidth: 2, 92 | borderBottomColor: colors.primary, 93 | }, 94 | text: { 95 | color: colors.primary, 96 | }, 97 | textUnderline: { 98 | color: '#a6a6a6', 99 | }, 100 | textActive: { 101 | color: colors.white, 102 | }, 103 | textActiveUnderline: { 104 | color: colors.primary, 105 | }, 106 | }; 107 | -------------------------------------------------------------------------------- /src/components/StyledButton.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dingdev88/react_native_dating_app/edf3d55e142085ff688adbb3f65953c34c6b7865/src/components/StyledButton.js -------------------------------------------------------------------------------- /src/components/StyledText.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text as RNText, StyleSheet } from 'react-native'; 3 | 4 | import { colors, fonts } from '../styles'; 5 | 6 | function applyGeneralStyles(props) { 7 | return [ 8 | props.style && props.style, 9 | props.bold && styles.bold, 10 | props.light && styles.light, 11 | props.white && styles.white, 12 | props.underline && styles.underline, 13 | props.hCenter && { textAlign: 'center' }, 14 | props.lineThrough && styles.lineThrough, 15 | props.color && { color: props.color }, 16 | props.size && { fontSize: props.size }, 17 | ]; 18 | } 19 | 20 | export function Text(props) { 21 | const finalStyle = [styles.default, ...applyGeneralStyles(props)]; 22 | 23 | return ; 24 | } 25 | 26 | export function Title(props) { 27 | const finalStyle = [ 28 | styles.default, 29 | styles.title, 30 | ...applyGeneralStyles(props), 31 | ]; 32 | 33 | return ; 34 | } 35 | 36 | export function Caption(props) { 37 | const finalStyle = [ 38 | styles.default, 39 | styles.caption, 40 | ...applyGeneralStyles(props), 41 | ]; 42 | 43 | return ; 44 | } 45 | 46 | const styles = StyleSheet.create({ 47 | default: { 48 | fontFamily: fonts.primaryRegular, 49 | }, 50 | bold: { 51 | fontFamily: fonts.primaryBold, 52 | }, 53 | light: { 54 | fontFamily: fonts.primaryLight, 55 | }, 56 | title: { 57 | fontSize: 18, 58 | }, 59 | caption: { 60 | fontSize: 13, 61 | }, 62 | underline: { 63 | textDecorationLine: 'underline', 64 | textDecorationStyle: 'solid', 65 | textDecorationColor: colors.gray, 66 | }, 67 | lineThrough: { 68 | textDecorationLine: 'line-through', 69 | }, 70 | white: { 71 | color: colors.white, 72 | }, 73 | }); 74 | -------------------------------------------------------------------------------- /src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { View, Platform, StyleSheet, TextInput } from 'react-native'; 3 | 4 | import { fonts, colors } from '../styles'; 5 | 6 | const RNSTextInput = props => { 7 | const finalStyle = [ 8 | styles.default, 9 | props.type === 'bordered' && styles.bordered, 10 | props.dark && styles.dark, 11 | props.style && props.style, 12 | ]; 13 | 14 | return ( 15 | 16 | 22 | {Platform.OS === 'ios' && ( 23 | 24 | )} 25 | 26 | ); 27 | }; 28 | 29 | const HEIGHT = 40; 30 | 31 | const styles = StyleSheet.create({ 32 | default: { 33 | height: HEIGHT, 34 | color: 'white', 35 | fontFamily: fonts.primaryRegular, 36 | ...Platform.select({ 37 | android: { 38 | paddingLeft: 5, 39 | opacity: 0.9, 40 | }, 41 | }), 42 | }, 43 | bordered: { 44 | borderWidth: 0.5, 45 | borderColor: colors.lightGray, 46 | borderRadius: 20, 47 | paddingHorizontal: 20, 48 | }, 49 | dark: { 50 | color: colors.gray, 51 | }, 52 | primary: { 53 | borderRadius: HEIGHT / 2, 54 | backgroundColor: 'transparent', 55 | }, 56 | }); 57 | 58 | export default RNSTextInput; 59 | -------------------------------------------------------------------------------- /src/components/TopNavigatorView.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { View, StyleSheet, Text, TouchableOpacity } from 'react-native'; 3 | import { connect } from 'react-redux'; 4 | import PropTypes from 'prop-types'; 5 | import { colors } from '../styles' 6 | import Icon from 'react-native-vector-icons/FontAwesome'; 7 | 8 | class TopNavigatorView extends Component { 9 | render = () => { 10 | const { title, rightComponent, leftComponent } = this.props; 11 | return ( 12 | 13 | 14 | { 15 | title&& 16 | {title} 17 | } 18 | 19 | 20 | 21 | { 23 | if(this.props.onBackPressed) this.props.onBackPressed(); 24 | }} 25 | > 26 | 27 | 28 | 29 | 30 | 31 | 32 | { leftComponent || } 33 | { rightComponent || } 34 | 35 | 36 | 37 | 38 | ); 39 | }; 40 | } 41 | 42 | TopNavigatorView.proptypes = { 43 | title: PropTypes.string, 44 | onBackPressed: PropTypes.func, 45 | rightComponent: PropTypes.object, 46 | leftComponent: PropTypes.object, 47 | containerStyle: PropTypes.object 48 | }; 49 | 50 | const styles = StyleSheet.create({ 51 | container: { 52 | height: 50, 53 | alignSelf: 'stretch', 54 | flexDirection: 'row', 55 | alignItems:'center' 56 | }, 57 | titleContainer: { 58 | left: 0, 59 | top: 0, 60 | right: 0, 61 | bottom: 0, 62 | position: 'absolute', 63 | alignItems: 'center', 64 | justifyContent: 'center' 65 | }, 66 | backContainer: { 67 | width: 50, 68 | height: 50, 69 | justifyContent: 'center', 70 | alignItems:'center' 71 | }, 72 | 73 | title: { 74 | fontSize: 24, 75 | fontWeight:'bold', 76 | color: colors.white 77 | } 78 | }); 79 | 80 | export default TopNavigatorView; 81 | -------------------------------------------------------------------------------- /src/components/index.js: -------------------------------------------------------------------------------- 1 | // ## Generator Components Imports 2 | import Button from './Button'; 3 | import RadioGroup from './RadioGroup'; 4 | import Dropdown from './Dropdown'; 5 | import GridRow from './GridRow'; 6 | import TextInput from './TextInput'; 7 | import SegmentedControl from './SegmentedControl'; 8 | import BackgroundView from './BackgroundView'; 9 | import IconizedTextInput from './IconizedTextInput'; 10 | import LoadingOverlay from './LoadingOverlay'; 11 | import ImageView from './ImageView'; 12 | import CollapsibleView from './CollapsibleView'; 13 | import TopNavigatorView from './TopNavigatorView'; 14 | import PhotoPickerView from './PhotoPickerView'; 15 | import StyledButton from './StyledButton'; 16 | 17 | export { 18 | // ## Generator Components Exports 19 | Button, 20 | RadioGroup, 21 | Dropdown, 22 | GridRow, 23 | TextInput, 24 | SegmentedControl, 25 | BackgroundView, 26 | IconizedTextInput, 27 | LoadingOverlay, 28 | ImageView, 29 | CollapsibleView, 30 | TopNavigatorView, 31 | PhotoPickerView, 32 | StyledButton 33 | }; 34 | -------------------------------------------------------------------------------- /src/config/api.js: -------------------------------------------------------------------------------- 1 | 2 | export default { 3 | baseURL: 'http://34.219.223.44:2368', 4 | base: 'http://34.219.223.44', 5 | twilioURL: 'http://34.219.223.44:2368/api/twilio/token', 6 | socketURL: 'http://34.219.223.44:2368/socket' 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/config/index.js: -------------------------------------------------------------------------------- 1 | import api from './api' 2 | import terms from './terms' 3 | import unitSystems from './unitSystems' 4 | 5 | export { 6 | api, 7 | terms, 8 | unitSystems 9 | } -------------------------------------------------------------------------------- /src/config/unitSystems.js: -------------------------------------------------------------------------------- 1 | 2 | export default [ 3 | { 4 | id: 1, 5 | name: 'Metric' 6 | }, 7 | { 8 | id:2, 9 | name: 'Imperial' 10 | } 11 | ] 12 | 13 | -------------------------------------------------------------------------------- /src/helpers/alert.js: -------------------------------------------------------------------------------- 1 | import {Alert} from 'react-native'; 2 | export function showAlert(title, message){ 3 | setTimeout(()=> { 4 | Alert.alert(title, message); 5 | }, 200) 6 | } 7 | 8 | export function showAlertWithCallback(title, message, cb) { 9 | setTimeout(()=> { 10 | Alert.alert(title, message, [{text: 'OK', onPress:cb}]); 11 | }, 200) 12 | } 13 | export function showAlertWithQuestionCallback(title, message, cb) { 14 | setTimeout(()=> { 15 | Alert.alert(title, message, [{text: 'YES', onPress:cb},{text: 'NO'}]); 16 | }, 200) 17 | } 18 | 19 | export function confirmAlertWithCallback(title, message, cb) { 20 | setTimeout(()=> { 21 | Alert.alert(title, message, [{text: 'OK', onPress:cb}, {text: 'Cancel', onPress: () => false, style: 'cancel'}]); 22 | }, 200) 23 | } -------------------------------------------------------------------------------- /src/helpers/calculateConstrainedDimensions.js: -------------------------------------------------------------------------------- 1 | export default function calculateConstrainedDimensions(sourceWidthHeight, maxWidthHeight) { 2 | var ratio = Math.min(maxWidthHeight.width / sourceWidthHeight.width, maxWidthHeight.height / sourceWidthHeight.height); 3 | 4 | return { width: sourceWidthHeight.width*ratio, height: sourceWidthHeight.height*ratio }; 5 | } -------------------------------------------------------------------------------- /src/helpers/calculatePortraitDimension.js: -------------------------------------------------------------------------------- 1 | import { 2 | Dimensions 3 | } from 'react-native'; 4 | export default function calculatePortraitDimension() { 5 | var { 6 | width: deviceWidth, 7 | height: deviceHeight 8 | } = Dimensions.get('window'); 9 | 10 | var portraitWidth = deviceWidth < deviceHeight ? deviceWidth : deviceHeight; 11 | var portraitHeight = deviceWidth < deviceHeight ? deviceHeight: deviceWidth; 12 | return { width: portraitWidth, height: portraitHeight}; 13 | 14 | } -------------------------------------------------------------------------------- /src/helpers/encrypt.js: -------------------------------------------------------------------------------- 1 | import { sha256 } from 'react-native-sha256'; 2 | 3 | export function sha256Hash(message, cb) { 4 | sha256(message).then( hash => { 5 | cb(hash) 6 | }) 7 | } -------------------------------------------------------------------------------- /src/helpers/index.js: -------------------------------------------------------------------------------- 1 | 2 | import calculateConstrainedDimensions from './calculateConstrainedDimensions'; 3 | import calculatePortraitDimension from './calculatePortraitDimension'; 4 | import { showAlert, showAlertWithCallback, showAlertWithQuestionCallback } from './alert'; 5 | import { emailValidate, passwordValidate } from './validator'; 6 | import { showToast } from './toast'; 7 | import { sha256Hash } from './encrypt'; 8 | 9 | export { 10 | calculatePortraitDimension, 11 | calculateConstrainedDimensions, 12 | showAlert, 13 | showAlertWithCallback, 14 | emailValidate, 15 | passwordValidate, 16 | sha256Hash, 17 | showToast, 18 | showAlertWithQuestionCallback 19 | } -------------------------------------------------------------------------------- /src/helpers/toast.js: -------------------------------------------------------------------------------- 1 | import Toast from 'react-native-root-toast'; 2 | export function showToast(message, time){ 3 | 4 | // Add a Toast on screen. 5 | let toast = Toast.show(message, { 6 | duration: time== 'long' ? Toast.durations.LONG : Toast.durations.SHORT, 7 | position: Toast.positions.BOTTOM, 8 | shadow: true, 9 | animation: true, 10 | hideOnPress: true, 11 | delay: 0, 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /src/helpers/validator.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var tester = /^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/; 4 | exports.emailValidate = function(email) 5 | { 6 | if (!email) 7 | return false; 8 | 9 | if(email.length>254) 10 | return false; 11 | 12 | var valid = tester.test(email); 13 | if(!valid) 14 | return false; 15 | 16 | // Further checking of some things regex can't handle 17 | var parts = email.split("@"); 18 | if(parts[0].length>64) 19 | return false; 20 | 21 | var domainParts = parts[1].split("."); 22 | if(domainParts.some(function(part) { return part.length>63; })) 23 | return false; 24 | 25 | return true; 26 | } 27 | 28 | exports.passwordValidate = function(password) 29 | { 30 | if (password.length < 6) 31 | return false; 32 | return true; 33 | } -------------------------------------------------------------------------------- /src/middlewares/index.js: -------------------------------------------------------------------------------- 1 | import request from './requestMiddleware'; 2 | import requestFormUrlEncode from './requestFormUrlEncodeMiddleware'; 3 | import thunk from 'redux-thunk'; 4 | 5 | export default [ request, requestFormUrlEncode, thunk ]; -------------------------------------------------------------------------------- /src/middlewares/requestFormUrlEncodeMiddleware.js: -------------------------------------------------------------------------------- 1 | import { AsyncStorage } from 'react-native'; 2 | 3 | export default function requestFormUrlEncodeMiddleware() { 4 | return (next) => (action) => { 5 | const { request, type, retryAction, ...rest } = action; 6 | 7 | if (!request) return next(action); 8 | 9 | const REQUEST = type; 10 | const SUCCESS = `${type}_SUCCESS`; 11 | const FAILURE = `${type}_FAILURE`; 12 | 13 | const UNAUTHORIZED = 'AUTH_UNAUTHORIZED'; 14 | const TERMINATED = 'AUTH_TERMINATED'; 15 | 16 | next({ ...rest, type: REQUEST, isLoading: true }); 17 | 18 | AsyncStorage.getItem('auth') 19 | .then((authString) => { 20 | const auth = JSON.parse(authString); 21 | 22 | const defaults = { 23 | headers: { 24 | Accept: 'application/json', 25 | 'Content-Type': 'application/json', 26 | Authorization: auth ? `Bearer ${auth.accessToken}` : '', 27 | }, 28 | }; 29 | if(request.body) { 30 | var formBody = []; 31 | for (var property in request.body) { 32 | var encodedKey = encodeURIComponent(property); 33 | var encodedValue = encodeURIComponent(details[property]); 34 | formBody.push(encodedKey + "=" + encodedValue); 35 | } 36 | formBody = formBody.join("&"); 37 | request.body = formBody; 38 | } 39 | 40 | 41 | return fetch(request.url, { ...defaults, ...request }) 42 | .then((res) => { 43 | if (res.status === 204) { 44 | next({ ...rest, type: SUCCESS, isLoading: false }); 45 | } else if (res.ok) { 46 | return res.json().then((data) => next({ ...rest, data, type: SUCCESS, isLoading: false })); 47 | } else if (res.status === 401) { 48 | console.log("unauthorized", type); 49 | next({ ...rest, type: FAILURE, lastAction: action, isLoading: false }); 50 | next({ ...rest, type: UNAUTHORIZED, lastAction: action }); 51 | } else if (res.status === 430) { 52 | next({ ...rest, type: FAILURE, lastAction: action, isLoading: false }); 53 | next({ ...rest, type: TERMINATED, lastAction: action }); 54 | } else { 55 | next({ ...rest, type: FAILURE, lastAction: action, isLoading: false }); 56 | } 57 | }) 58 | .catch((error) => { 59 | next({ ...rest, error, type: FAILURE }); 60 | console.log('MIDDLE WARE REQUEST ERROR', error); 61 | 62 | return false; 63 | }); 64 | }) 65 | .catch((err) => { 66 | console.log('UNAUTHORIZED', err.message); 67 | }); 68 | }; 69 | } 70 | -------------------------------------------------------------------------------- /src/middlewares/requestMiddleware.js: -------------------------------------------------------------------------------- 1 | import { AsyncStorage } from 'react-native'; 2 | 3 | export default function requestMiddleware() { 4 | return (next) => (action) => { 5 | const { request, type, retryAction, ...rest } = action; 6 | 7 | if (!request) return next(action); 8 | 9 | const REQUEST = type; 10 | const SUCCESS = `${type}_SUCCESS`; 11 | const FAILURE = `${type}_FAILURE`; 12 | 13 | const UNAUTHORIZED = 'AUTH_UNAUTHORIZED'; 14 | const TERMINATED = 'AUTH_TERMINATED'; 15 | 16 | next({ ...rest, type: REQUEST, isLoading: true }); 17 | 18 | AsyncStorage.getItem('auth') 19 | .then((authString) => { 20 | const auth = JSON.parse(authString); 21 | 22 | const defaults = { 23 | headers: { 24 | Accept: 'application/json', 25 | 'Content-Type': 'application/json', 26 | 'token': auth ? `${auth.token}` : '', 27 | }, 28 | }; 29 | 30 | return fetch(request.url, { ...defaults, ...request }) 31 | .then((res) => { 32 | console.log('Reponse', res); 33 | if (res.status === 204) { 34 | next({ ...rest, type: SUCCESS, isLoading: false }); 35 | } else if (res.ok) { 36 | return res.json().then((data) => { 37 | if(data.success) { 38 | next({ ...rest, data, type: SUCCESS, isLoading: false }) 39 | }else { 40 | next({ ...rest, type: FAILURE, lastAction: action, isLoading: false, message: data.message }); 41 | } 42 | }); 43 | } else if (res.status === 401) { 44 | next({ ...rest, type: FAILURE, lastAction: action, isLoading: false }); 45 | next({ ...rest, type: UNAUTHORIZED, lastAction: action }); 46 | } else if (res.status === 430) { 47 | next({ ...rest, type: FAILURE, lastAction: action, isLoading: false }); 48 | next({ ...rest, type: TERMINATED, lastAction: action }); 49 | } else { 50 | 51 | next({ ...rest, type: FAILURE, lastAction: action, isLoading: false }); 52 | } 53 | }) 54 | .catch((error) => { 55 | next({ ...rest, error, type: FAILURE }); 56 | console.log('MIDDLE WARE REQUEST ERROR', error); 57 | 58 | return false; 59 | }); 60 | }) 61 | .catch((err) => { 62 | console.log('UNAUTHORIZED', err.message); 63 | }); 64 | }; 65 | } 66 | -------------------------------------------------------------------------------- /src/modules/AppState.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | type AppStateType = { 3 | isFirstOpen: boolean, 4 | }; 5 | 6 | type ActionType = { 7 | type: string, 8 | payload?: any, 9 | }; 10 | 11 | export const initialState: AppStateType = { 12 | isFirstOpen: true, 13 | }; 14 | 15 | export const SET_FIRST_OPEN = 'AppState/SET_FIRST_OPEN'; 16 | 17 | export function setAppOpened(): ActionType { 18 | return { 19 | type: SET_FIRST_OPEN, 20 | }; 21 | } 22 | 23 | export default function AppStateReducer( 24 | state: AppStateType = initialState, 25 | action: ActionType, 26 | ): AppStateType { 27 | switch (action.type) { 28 | case SET_FIRST_OPEN: 29 | return { 30 | ...state, 31 | isFirstOpen: false, 32 | }; 33 | default: 34 | return state; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/modules/AppView.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import Navigator from './navigation/Navigator'; 4 | 5 | export default function AppView() { 6 | return {}} uriPrefix="/app" />; 7 | } 8 | -------------------------------------------------------------------------------- /src/modules/AppViewContainer.js: -------------------------------------------------------------------------------- 1 | import { compose, lifecycle } from 'recompose'; 2 | import { Platform, UIManager, StatusBar } from 'react-native'; 3 | 4 | import AppView from './AppView'; 5 | 6 | export default compose( 7 | lifecycle({ 8 | componentWillMount() { 9 | StatusBar.setBarStyle('light-content'); 10 | if (Platform.OS === 'android') { 11 | // eslint-disable-next-line no-unused-expressions 12 | UIManager.setLayoutAnimationEnabledExperimental && 13 | UIManager.setLayoutAnimationEnabledExperimental(true); 14 | } 15 | }, 16 | }), 17 | )(AppView); 18 | -------------------------------------------------------------------------------- /src/modules/auth/Auth.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | StyleSheet, 4 | View, 5 | Platform, 6 | } from 'react-native'; 7 | 8 | import { fonts, colors } from '../../styles'; 9 | import { Button, BackgroundView } from '../../components'; 10 | import { getStatusBarHeight, getBottomSpace } from 'react-native-iphone-x-helper'; 11 | 12 | 13 | export default class Auth extends React.Component { 14 | 15 | componentDidMount() { 16 | } 17 | 18 | render() { 19 | return ( 20 | 21 | 22 | 23 | 24 |