├── .buckconfig ├── .circleci └── config.yml ├── .env ├── .eslintignore ├── .eslintrc ├── .flowconfig ├── .gitattributes ├── .gitignore ├── .watchmanconfig ├── LICENSE ├── README.md ├── __mocks__ ├── index.js └── react-native-navigation.js ├── android ├── app │ ├── BUCK │ ├── build.gradle │ ├── 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 │ │ │ ├── MaterialCommunityIcons.ttf │ │ │ ├── MaterialIcons.ttf │ │ │ ├── Octicons.ttf │ │ │ ├── SFProDisplayBlack.otf │ │ │ ├── SFProDisplayBold.otf │ │ │ ├── SFProDisplayHeavy.otf │ │ │ ├── SFProDisplayLight.otf │ │ │ ├── SFProDisplayMedium.otf │ │ │ ├── SFProDisplayRegular.otf │ │ │ ├── SFProDisplaySemibold.otf │ │ │ ├── SFProDisplayThin.otf │ │ │ ├── SFProDisplayUltralight.otf │ │ │ ├── SimpleLineIcons.ttf │ │ │ └── Zocial.ttf │ │ ├── java │ │ └── com │ │ │ └── reactnativestarterkit │ │ │ ├── MainActivity.java │ │ │ └── MainApplication.java │ │ └── res │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.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 ├── babel.config.js ├── index.js ├── ios ├── Frameworks │ ├── FBSDKCoreKit.framework │ │ ├── FBSDKCoreKit │ │ ├── Headers │ │ │ ├── FBSDKAccessToken.h │ │ │ ├── FBSDKAppEvents.h │ │ │ ├── FBSDKAppLink.h │ │ │ ├── FBSDKAppLinkNavigation.h │ │ │ ├── FBSDKAppLinkResolver.h │ │ │ ├── FBSDKAppLinkResolving.h │ │ │ ├── FBSDKAppLinkReturnToRefererController.h │ │ │ ├── FBSDKAppLinkReturnToRefererView.h │ │ │ ├── FBSDKAppLinkTarget.h │ │ │ ├── FBSDKAppLinkUtility.h │ │ │ ├── FBSDKApplicationDelegate.h │ │ │ ├── FBSDKButton.h │ │ │ ├── FBSDKConstants.h │ │ │ ├── FBSDKCopying.h │ │ │ ├── FBSDKCoreKit.h │ │ │ ├── FBSDKGraphErrorRecoveryProcessor.h │ │ │ ├── FBSDKGraphRequest.h │ │ │ ├── FBSDKGraphRequestConnection.h │ │ │ ├── FBSDKGraphRequestDataAttachment.h │ │ │ ├── FBSDKMacros.h │ │ │ ├── FBSDKMeasurementEvent.h │ │ │ ├── FBSDKMutableCopying.h │ │ │ ├── FBSDKProfile.h │ │ │ ├── FBSDKProfilePictureView.h │ │ │ ├── FBSDKSettings.h │ │ │ ├── FBSDKTestUsersManager.h │ │ │ ├── FBSDKURL.h │ │ │ ├── FBSDKUtility.h │ │ │ └── FBSDKWebViewAppLinkResolver.h │ │ ├── Info.plist │ │ └── Modules │ │ │ └── module.modulemap │ ├── FBSDKLoginKit.framework │ │ ├── FBSDKLoginKit │ │ ├── Headers │ │ │ ├── FBSDKDeviceLoginCodeInfo.h │ │ │ ├── FBSDKDeviceLoginManager.h │ │ │ ├── FBSDKDeviceLoginManagerResult.h │ │ │ ├── FBSDKLoginButton.h │ │ │ ├── FBSDKLoginConstants.h │ │ │ ├── FBSDKLoginKit.h │ │ │ ├── FBSDKLoginManager.h │ │ │ ├── FBSDKLoginManagerLoginResult.h │ │ │ ├── FBSDKLoginTooltipView.h │ │ │ └── FBSDKTooltipView.h │ │ ├── Info.plist │ │ └── Modules │ │ │ └── module.modulemap │ └── FBSDKShareKit.framework │ │ ├── FBSDKShareKit │ │ ├── Headers │ │ ├── FBSDKAppGroupAddDialog.h │ │ ├── FBSDKAppGroupContent.h │ │ ├── FBSDKAppGroupJoinDialog.h │ │ ├── FBSDKAppInviteContent.h │ │ ├── FBSDKAppInviteDialog.h │ │ ├── FBSDKCameraEffectArguments.h │ │ ├── FBSDKCameraEffectTextures.h │ │ ├── FBSDKGameRequestContent.h │ │ ├── FBSDKGameRequestDialog.h │ │ ├── FBSDKHashtag.h │ │ ├── FBSDKLikeButton.h │ │ ├── FBSDKLikeControl.h │ │ ├── FBSDKLikeObjectType.h │ │ ├── FBSDKLiking.h │ │ ├── FBSDKMessageDialog.h │ │ ├── FBSDKSendButton.h │ │ ├── FBSDKShareAPI.h │ │ ├── FBSDKShareButton.h │ │ ├── FBSDKShareCameraEffectContent.h │ │ ├── FBSDKShareConstants.h │ │ ├── FBSDKShareDialog.h │ │ ├── FBSDKShareDialogMode.h │ │ ├── FBSDKShareKit.h │ │ ├── FBSDKShareLinkContent.h │ │ ├── FBSDKShareMediaContent.h │ │ ├── FBSDKShareMessengerActionButton.h │ │ ├── FBSDKShareMessengerGenericTemplateContent.h │ │ ├── FBSDKShareMessengerGenericTemplateElement.h │ │ ├── FBSDKShareMessengerMediaTemplateContent.h │ │ ├── FBSDKShareMessengerOpenGraphMusicTemplateContent.h │ │ ├── FBSDKShareMessengerURLActionButton.h │ │ ├── FBSDKShareOpenGraphAction.h │ │ ├── FBSDKShareOpenGraphContent.h │ │ ├── FBSDKShareOpenGraphObject.h │ │ ├── FBSDKShareOpenGraphValueContainer.h │ │ ├── FBSDKSharePhoto.h │ │ ├── FBSDKSharePhotoContent.h │ │ ├── FBSDKShareVideo.h │ │ ├── FBSDKShareVideoContent.h │ │ ├── FBSDKSharing.h │ │ ├── FBSDKSharingButton.h │ │ ├── FBSDKSharingContent.h │ │ ├── FBSDKSharingScheme.h │ │ └── FBSDKSharingValidation.h │ │ ├── Info.plist │ │ └── Modules │ │ └── module.modulemap ├── Podfile ├── Podfile.lock ├── ReactNativeStarterKit.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── ReactNativeStarterKit-tvOS.xcscheme │ │ └── ReactNativeStarterKit.xcscheme ├── ReactNativeStarterKit.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings ├── ReactNativeStarterKit │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj │ │ └── LaunchScreen.xib │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Info.plist │ └── main.m └── ReactNativeStarterKitTests │ ├── Info.plist │ └── ReactNativeStarterKitTests.m ├── jest-setup.js ├── logo.png ├── package.json ├── src ├── assets │ ├── icons │ │ ├── ic_nav_logout@1x.png │ │ ├── ic_nav_logout@2x.png │ │ ├── ic_nav_logout@3x.png │ │ ├── ic_nav_user@1x.png │ │ ├── ic_nav_user@2x.png │ │ ├── ic_nav_user@3x.png │ │ ├── ic_tab_home.png │ │ ├── ic_tab_home@2x.png │ │ ├── ic_tab_home@3x.png │ │ ├── ic_tab_menu.png │ │ ├── ic_tab_menu@2x.png │ │ └── ic_tab_menu@3x.png │ ├── images │ │ └── logo.png │ └── package.json ├── components │ └── index.js ├── fonts │ ├── SFProDisplayBlack.js │ ├── SFProDisplayBold.js │ ├── SFProDisplayHeavy.js │ ├── SFProDisplayLight.js │ ├── SFProDisplayMedium.js │ ├── SFProDisplayRegular.js │ ├── SFProDisplaySemiBold.js │ ├── SFProDisplayThin.js │ ├── SFProDisplayUltralight.js │ ├── assets │ │ ├── SFProDisplayBlack.otf │ │ ├── SFProDisplayBold.otf │ │ ├── SFProDisplayHeavy.otf │ │ ├── SFProDisplayLight.otf │ │ ├── SFProDisplayMedium.otf │ │ ├── SFProDisplayRegular.otf │ │ ├── SFProDisplaySemibold.otf │ │ ├── SFProDisplayThin.otf │ │ └── SFProDisplayUltralight.otf │ └── index.js ├── navigation │ ├── Navigation.js │ ├── Screens.js │ ├── index.js │ └── registerScreens.js ├── package.json ├── redux │ ├── Provider │ │ ├── index.js │ │ └── provider.js │ ├── index.js │ ├── modules │ │ ├── data │ │ │ ├── actions.js │ │ │ ├── connectData.js │ │ │ ├── index.js │ │ │ ├── reducer.js │ │ │ └── saga.js │ │ └── index.js │ └── store │ │ ├── index.js │ │ ├── reducers.js │ │ ├── sagas.js │ │ └── store.js ├── screens │ ├── LoginScreen │ │ └── LoginScreen.js │ ├── SingleAppScreen │ │ └── SingleAppScreen.js │ ├── Tab1Screen │ │ └── Tab1Screen.js │ ├── Tab2Screen │ │ └── Tab2Screen.js │ ├── WelcomeScreen │ │ ├── WelcomeScreen.js │ │ └── __tests__ │ │ │ ├── WelcomeScreen.test.js │ │ │ └── __snapshots__ │ │ │ └── WelcomeScreen.test.js.snap │ └── index.js └── services │ ├── index.js │ └── restService.js └── 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 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | # 2 | # Check https://circleci.com/docs/2.0/language-javascript/ for more details 3 | # 4 | version: 2 5 | jobs: 6 | build: 7 | docker: 8 | - image: circleci/node:8.10.0 9 | 10 | working_directory: ~/repo 11 | 12 | steps: 13 | - checkout 14 | 15 | # Download and cache dependencies 16 | - restore_cache: 17 | keys: 18 | - v1-dependencies-{{ checksum "package.json" }} 19 | # fallback to using the latest cache if no exact match is found 20 | - v1-dependencies- 21 | 22 | - run: yarn install 23 | 24 | - save_cache: 25 | paths: 26 | - node_modules 27 | key: v1-dependencies-{{ checksum "package.json" }} 28 | 29 | # run tests! 30 | - run: yarn test -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | API_URL=http://localhost:8000/api/ 2 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | ./**/tests/*.js 2 | *.test.js 3 | ./**/__tests__/**/*.js 4 | __mocks__/**/*.js 5 | jest-setup.js 6 | babel.config.js 7 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint", 3 | "extends": [ 4 | "airbnb", 5 | "plugin:flowtype/recommended" 6 | ], 7 | "env": { 8 | "browser": false, 9 | "node": true 10 | }, 11 | "globals": { 12 | "fetch": true, 13 | "window": true, 14 | "__DEV__": true, 15 | "navigator": true, 16 | "ReactElement": true, 17 | "requestAnimationFrame": true, 18 | "jest": true, 19 | "Iterable": true, 20 | "Action": true, 21 | "FormData": true 22 | }, 23 | "plugins": [ 24 | "react", 25 | "react-native", 26 | "flowtype" 27 | ], 28 | "settings": { 29 | "flowtype": { 30 | "onlyFilesWithFlowAnnotation": true 31 | } 32 | }, 33 | "rules": { 34 | "comma-dangle": 0, 35 | "indent": [2, 2, {"SwitchCase": 1}], 36 | "no-console": 0, 37 | "camelcase": 0, 38 | "react-native/no-unused-styles": 2, 39 | "no-return-assign": 0, 40 | "react/jsx-boolean-value": 0, 41 | "react/sort-comp": 0, 42 | "arrow-body-style": 0, 43 | "no-nested-ternary": 0, 44 | "react/react-in-jsx-scope": 0, 45 | "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], 46 | "import/extensions": 0, 47 | "import/no-unresolved": 0, 48 | "react/jsx-curly-brace-presence": 0, 49 | "react/jsx-wrap-multilines": "off", 50 | "react/destructuring-assignment": "off", 51 | "max-len": ["error", { "code": 100 }], 52 | "import/prefer-default-export": 0, 53 | "global-require": "off", 54 | "prefer-promise-reject-errors": "off", 55 | "padded-blocks": "off", 56 | "react/no-typos": "off", 57 | "no-underscore-dangle": "warn", 58 | "react/prop-types": ["error", { "ignore": ["componentId"] }] 59 | }, 60 | "parserOptions": { 61 | "ecmaFeatures": { 62 | "legacyDecorators": true 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /.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.78.0 71 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | Pods/ 9 | *.pbxuser 10 | !default.pbxuser 11 | *.mode1v3 12 | !default.mode1v3 13 | *.mode2v3 14 | !default.mode2v3 15 | *.perspectivev3 16 | !default.perspectivev3 17 | xcuserdata 18 | *.xccheckout 19 | *.moved-aside 20 | DerivedData 21 | *.hmap 22 | *.ipa 23 | *.xcuserstate 24 | project.xcworkspace 25 | 26 | # Android/IntelliJ 27 | # 28 | build/ 29 | .idea 30 | .gradle 31 | local.properties 32 | *.iml 33 | 34 | # node.js 35 | # 36 | node_modules/ 37 | npm-debug.log 38 | yarn-error.log 39 | 40 | # BUCK 41 | buck-out/ 42 | \.buckd/ 43 | *.keystore 44 | 45 | # fastlane 46 | # 47 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 48 | # screenshots whenever they are needed. 49 | # For more information about the recommended setup visit: 50 | # https://docs.fastlane.tools/best-practices/source-control/ 51 | 52 | */fastlane/report.xml 53 | */fastlane/Preview.html 54 | */fastlane/screenshots 55 | .jest-cache -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Ato 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 |
3 | React Native Navigation + Redux + Saga 4 |

5 | 6 | A starter boilerplate for a mobile app using React Native and React Native Navigation(v2). This boilerplate also provides a cool redux-saga structure to bootstrap your react-native app development. 7 | 8 | ## Screenshots 9 | 10 |
11 | 12 | ## Requirements 13 | Before start, make sure you installed: 14 | - [Android Studio](https://developer.android.com/studio/index.html) : Android Dev Environment 15 | - [Xcode](https://developer.apple.com/xcode/), [CocoaPods](https://cocoapods.org/) : iOS Dev Environment 16 | - [Node](https://nodejs.org) and [React Native CLI](http://facebook.github.io/react-native/docs/getting-started.html): React Native Dev Environment 17 | - [FBSDK](https://origincache.facebook.com/developers/resources/?id=facebook-ios-sdk-current.zip): Download the SDK and unzip the archive to `~/Documents/FacebookSDK`. 18 | 19 | ## Stack 20 | - [React Native 0.58.5](https://facebook.github.io/react-native/): Development Environment 21 | - [React Native Navigation 2.12.0](https://github.com/wix/react-native-navigation): Native based navigator for React Native 22 | - [Redux](http://redux.js.org/): A predictable state container for JavaScript apps 23 | - [Redux-Saga](https://redux-saga.js.org/docs/api/): An alternative side effect model for Redux apps 24 | - [ESLint](https://eslint.org/): Pluggable linting utility for JavaScript 25 | - [Babel](http://babeljs.io/): The compiler for writing next generation JavaScript 26 | - [Jest](https://jestjs.io/): Delightful JavaScript Testing 27 | - [React Native FBSDK](https://github.com/facebook/react-native-fbsdk): A React Native wrapper around the Facebook SDKs for Android and iOS 28 | - [React Native Elements](https://react-native-training.github.io/react-native-elements/): Cross Platform React Native UI Toolkit 29 | - [React Native Vector Icons](https://oblador.github.io/react-native-vector-icons/): Customizable Icons for React Native 30 | - [React Native Config](https://github.com/luggit/react-native-config): Config variables for React Native apps 31 | 32 | ## How to run? 33 | 34 | Clone the repo and install packages. 35 | ```shell 36 | $ git clone https://github.com/atoami/react-native-navigation-redux-starter-kit ReactNativeBoilerplate 37 | $ cd ReactNativeBoilerplate 38 | $ yarn 39 | ``` 40 | 41 | Run Android Project. 42 | ```shell 43 | $ react-native run-android 44 | ``` 45 | 46 | Run iOS Project. 47 | ```shell 48 | $ cd ios && pod install 49 | $ cd .. && react-native run-ios 50 | ``` 51 | 52 | ## Issues 53 | 54 | Do you have any concern to run this project?  Please feel free to contact me! 55 | 56 | ## License 57 | 58 | This project is licensed under the MIT License 59 | -------------------------------------------------------------------------------- /__mocks__/index.js: -------------------------------------------------------------------------------- 1 | jest 2 | .mock('react-native-navigation', () => require.requireActual('./react-native-navigation')); 3 | -------------------------------------------------------------------------------- /__mocks__/react-native-navigation.js: -------------------------------------------------------------------------------- 1 | export const Navigation = { 2 | registerComponent: () => Promise.resolve() 3 | }; 4 | -------------------------------------------------------------------------------- /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 | lib_deps = [] 12 | 13 | for jarfile in glob(['libs/*.jar']): 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 | 21 | for aarfile in glob(['libs/*.aar']): 22 | name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] 23 | lib_deps.append(':' + name) 24 | android_prebuilt_aar( 25 | name = name, 26 | aar = aarfile, 27 | ) 28 | 29 | android_library( 30 | name = "all-libs", 31 | exported_deps = lib_deps, 32 | ) 33 | 34 | android_library( 35 | name = "app-code", 36 | srcs = glob([ 37 | "src/main/java/**/*.java", 38 | ]), 39 | deps = [ 40 | ":all-libs", 41 | ":build_config", 42 | ":res", 43 | ], 44 | ) 45 | 46 | android_build_config( 47 | name = "build_config", 48 | package = "com.reactnativestarterkit", 49 | ) 50 | 51 | android_resource( 52 | name = "res", 53 | package = "com.reactnativestarterkit", 54 | res = "src/main/res", 55 | ) 56 | 57 | android_binary( 58 | name = "app", 59 | keystore = "//android/keystores:debug", 60 | manifest = "src/main/AndroidManifest.xml", 61 | package_type = "debug", 62 | deps = [ 63 | ":app-code", 64 | ], 65 | ) 66 | -------------------------------------------------------------------------------- /android/app/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "785243589025", 4 | "firebase_url": "https://reactnativefirebase-8329a.firebaseio.com", 5 | "project_id": "reactnativefirebase-8329a", 6 | "storage_bucket": "reactnativefirebase-8329a.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:785243589025:android:780708c7fa51c459", 12 | "android_client_info": { 13 | "package_name": "com.david.react.starterkit" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "785243589025-37ot8mjll94q46poinhtf3efblk4e1bs.apps.googleusercontent.com", 19 | "client_type": 3 20 | } 21 | ], 22 | "api_key": [ 23 | { 24 | "current_key": "AIzaSyBQLsn29lAQxj7IQWr2tru7Ir4_AP1DWFw" 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 | 19 | # Disabling obfuscation is useful if you collect stack traces from production crashes 20 | # (unless you are using a system that supports de-obfuscate the stack traces). 21 | -dontobfuscate 22 | 23 | # React Native 24 | 25 | # Keep our interfaces so they can be used by other ProGuard rules. 26 | # See http://sourceforge.net/p/proguard/bugs/466/ 27 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip 28 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters 29 | -keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip 30 | 31 | # Do not strip any method/class that is annotated with @DoNotStrip 32 | -keep @com.facebook.proguard.annotations.DoNotStrip class * 33 | -keep @com.facebook.common.internal.DoNotStrip class * 34 | -keepclassmembers class * { 35 | @com.facebook.proguard.annotations.DoNotStrip *; 36 | @com.facebook.common.internal.DoNotStrip *; 37 | } 38 | 39 | -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { 40 | void set*(***); 41 | *** get*(); 42 | } 43 | 44 | -keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } 45 | -keep class * extends com.facebook.react.bridge.NativeModule { *; } 46 | -keepclassmembers,includedescriptorclasses class * { native ; } 47 | -keepclassmembers class * { @com.facebook.react.uimanager.UIProp ; } 48 | -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; } 49 | -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; } 50 | 51 | -dontwarn com.facebook.react.** 52 | 53 | # TextLayoutBuilder uses a non-public Android constructor within StaticLayout. 54 | # See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. 55 | -dontwarn android.text.StaticLayout 56 | 57 | # okhttp 58 | 59 | -keepattributes Signature 60 | -keepattributes *Annotation* 61 | -keep class okhttp3.** { *; } 62 | -keep interface okhttp3.** { *; } 63 | -dontwarn okhttp3.** 64 | 65 | # okio 66 | 67 | -keep class sun.misc.Unsafe { *; } 68 | -dontwarn java.nio.file.* 69 | -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 70 | -dontwarn okio.** 71 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 15 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 33 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/AntDesign.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/Entypo.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/Feather.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/Foundation.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/Ionicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/Octicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplayBlack.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplayBlack.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplayBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplayBold.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplayHeavy.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplayHeavy.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplayLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplayLight.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplayMedium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplayMedium.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplayRegular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplayRegular.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplaySemibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplaySemibold.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplayThin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplayThin.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SFProDisplayUltralight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SFProDisplayUltralight.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/assets/fonts/Zocial.ttf -------------------------------------------------------------------------------- /android/app/src/main/java/com/reactnativestarterkit/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.reactnativestarterkit; 2 | 3 | import android.content.Intent; 4 | 5 | import com.reactnativenavigation.NavigationActivity; 6 | 7 | public class MainActivity extends NavigationActivity { 8 | 9 | @Override 10 | public void onActivityResult(int requestCode, int resultCode, Intent data) { 11 | super.onActivityResult(requestCode, resultCode, data); 12 | MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/reactnativestarterkit/MainApplication.java: -------------------------------------------------------------------------------- 1 | package com.reactnativestarterkit; 2 | 3 | import android.app.Application; 4 | 5 | import com.facebook.react.ReactApplication; 6 | import com.lugg.ReactNativeConfig.ReactNativeConfigPackage; 7 | import com.facebook.reactnative.androidsdk.FBSDKPackage; 8 | import com.facebook.react.ReactNativeHost; 9 | import com.facebook.react.ReactPackage; 10 | import com.facebook.react.shell.MainReactPackage; 11 | import com.facebook.soloader.SoLoader; 12 | 13 | import java.util.Arrays; 14 | import java.util.List; 15 | 16 | import com.reactnativenavigation.NavigationApplication; 17 | import com.reactnativenavigation.react.NavigationReactNativeHost; 18 | import com.reactnativenavigation.react.ReactGateway; 19 | 20 | import com.oblador.vectoricons.VectorIconsPackage; 21 | 22 | import com.facebook.CallbackManager; 23 | import com.facebook.appevents.AppEventsLogger; 24 | 25 | public class MainApplication extends NavigationApplication { 26 | 27 | private static CallbackManager mCallbackManager = CallbackManager.Factory.create(); 28 | 29 | protected static CallbackManager getCallbackManager() { 30 | return mCallbackManager; 31 | } 32 | 33 | @Override 34 | protected ReactGateway createReactGateway() { 35 | ReactNativeHost host = new NavigationReactNativeHost(this, isDebug(), createAdditionalReactPackages()) { 36 | @Override 37 | protected String getJSMainModuleName() { 38 | return "index"; 39 | } 40 | }; 41 | return new ReactGateway(this, isDebug(), host); 42 | } 43 | 44 | @Override 45 | public boolean isDebug() { 46 | return BuildConfig.DEBUG; 47 | } 48 | 49 | protected List getPackages() { 50 | // Add additional packages you require here 51 | // No need to add RnnPackage and MainReactPackage 52 | return Arrays.asList( 53 | new VectorIconsPackage(), 54 | new FBSDKPackage(mCallbackManager), 55 | new ReactNativeConfigPackage() 56 | ); 57 | } 58 | 59 | @Override 60 | public List createAdditionalReactPackages() { 61 | return getPackages(); 62 | } 63 | 64 | @Override 65 | public void onCreate() { 66 | super.onCreate(); 67 | 68 | // Use AppEventsLogger to log custom events. 69 | AppEventsLogger.activateApp(this); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ReactNativeStarterKit 3 | 2429596703782219 4 | fb2429596703782219 5 | 6 | -------------------------------------------------------------------------------- /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 = 19 7 | compileSdkVersion = 28 8 | targetSdkVersion = 27 9 | supportLibVersion = "28.0.0" 10 | } 11 | repositories { 12 | google() 13 | mavenLocal() 14 | mavenCentral() 15 | jcenter() 16 | } 17 | dependencies { 18 | classpath 'com.android.tools.build:gradle:3.2.1' 19 | 20 | // NOTE: Do not place your application dependencies here; they belong 21 | // in the individual module build.gradle files 22 | } 23 | } 24 | 25 | allprojects { 26 | repositories { 27 | mavenCentral() 28 | google() 29 | mavenLocal() 30 | jcenter() 31 | maven { 32 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 33 | url "$rootDir/../node_modules/react-native/android" 34 | } 35 | maven { url 'https://jitpack.io' } 36 | } 37 | } 38 | 39 | 40 | task wrapper(type: Wrapper) { 41 | gradleVersion = '4.6' 42 | distributionUrl = distributionUrl.replace("bin", "all") 43 | } 44 | -------------------------------------------------------------------------------- /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 | android.useDeprecatedNdk=true 21 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/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.6-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 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 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 Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /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 = 'ReactNativeStarterKit' 2 | include ':react-native-config' 3 | project(':react-native-config').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-config/android') 4 | include ':react-native-fbsdk' 5 | project(':react-native-fbsdk').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fbsdk/android') 6 | include ':react-native-vector-icons' 7 | project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') 8 | 9 | include ':react-native-navigation' 10 | project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/lib/android/app/') 11 | 12 | include ':app' 13 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactNativeStarterKit", 3 | "displayName": "ReactNativeStarterKit" 4 | } -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | presets: ["module:metro-react-native-babel-preset"], 5 | plugins: [ 6 | "@babel/plugin-transform-modules-commonjs", 7 | ["@babel/plugin-proposal-decorators", { "legacy": true }], 8 | "@babel/plugin-syntax-export-namespace-from", 9 | "transform-export-extensions" 10 | ], 11 | }; 12 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | import { pushTutorialScreen } from 'src/navigation'; 3 | 4 | Navigation.events().registerAppLaunchedListener(() => pushTutorialScreen()); 5 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/ios/Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKAppLink.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import "FBSDKAppLinkTarget.h" 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | /*! The version of the App Link protocol that this library supports */ 26 | FOUNDATION_EXPORT NSString *const FBSDKAppLinkVersion; 27 | 28 | /*! 29 | Contains App Link metadata relevant for navigation on this device 30 | derived from the HTML at a given URL. 31 | */ 32 | @interface FBSDKAppLink : NSObject 33 | 34 | /*! 35 | Creates a FBSDKAppLink with the given list of FBSDKAppLinkTargets and target URL. 36 | 37 | Generally, this will only be used by implementers of the FBSDKAppLinkResolving protocol, 38 | as these implementers will produce App Link metadata for a given URL. 39 | 40 | @param sourceURL the URL from which this App Link is derived 41 | @param targets an ordered list of FBSDKAppLinkTargets for this platform derived 42 | from App Link metadata. 43 | @param webURL the fallback web URL, if any, for the app link. 44 | */ 45 | + (instancetype)appLinkWithSourceURL:(NSURL *)sourceURL 46 | targets:(NSArray *)targets 47 | webURL:(nullable NSURL *)webURL; 48 | 49 | /*! The URL from which this FBSDKAppLink was derived */ 50 | @property (nonatomic, strong, readonly) NSURL *sourceURL; 51 | 52 | /*! 53 | The ordered list of targets applicable to this platform that will be used 54 | for navigation. 55 | */ 56 | @property (nonatomic, copy, readonly) NSArray *targets; 57 | 58 | /*! The fallback web URL to use if no targets are installed on this device. */ 59 | @property (nonatomic, strong, readonly, nullable) NSURL *webURL; 60 | 61 | @end 62 | 63 | NS_ASSUME_NONNULL_END 64 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKAppLinkResolving.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | @class FBSDKAppLink; 24 | 25 | /** 26 | Describes the callback for appLinkFromURLInBackground. 27 | @param appLink the FBSDKAppLink representing the deferred App Link 28 | @param error the error during the request, if any 29 | 30 | */ 31 | typedef void (^FBSDKAppLinkFromURLHandler)(FBSDKAppLink * _Nullable appLink, NSError * _Nullable error); 32 | 33 | 34 | /** 35 | Describes the callback for appLinkFromURLInBackground. 36 | @param appLinks the FBSDKAppLinks representing the deferred App Links 37 | @param error the error during the request, if any 38 | */ 39 | typedef void (^FBSDKAppLinksFromURLArrayHandler)(NSDictionary * appLinks, 40 | NSError * _Nullable error); 41 | 42 | /*! 43 | Implement this protocol to provide an alternate strategy for resolving 44 | App Links that may include pre-fetching, caching, or querying for App Link 45 | data from an index provided by a service provider. 46 | */ 47 | @protocol FBSDKAppLinkResolving 48 | 49 | /** 50 | Asynchronously resolves App Link data for a given URL. 51 | 52 | @param url The URL to resolve into an App Link. 53 | @param handler The completion block that will return an App Link for the given URL. 54 | */ 55 | - (void)appLinkFromURL:(NSURL *)url handler:(FBSDKAppLinkFromURLHandler)handler 56 | NS_EXTENSION_UNAVAILABLE_IOS("Not available in app extension"); 57 | 58 | @end 59 | 60 | NS_ASSUME_NONNULL_END 61 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKAppLinkReturnToRefererView.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | #import 21 | 22 | #import "FBSDKAppLinkNavigation.h" 23 | 24 | NS_ASSUME_NONNULL_BEGIN 25 | 26 | typedef NS_ENUM(NSUInteger, FBSDKIncludeStatusBarInSize) { 27 | FBSDKIncludeStatusBarInSizeNever, 28 | FBSDKIncludeStatusBarInSizeIOS7AndLater, 29 | FBSDKIncludeStatusBarInSizeAlways, 30 | }; 31 | 32 | @class FBSDKAppLinkReturnToRefererView; 33 | @class FBSDKURL; 34 | 35 | /*! 36 | Protocol that a class can implement in order to be notified when the user has navigated back 37 | to the referer of an App Link. 38 | */ 39 | @protocol FBSDKAppLinkReturnToRefererViewDelegate 40 | 41 | /*! 42 | Called when the user has tapped inside the close button. 43 | */ 44 | - (void)returnToRefererViewDidTapInsideCloseButton:(FBSDKAppLinkReturnToRefererView *)view; 45 | 46 | /*! 47 | Called when the user has tapped inside the App Link portion of the view. 48 | */ 49 | - (void)returnToRefererViewDidTapInsideLink:(FBSDKAppLinkReturnToRefererView *)view 50 | link:(FBSDKAppLink *)link; 51 | 52 | @end 53 | 54 | /*! 55 | Provides a UIView that displays a button allowing users to navigate back to the 56 | application that launched the App Link currently being handled, if the App Link 57 | contained referer data. The user can also close the view by clicking a close button 58 | rather than navigating away. If the view is provided an App Link that does not contain 59 | referer data, it will have zero size and no UI will be displayed. 60 | */ 61 | NS_EXTENSION_UNAVAILABLE_IOS("Not available in app extension") 62 | @interface FBSDKAppLinkReturnToRefererView : UIView 63 | 64 | /*! 65 | The delegate that will be notified when the user navigates back to the referer. 66 | */ 67 | @property (nonatomic, weak, nullable) id delegate; 68 | 69 | /*! 70 | The color of the text label and close button. 71 | */ 72 | @property (nonatomic, strong) UIColor *textColor; 73 | 74 | @property (nonatomic, strong) FBSDKAppLink *refererAppLink; 75 | 76 | /*! 77 | Indicates whether to extend the size of the view to include the current status bar 78 | size, for use in scenarios where the view might extend under the status bar on iOS 7 and 79 | above; this property has no effect on earlier versions of iOS. 80 | */ 81 | @property (nonatomic, assign) FBSDKIncludeStatusBarInSize includeStatusBarInSize; 82 | 83 | /*! 84 | Indicates whether the user has closed the view by clicking the close button. 85 | */ 86 | @property (nonatomic, assign) BOOL closed; 87 | 88 | @end 89 | 90 | NS_ASSUME_NONNULL_END 91 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKAppLinkTarget.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | /*! 24 | Represents a target defined in App Link metadata, consisting of at least 25 | a URL, and optionally an App Store ID and name. 26 | */ 27 | @interface FBSDKAppLinkTarget : NSObject 28 | 29 | /*! Creates a FBSDKAppLinkTarget with the given app site and target URL. */ 30 | + (instancetype)appLinkTargetWithURL:(NSURL *)url 31 | appStoreId:(nullable NSString *)appStoreId 32 | appName:(NSString *)appName; 33 | 34 | /*! The URL prefix for this app link target */ 35 | @property (nonatomic, strong, readonly) NSURL *URL; 36 | 37 | /*! The app ID for the app store */ 38 | @property (nonatomic, copy, readonly, nullable) NSString *appStoreId; 39 | 40 | /*! The name of the app */ 41 | @property (nonatomic, copy, readonly) NSString *appName; 42 | 43 | @end 44 | 45 | NS_ASSUME_NONNULL_END 46 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKButton.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | A base class for common SDK buttons. 23 | */ 24 | @interface FBSDKButton : UIButton 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKCopying.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | Extension protocol for NSCopying that adds the copy method, which is implemented on NSObject. 23 | 24 | NSObject implicitly conforms to this protocol. 25 | */ 26 | @protocol FBSDKCopying 27 | 28 | /** 29 | Implemented by NSObject as a convenience to copyWithZone:. 30 | @return A copy of the receiver. 31 | */ 32 | - (id)copy; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKCoreKit.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | #import 33 | #import 34 | 35 | #if !TARGET_OS_TV 36 | #import 37 | #import 38 | #import 39 | #import 40 | #import 41 | #import 42 | #import 43 | #import 44 | #import 45 | #import 46 | #import 47 | #import 48 | #import 49 | #import 50 | #import 51 | #else 52 | #import 53 | #import 54 | #endif 55 | 56 | #define FBSDK_VERSION_STRING @"4.39.1" 57 | #define FBSDK_TARGET_PLATFORM_VERSION @"v3.2" 58 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKGraphRequestDataAttachment.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | A container class for data attachments so that additional metadata can be provided about the attachment. 23 | */ 24 | @interface FBSDKGraphRequestDataAttachment : NSObject 25 | 26 | - (instancetype)init NS_UNAVAILABLE; 27 | + (instancetype)new NS_UNAVAILABLE; 28 | 29 | /** 30 | Initializes the receiver with the attachment data and metadata. 31 | @param data The attachment data (retained, not copied) 32 | @param filename The filename for the attachment 33 | @param contentType The content type for the attachment 34 | */ 35 | - (instancetype)initWithData:(NSData *)data 36 | filename:(NSString *)filename 37 | contentType:(NSString *)contentType 38 | NS_DESIGNATED_INITIALIZER; 39 | 40 | /** 41 | The content type for the attachment. 42 | */ 43 | @property (nonatomic, copy, readonly) NSString *contentType; 44 | 45 | /** 46 | The attachment data. 47 | */ 48 | @property (nonatomic, strong, readonly) NSData *data; 49 | 50 | /** 51 | The filename for the attachment. 52 | */ 53 | @property (nonatomic, copy, readonly) NSString *filename; 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKMacros.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKMeasurementEvent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 24 | 25 | /*! The name of the notification posted by FBSDKMeasurementEvent */ 26 | FOUNDATION_EXPORT NSNotificationName const FBSDKMeasurementEventNotification; 27 | 28 | #else 29 | 30 | /*! The name of the notification posted by FBSDKMeasurementEvent */ 31 | FOUNDATION_EXPORT NSString *const FBSDKMeasurementEventNotification; 32 | 33 | #endif 34 | 35 | FOUNDATION_EXPORT NSString *const FBSDKMeasurementEventNotificationName 36 | DEPRECATED_MSG_ATTRIBUTE("Use `FBSDKMeasurementEventNotification` instead"); 37 | 38 | /*! Defines keys in the userInfo object for the notification named FBSDKMeasurementEventNotificationName */ 39 | /*! The string field for the name of the event */ 40 | FOUNDATION_EXPORT NSString *const FBSDKMeasurementEventNameKey; 41 | /*! The dictionary field for the arguments of the event */ 42 | FOUNDATION_EXPORT NSString *const FBSDKMeasurementEventArgsKey; 43 | 44 | /*! Events raised by FBSDKMeasurementEvent for Applink */ 45 | /*! 46 | The name of the event posted when [FBSDKURL URLWithURL:] is called successfully. This represents the successful parsing of an app link URL. 47 | */ 48 | FOUNDATION_EXPORT NSString *const FBSDKAppLinkParseEventName; 49 | 50 | /*! 51 | The name of the event posted when [FBSDKURL URLWithInboundURL:] is called successfully. 52 | This represents parsing an inbound app link URL from a different application 53 | */ 54 | FOUNDATION_EXPORT NSString *const FBSDKAppLinkNavigateInEventName; 55 | 56 | /*! The event raised when the user navigates from your app to other apps */ 57 | FOUNDATION_EXPORT NSString *const FBSDKAppLinkNavigateOutEventName; 58 | 59 | /*! 60 | The event raised when the user navigates out from your app and back to the referrer app. 61 | e.g when the user leaves your app after tapping the back-to-referrer navigation bar 62 | */ 63 | FOUNDATION_EXPORT NSString *const FBSDKAppLinkNavigateBackToReferrerEventName; 64 | 65 | @interface FBSDKMeasurementEvent : NSObject 66 | 67 | @end 68 | 69 | NS_ASSUME_NONNULL_END 70 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKMutableCopying.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | Extension protocol for NSMutableCopying that adds the mutableCopy method, which is implemented on NSObject. 25 | 26 | NSObject implicitly conforms to this protocol. 27 | */ 28 | @protocol FBSDKMutableCopying 29 | 30 | /** 31 | Implemented by NSObject as a convenience to mutableCopyWithZone:. 32 | @return A mutable copy of the receiver. 33 | */ 34 | - (id)mutableCopy; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKProfilePictureView.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | FBSDKProfilePictureMode enum 23 | Defines the aspect ratio mode for the source image of the profile picture. 24 | */ 25 | typedef NS_ENUM(NSUInteger, FBSDKProfilePictureMode) 26 | { 27 | /** 28 | A square cropped version of the image will be included in the view. 29 | */ 30 | FBSDKProfilePictureModeSquare, 31 | /** 32 | The original picture's aspect ratio will be used for the source image in the view. 33 | */ 34 | FBSDKProfilePictureModeNormal, 35 | }; 36 | 37 | /** 38 | A view to display a profile picture. 39 | */ 40 | @interface FBSDKProfilePictureView : UIView 41 | 42 | /** 43 | The mode for the receiver to determine the aspect ratio of the source image. 44 | */ 45 | @property (nonatomic, assign) FBSDKProfilePictureMode pictureMode; 46 | 47 | /** 48 | The profile ID to show the picture for. 49 | */ 50 | @property (nonatomic, copy) NSString *profileID; 51 | 52 | /** 53 | Explicitly marks the receiver as needing to update the image. 54 | 55 | This method is called whenever any properties that affect the source image are modified, but this can also 56 | be used to trigger a manual update of the image if it needs to be re-downloaded. 57 | */ 58 | - (void)setNeedsImageUpdate; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKUtility.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | Class to contain common utility methods. 23 | */ 24 | @interface FBSDKUtility : NSObject 25 | 26 | - (instancetype)init NS_UNAVAILABLE; 27 | + (instancetype)new NS_UNAVAILABLE; 28 | 29 | /** 30 | Parses a query string into a dictionary. 31 | @param queryString The query string value. 32 | @return A dictionary with the key/value pairs. 33 | */ 34 | + (NSDictionary *)dictionaryWithQueryString:(NSString *)queryString; 35 | 36 | /** 37 | Constructs a query string from a dictionary. 38 | @param dictionary The dictionary with key/value pairs for the query string. 39 | @param errorRef If an error occurs, upon return contains an NSError object that describes the problem. 40 | @return Query string representation of the parameters. 41 | */ 42 | + (NSString *)queryStringWithDictionary:(NSDictionary *)dictionary error:(NSError *__autoreleasing *)errorRef; 43 | 44 | /** 45 | Decodes a value from an URL. 46 | @param value The value to decode. 47 | @return The decoded value. 48 | */ 49 | + (NSString *)URLDecode:(NSString *)value; 50 | 51 | /** 52 | Encodes a value for an URL. 53 | @param value The value to encode. 54 | @return The encoded value. 55 | */ 56 | + (NSString *)URLEncode:(NSString *)value; 57 | 58 | /** 59 | Creates a timer using Grand Central Dispatch. 60 | @param interval The interval to fire the timer, in seconds. 61 | @param block The code block to execute when timer is fired. 62 | @return The dispatch handle. 63 | */ 64 | + (dispatch_source_t)startGCDTimerWithInterval:(double)interval block:(dispatch_block_t)block; 65 | 66 | /** 67 | Stop a timer that was started by startGCDTimerWithInterval. 68 | @param timer The dispatch handle received from startGCDTimerWithInterval. 69 | */ 70 | + (void)stopGCDTimer:(dispatch_source_t)timer; 71 | 72 | /** 73 | Get SHA256 hased string of NSString/NSData 74 | 75 | @param input The data that needs to be hashed, it could be NSString or NSData. 76 | */ 77 | + (NSString *)SHA256Hash:(NSObject *)input; 78 | 79 | @end 80 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Headers/FBSDKWebViewAppLinkResolver.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import "FBSDKAppLinkResolving.h" 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | /*! 26 | A reference implementation for an App Link resolver that uses a hidden UIWebView 27 | to parse the HTML containing App Link metadata. 28 | */ 29 | @interface FBSDKWebViewAppLinkResolver : NSObject 30 | 31 | /*! 32 | Gets the instance of a FBSDKWebViewAppLinkResolver. 33 | */ 34 | + (instancetype)sharedInstance; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/ios/Frameworks/FBSDKCoreKit.framework/Info.plist -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKCoreKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FBSDKCoreKit { 2 | umbrella header "FBSDKCoreKit.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKLoginKit.framework/FBSDKLoginKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/ios/Frameworks/FBSDKLoginKit.framework/FBSDKLoginKit -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKLoginKit.framework/Headers/FBSDKDeviceLoginCodeInfo.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | /*! 24 | @abstract Describes the initial response when starting the device login flow. 25 | @discussion This is used by `FBSDKDeviceLoginManager`. 26 | */ 27 | @interface FBSDKDeviceLoginCodeInfo : NSObject 28 | 29 | /*! 30 | @abstract There is no public initializer. 31 | */ 32 | - (instancetype)init NS_UNAVAILABLE; 33 | + (instancetype)new NS_UNAVAILABLE; 34 | 35 | /*! 36 | @abstract the unique id for this login flow. 37 | */ 38 | @property (nonatomic, copy, readonly) NSString *identifier; 39 | 40 | /*! 41 | @abstract the short "user_code" that should be presented to the user. 42 | */ 43 | @property (nonatomic, copy, readonly) NSString *loginCode; 44 | 45 | /*! 46 | @abstract the verification URL. 47 | */ 48 | @property (nonatomic, copy, readonly) NSURL *verificationURL; 49 | 50 | /*! 51 | @abstract the expiration date. 52 | */ 53 | @property (nonatomic, copy, readonly) NSDate *expirationDate; 54 | 55 | /*! 56 | @abstract the polling interval 57 | */ 58 | @property (nonatomic, assign, readonly) NSUInteger pollingInterval; 59 | 60 | @end 61 | 62 | NS_ASSUME_NONNULL_END 63 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKLoginKit.framework/Headers/FBSDKDeviceLoginManagerResult.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | /*! 26 | @abstract Represents the results of the a device login flow. 27 | @discussion This is used by `FBSDKDeviceLoginManager`. 28 | */ 29 | @interface FBSDKDeviceLoginManagerResult : NSObject 30 | 31 | /*! 32 | @abstract There is no public initializer. 33 | */ 34 | - (instancetype)init NS_UNAVAILABLE; 35 | + (instancetype)new NS_UNAVAILABLE; 36 | 37 | /*! 38 | @abstract The token. 39 | */ 40 | @property (nullable, nonatomic, strong, readonly) FBSDKAccessToken *accessToken; 41 | 42 | /*! 43 | @abstract Indicates if the login was cancelled by the user, or if the device 44 | login code has expired. 45 | */ 46 | @property (nonatomic, assign, readonly, getter=isCancelled) BOOL cancelled; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKLoginKit.framework/Headers/FBSDKLoginKit.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | #import 24 | #import 25 | 26 | #if !TARGET_TV_OS 27 | #import 28 | #import 29 | #import 30 | #import 31 | #endif 32 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKLoginKit.framework/Headers/FBSDKLoginManagerLoginResult.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | @class FBSDKAccessToken; 22 | 23 | /** 24 | Describes the result of a login attempt. 25 | */ 26 | @interface FBSDKLoginManagerLoginResult : NSObject 27 | 28 | - (instancetype)init NS_UNAVAILABLE; 29 | + (instancetype)new NS_UNAVAILABLE; 30 | 31 | /** 32 | the access token. 33 | */ 34 | @property (copy, nonatomic) FBSDKAccessToken *token; 35 | 36 | /** 37 | whether the login was cancelled by the user. 38 | */ 39 | @property (readonly, nonatomic) BOOL isCancelled; 40 | 41 | /** 42 | the set of permissions granted by the user in the associated request. 43 | 44 | inspect the token's permissions set for a complete list. 45 | */ 46 | @property (copy, nonatomic) NSSet *grantedPermissions; 47 | 48 | /** 49 | the set of permissions declined by the user in the associated request. 50 | 51 | inspect the token's permissions set for a complete list. 52 | */ 53 | @property (copy, nonatomic) NSSet *declinedPermissions; 54 | 55 | /** 56 | Initializes a new instance. 57 | @param token the access token 58 | @param isCancelled whether the login was cancelled by the user 59 | @param grantedPermissions the set of granted permissions 60 | @param declinedPermissions the set of declined permissions 61 | */ 62 | - (instancetype)initWithToken:(FBSDKAccessToken *)token 63 | isCancelled:(BOOL)isCancelled 64 | grantedPermissions:(NSSet *)grantedPermissions 65 | declinedPermissions:(NSSet *)declinedPermissions 66 | NS_DESIGNATED_INITIALIZER; 67 | @end 68 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKLoginKit.framework/Headers/FBSDKLoginTooltipView.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | @protocol FBSDKLoginTooltipViewDelegate; 24 | 25 | /** 26 | 27 | Represents a tooltip to be displayed next to a Facebook login button 28 | to highlight features for new users. 29 | 30 | 31 | The `FBSDKLoginButton` may display this view automatically. If you do 32 | not use the `FBSDKLoginButton`, you can manually call one of the `present*` methods 33 | as appropriate and customize behavior via `FBSDKLoginTooltipViewDelegate` delegate. 34 | 35 | By default, the `FBSDKLoginTooltipView` is not added to the superview until it is 36 | determined the app has migrated to the new login experience. You can override this 37 | (e.g., to test the UI layout) by implementing the delegate or setting `forceDisplay` to YES. 38 | 39 | */ 40 | @interface FBSDKLoginTooltipView : FBSDKTooltipView 41 | 42 | /** the delegate */ 43 | @property (nonatomic, weak) id delegate; 44 | 45 | /** if set to YES, the view will always be displayed and the delegate's 46 | `loginTooltipView:shouldAppear:` will NOT be called. */ 47 | @property (nonatomic, assign) BOOL forceDisplay; 48 | 49 | @end 50 | 51 | /** 52 | @protocol 53 | 54 | The `FBSDKLoginTooltipViewDelegate` protocol defines the methods used to receive event 55 | notifications from `FBSDKLoginTooltipView` objects. 56 | */ 57 | @protocol FBSDKLoginTooltipViewDelegate 58 | 59 | @optional 60 | 61 | /** 62 | Asks the delegate if the tooltip view should appear 63 | 64 | @param view The tooltip view. 65 | @param appIsEligible The value fetched from the server identifying if the app 66 | is eligible for the new login experience. 67 | 68 | 69 | Use this method to customize display behavior. 70 | */ 71 | - (BOOL)loginTooltipView:(FBSDKLoginTooltipView *)view shouldAppear:(BOOL)appIsEligible; 72 | 73 | /** 74 | Tells the delegate the tooltip view will appear, specifically after it's been 75 | added to the super view but before the fade in animation. 76 | 77 | @param view The tooltip view. 78 | */ 79 | - (void)loginTooltipViewWillAppear:(FBSDKLoginTooltipView *)view; 80 | 81 | /** 82 | Tells the delegate the tooltip view will not appear (i.e., was not 83 | added to the super view). 84 | 85 | @param view The tooltip view. 86 | */ 87 | - (void)loginTooltipViewWillNotAppear:(FBSDKLoginTooltipView *)view; 88 | 89 | 90 | @end 91 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKLoginKit.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/ios/Frameworks/FBSDKLoginKit.framework/Info.plist -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKLoginKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FBSDKLoginKit { 2 | umbrella header "FBSDKLoginKit.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/FBSDKShareKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/ios/Frameworks/FBSDKShareKit.framework/FBSDKShareKit -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKAppGroupContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | NS_ENUM(NSUInteger, FBSDKAppGroupPrivacy) 25 | Specifies the privacy of a group. 26 | */ 27 | typedef NS_ENUM(NSUInteger, FBSDKAppGroupPrivacy) 28 | { 29 | /** Anyone can see the group, who's in it and what members post. */ 30 | FBSDKAppGroupPrivacyOpen = 0, 31 | /** Anyone can see the group and who's in it, but only members can see posts. */ 32 | FBSDKAppGroupPrivacyClosed, 33 | }; 34 | 35 | /** 36 | Converts an FBSDKAppGroupPrivacy to an NSString. 37 | */ 38 | FOUNDATION_EXPORT NSString *NSStringFromFBSDKAppGroupPrivacy(FBSDKAppGroupPrivacy privacy); 39 | 40 | /** 41 | A model for creating an app group. 42 | */ 43 | @interface FBSDKAppGroupContent : NSObject 44 | 45 | /** 46 | The description of the group. 47 | */ 48 | @property (nonatomic, copy) NSString *groupDescription; 49 | 50 | /** 51 | The name of the group. 52 | */ 53 | @property (nonatomic, copy) NSString *name; 54 | 55 | /** 56 | The privacy for the group. 57 | */ 58 | @property (nonatomic, assign) FBSDKAppGroupPrivacy privacy; 59 | 60 | /** 61 | Compares the receiver to another app group content. 62 | @param content The other content 63 | @return YES if the receiver's values are equal to the other content's values; otherwise NO 64 | */ 65 | - (BOOL)isEqualToAppGroupContent:(FBSDKAppGroupContent *)content; 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKAppInviteContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | 24 | /** 25 | NS_ENUM(NSUInteger, FBSDKAppInviteDestination) 26 | Specifies the privacy of a group. 27 | */ 28 | typedef NS_ENUM(NSUInteger, FBSDKAppInviteDestination) 29 | { 30 | /** Deliver to Facebook. */ 31 | FBSDKAppInviteDestinationFacebook = 0, 32 | /** Deliver to Messenger. */ 33 | FBSDKAppInviteDestinationMessenger, 34 | }; 35 | 36 | /** 37 | A model for app invite. 38 | */ 39 | @interface FBSDKAppInviteContent : NSObject 40 | 41 | /** 42 | A URL to a preview image that will be displayed with the app invite 43 | 44 | 45 | This is optional. If you don't include it a fallback image will be used. 46 | */ 47 | @property (nonatomic, copy) NSURL *appInvitePreviewImageURL; 48 | 49 | /** 50 | An app link target that will be used as a target when the user accept the invite. 51 | 52 | 53 | This is a requirement. 54 | */ 55 | @property (nonatomic, copy) NSURL *appLinkURL; 56 | 57 | /** 58 | 59 | @warning Use `appInvitePreviewImageURL` instead. 60 | */ 61 | @property (nonatomic, copy) NSURL *previewImageURL 62 | DEPRECATED_MSG_ATTRIBUTE("use appInvitePreviewImageURL instead"); 63 | 64 | /** 65 | Promotional code to be displayed while sending and receiving the invite. 66 | 67 | 68 | This is optional. This can be between 0 and 10 characters long and can contain 69 | alphanumeric characters only. To set a promo code, you need to set promo text. 70 | */ 71 | @property (nonatomic, copy) NSString *promotionCode; 72 | 73 | /** 74 | Promotional text to be displayed while sending and receiving the invite. 75 | 76 | 77 | This is optional. This can be between 0 and 80 characters long and can contain 78 | alphanumeric and spaces only. 79 | */ 80 | @property (nonatomic, copy) NSString *promotionText; 81 | 82 | /** 83 | Destination for the app invite. 84 | 85 | 86 | This is optional and for declaring destination of the invite. 87 | */ 88 | @property FBSDKAppInviteDestination destination; 89 | 90 | /** 91 | Compares the receiver to another app invite content. 92 | @param content The other content 93 | @return YES if the receiver's values are equal to the other content's values; otherwise NO 94 | */ 95 | - (BOOL)isEqualToAppInviteContent:(FBSDKAppInviteContent *)content; 96 | 97 | @end 98 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKCameraEffectArguments.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | * A container of arguments for a camera effect. 25 | * An argument is a NSString identified by a NSString key. 26 | */ 27 | @interface FBSDKCameraEffectArguments : NSObject 28 | 29 | /** 30 | Sets a string argument in the container. 31 | @param string The argument 32 | @param key The key for the argument 33 | */ 34 | - (void)setString:(NSString *)string forKey:(NSString *)key; 35 | 36 | /** 37 | Gets a string argument from the container. 38 | @param key The key for the argument 39 | @return The string value or nil 40 | */ 41 | - (NSString *)stringForKey:(NSString *)key; 42 | 43 | /** 44 | Sets a string array argument in the container. 45 | @param array The array argument 46 | @param key The key for the argument 47 | */ 48 | - (void)setArray:(NSArray *)array forKey:(NSString *)key; 49 | 50 | /** 51 | Gets an array argument from the container. 52 | @param key The key for the argument 53 | @return The array argument 54 | */ 55 | - (NSArray *)arrayForKey:(NSString *)key; 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKCameraEffectTextures.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | * A container of textures for a camera effect. 25 | * A texture for a camera effect is an UIImages identified by a NSString key. 26 | */ 27 | @interface FBSDKCameraEffectTextures : NSObject 28 | 29 | /** 30 | Sets the image for a texture key. 31 | @param image The UIImage for the texture 32 | @param key The key for the texture 33 | */ 34 | - (void)setImage:(UIImage *)image forKey:(NSString *)key; 35 | 36 | /** 37 | Gets the image for a texture key. 38 | @param key The key for the texture 39 | @return The texture UIImage or nil 40 | */ 41 | - (UIImage *)imageForKey:(NSString *)key; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKHashtag.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | Represents a single hashtag that can be used with the share dialog. 25 | */ 26 | @interface FBSDKHashtag : NSObject 27 | 28 | /** 29 | Convenience method to build a new hashtag with a string identifier. Equivalent to setting the 30 | `stringRepresentation` property. 31 | @param hashtagString The hashtag string. 32 | */ 33 | + (instancetype)hashtagWithString:(NSString *)hashtagString; 34 | 35 | /** 36 | The hashtag string. 37 | 38 | You are responsible for making sure that `stringRepresentation` is a valid hashtag (a single '#' followed 39 | by one or more word characters). Invalid hashtags are ignored when sharing content. You can check validity with the 40 | `valid` property. 41 | @return The hashtag string. 42 | */ 43 | @property (nonatomic, copy) NSString *stringRepresentation; 44 | 45 | /** 46 | Tests if a hashtag is valid. 47 | 48 | A valid hashtag matches the regular expression "#\w+": A single '#' followed by one or more 49 | word characters. 50 | @return YES if the hashtag is valid, NO otherwise. 51 | */ 52 | @property (nonatomic, readonly, assign, getter=isValid) BOOL valid; 53 | 54 | /** 55 | Compares the receiver to another hashtag. 56 | @param hashtag The other hashtag 57 | @return YES if the receiver is equal to the other hashtag; otherwise NO 58 | */ 59 | - (BOOL)isEqualToHashtag:(FBSDKHashtag *)hashtag; 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKLikeButton.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | #import 24 | #import 25 | 26 | /** 27 | Warning: This class is deprecated. 28 | A button to like an object. 29 | 30 | Tapping the receiver will invoke an API call to the Facebook app through a fast-app-switch that allows 31 | the object to be liked. Upon return to the calling app, the view will update with the new state. If the 32 | currentAccessToken has "publish_actions" permission and the object is an Open Graph object, then the like can happen 33 | seamlessly without the fast-app-switch. 34 | */ 35 | DEPRECATED_MSG_ATTRIBUTE("This is no longer available") 36 | @interface FBSDKLikeButton : FBSDKButton 37 | 38 | /** 39 | If YES, a sound is played when the receiver is toggled. 40 | 41 | @default YES 42 | */ 43 | @property (nonatomic, assign, getter = isSoundEnabled) BOOL soundEnabled; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKLikeObjectType.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | NS_ENUM (NSUInteger, FBSDKLikeObjectType) 23 | Specifies the type of object referenced by the objectID for likes. 24 | */ 25 | typedef NS_ENUM(NSUInteger, FBSDKLikeObjectType) 26 | { 27 | /** The objectID refers to an unknown object type. */ 28 | FBSDKLikeObjectTypeUnknown = 0, 29 | /** The objectID refers to an Open Graph object. */ 30 | FBSDKLikeObjectTypeOpenGraph, 31 | /** The objectID refers to an Page object. */ 32 | FBSDKLikeObjectTypePage, 33 | }; 34 | 35 | /** 36 | Converts an FBLikeControlObjectType to an NSString. 37 | */ 38 | FOUNDATION_EXPORT NSString *NSStringFromFBSDKLikeObjectType(FBSDKLikeObjectType objectType); 39 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKLiking.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | The common interface for components that initiate liking. 23 | 24 | @see FBSDKLikeButton 25 | 26 | @see FBSDKLikeControl 27 | */ 28 | @protocol FBSDKLiking 29 | 30 | /** 31 | The objectID for the object to like. 32 | 33 | 34 | This value may be an Open Graph object ID or a string representation of an URL that describes an 35 | Open Graph object. The objects may be public objects, like pages, or objects that are defined by your application. 36 | */ 37 | @property (nonatomic, copy) NSString *objectID; 38 | 39 | /** 40 | The type of object referenced by the objectID. 41 | 42 | 43 | If the objectType is unknown, the control will determine the objectType by querying the server with the 44 | objectID. Specifying a value for the objectType is an optimization that should be used if the type is known by the 45 | consumer. Consider setting the objectType if it is known when setting the objectID. 46 | */ 47 | @property (nonatomic, assign) FBSDKLikeObjectType objectType; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKMessageDialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | A dialog for sharing content through Messenger. 25 | 26 | SUPPORTED SHARE TYPES 27 | - FBSDKShareLinkContent 28 | - FBSDKShareMessengerOpenGraphMusicTemplateContent 29 | - FBSDKShareMessengerMediaTemplateContent 30 | - FBSDKShareMessengerGenericTemplateContent 31 | 32 | UNSUPPORTED SHARE TYPES (DEPRECATED AUGUST 2018) 33 | - FBSDKShareOpenGraphContent 34 | - FBSDKSharePhotoContent 35 | - FBSDKShareVideoContent 36 | - Any other types that are not one of the four supported types listed above 37 | */ 38 | @interface FBSDKMessageDialog : NSObject 39 | 40 | /** 41 | Convenience method to show a Message Share Dialog with content and a delegate. 42 | @param content The content to be shared. 43 | @param delegate The receiver's delegate. 44 | */ 45 | + (instancetype)showWithContent:(id)content delegate:(id)delegate; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKSendButton.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | #import 24 | 25 | /** 26 | A button to send content through Messenger. 27 | 28 | Tapping the receiver will invoke the FBSDKShareDialog with the attached shareContent. If the dialog cannot 29 | be shown, the button will be disable. 30 | */ 31 | @interface FBSDKSendButton : FBSDKButton 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareButton.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | #import 24 | 25 | /** 26 | A button to share content. 27 | 28 | Tapping the receiver will invoke the FBSDKShareDialog with the attached shareContent. If the dialog cannot 29 | be shown, the button will be disabled. 30 | */ 31 | @interface FBSDKShareButton : FBSDKButton 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareCameraEffectContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | #import 24 | #import 25 | 26 | /** 27 | A model for content to share with a Facebook camera effect. 28 | */ 29 | @interface FBSDKShareCameraEffectContent : NSObject 30 | 31 | /** 32 | ID of the camera effect to use. 33 | */ 34 | @property (nonatomic, copy) NSString *effectID; 35 | 36 | /** 37 | Arguments for the effect. 38 | */ 39 | @property (nonatomic, copy) FBSDKCameraEffectArguments *effectArguments; 40 | 41 | /** 42 | Textures for the effect. 43 | */ 44 | @property (nonatomic, copy) FBSDKCameraEffectTextures *effectTextures; 45 | 46 | /** 47 | Compares the receiver to another camera effect content. 48 | @param content The other content 49 | @return YES if the receiver's values are equal to the other content's values; otherwise NO 50 | */ 51 | - (BOOL)isEqualToShareCameraEffectContent:(FBSDKShareCameraEffectContent *)content; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareConstants.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 22 | 23 | /** 24 | The error domain for all errors from FBSDKShareKit. 25 | 26 | Error codes from the SDK in the range 200-299 are reserved for this domain. 27 | */ 28 | FOUNDATION_EXPORT NSErrorDomain const FBSDKShareErrorDomain; 29 | 30 | #else 31 | 32 | /** 33 | The error domain for all errors from FBSDKShareKit. 34 | 35 | Error codes from the SDK in the range 200-299 are reserved for this domain. 36 | */ 37 | FOUNDATION_EXPORT NSString *const FBSDKShareErrorDomain; 38 | 39 | #endif 40 | 41 | #ifndef NS_ERROR_ENUM 42 | #define NS_ERROR_ENUM(_domain, _name) \ 43 | enum _name: NSInteger _name; \ 44 | enum __attribute__((ns_error_domain(_domain))) _name: NSInteger 45 | #endif 46 | 47 | /** 48 | FBSDKShareError 49 | Error codes for FBSDKShareErrorDomain. 50 | */ 51 | typedef NS_ERROR_ENUM(FBSDKShareErrorDomain, FBSDKShareError) 52 | { 53 | /** 54 | Reserved. 55 | */ 56 | FBSDKShareErrorReserved = 200, 57 | 58 | /** 59 | The error code for errors from uploading open graph objects. 60 | */ 61 | FBSDKShareErrorOpenGraph, 62 | 63 | /** 64 | The error code for when a sharing dialog is not available. 65 | 66 | Use the canShare methods to check for this case before calling show. 67 | */ 68 | FBSDKShareErrorDialogNotAvailable, 69 | 70 | /** 71 | @The error code for unknown errors. 72 | */ 73 | FBSDKShareErrorUnknown, 74 | }; 75 | 76 | /** 77 | Deprecated 78 | */ 79 | typedef NS_ENUM(NSInteger, FBSDKShareErrorCode) 80 | { 81 | FBSDKShareReservedErrorCode DEPRECATED_MSG_ATTRIBUTE("use FBSDKShareErrorReserved instead") = 200, 82 | FBSDKShareOpenGraphErrorCode DEPRECATED_MSG_ATTRIBUTE("use FBSDKShareErrorOpenGraph instead"), 83 | FBSDKShareDialogNotAvailableErrorCode DEPRECATED_MSG_ATTRIBUTE("use FBSDKShareErrorDialogNotAvailable instead"), 84 | FBSDKShareUnknownErrorCode DEPRECATED_MSG_ATTRIBUTE("use FBSDKShareErrorUnknown instead"), 85 | } DEPRECATED_MSG_ATTRIBUTE("use FBSDKShareError instead"); 86 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareDialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | #import 24 | 25 | /** 26 | A dialog for sharing content on Facebook. 27 | */ 28 | @interface FBSDKShareDialog : NSObject 29 | 30 | /** 31 | Convenience method to show an FBSDKShareDialog with a fromViewController, content and a delegate. 32 | @param viewController A UIViewController to present the dialog from, if appropriate. 33 | @param content The content to be shared. 34 | @param delegate The receiver's delegate. 35 | */ 36 | + (instancetype)showFromViewController:(UIViewController *)viewController 37 | withContent:(id)content 38 | delegate:(id)delegate; 39 | 40 | /** 41 | A UIViewController to present the dialog from. 42 | 43 | If not specified, the top most view controller will be automatically determined as best as possible. 44 | */ 45 | @property (nonatomic, weak) UIViewController *fromViewController; 46 | 47 | /** 48 | The mode with which to display the dialog. 49 | 50 | Defaults to FBSDKShareDialogModeAutomatic, which will automatically choose the best available mode. 51 | */ 52 | @property (nonatomic, assign) FBSDKShareDialogMode mode; 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareDialogMode.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | NS_ENUM(NSUInteger, FBSDKShareDialogMode) 23 | Modes for the FBSDKShareDialog. 24 | 25 | The automatic mode will progressively check the availability of different modes and open the most 26 | appropriate mode for the dialog that is available. 27 | */ 28 | typedef NS_ENUM(NSUInteger, FBSDKShareDialogMode) 29 | { 30 | /** 31 | Acts with the most appropriate mode that is available. 32 | */ 33 | FBSDKShareDialogModeAutomatic = 0, 34 | /** 35 | @Displays the dialog in the main native Facebook app. 36 | */ 37 | FBSDKShareDialogModeNative, 38 | /** 39 | @Displays the dialog in the iOS integrated share sheet. 40 | */ 41 | FBSDKShareDialogModeShareSheet, 42 | /** 43 | @Displays the dialog in Safari. 44 | */ 45 | FBSDKShareDialogModeBrowser, 46 | /** 47 | @Displays the dialog in a UIWebView within the app. 48 | */ 49 | FBSDKShareDialogModeWeb, 50 | /** 51 | @Displays the feed dialog in Safari. 52 | */ 53 | FBSDKShareDialogModeFeedBrowser, 54 | /** 55 | @Displays the feed dialog in a UIWebView within the app. 56 | */ 57 | FBSDKShareDialogModeFeedWeb, 58 | }; 59 | 60 | /** 61 | Converts an FBSDKShareDialogMode to an NSString. 62 | */ 63 | FOUNDATION_EXPORT NSString *NSStringFromFBSDKShareDialogMode(FBSDKShareDialogMode dialogMode); 64 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareKit.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | #import 33 | #import 34 | #import 35 | #import 36 | #import 37 | #import 38 | #import 39 | #import 40 | #import 41 | 42 | #if !TARGET_OS_TV 43 | #import 44 | #import 45 | #import 46 | #import 47 | #import 48 | #import 49 | #import 50 | #import 51 | #import 52 | #import 53 | #import 54 | #import 55 | #import 56 | #import 57 | #import 58 | #import 59 | #else 60 | #import 61 | #import 62 | #endif 63 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareLinkContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | A model for status and link content to be shared. 25 | */ 26 | @interface FBSDKShareLinkContent : NSObject 27 | 28 | /** 29 | The description of the link. 30 | 31 | If not specified, this field is automatically populated by information scraped from the contentURL, 32 | typically the title of the page. This value may be discarded for specially handled links (ex: iTunes URLs). 33 | @return The description of the link 34 | 35 | @deprecated `contentDescription` is deprecated from Graph API 2.9. 36 | For more information, see https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations. 37 | */ 38 | @property (nonatomic, readonly) NSString *contentDescription 39 | DEPRECATED_MSG_ATTRIBUTE("`contentDescription` is deprecated from Graph API 2.9"); 40 | 41 | /** 42 | The title to display for this link. 43 | 44 | This value may be discarded for specially handled links (ex: iTunes URLs). 45 | @return The link title 46 | 47 | @deprecated `contentTitle` is deprecated from Graph API 2.9. 48 | For more information, see https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations 49 | */ 50 | @property (nonatomic, readonly) NSString *contentTitle 51 | DEPRECATED_MSG_ATTRIBUTE("`contentTitle` is deprecated from Graph API 2.9"); 52 | 53 | /** 54 | The URL of a picture to attach to this content. 55 | @return The network URL of an image 56 | 57 | @deprecated `imageURL` is deprecated from Graph API 2.9. 58 | For more information, see https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations 59 | */ 60 | @property (nonatomic, readonly) NSURL *imageURL 61 | DEPRECATED_MSG_ATTRIBUTE("`imageURL` is deprecated from Graph API 2.9"); 62 | 63 | /** 64 | Some quote text of the link. 65 | 66 | If specified, the quote text will render with custom styling on top of the link. 67 | @return The quote text of a link 68 | */ 69 | @property (nonatomic, copy) NSString *quote; 70 | 71 | /** 72 | Compares the receiver to another link content. 73 | @param content The other content 74 | @return YES if the receiver's values are equal to the other content's values; otherwise NO 75 | */ 76 | - (BOOL)isEqualToShareLinkContent:(FBSDKShareLinkContent *)content; 77 | 78 | @end 79 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareMediaContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | A model for media content (photo or video) to be shared. 25 | */ 26 | @interface FBSDKShareMediaContent : NSObject 27 | 28 | /** 29 | Media to be shared. 30 | @return Array of the media (FBSDKSharePhoto or FBSDKShareVideo) 31 | */ 32 | @property (nonatomic, copy) NSArray *media; 33 | 34 | /** 35 | Compares the receiver to another media content. 36 | @param content The other content 37 | @return YES if the receiver's values are equal to the other content's values; otherwise NO 38 | */ 39 | - (BOOL)isEqualToShareMediaContent:(FBSDKShareMediaContent *)content; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareMessengerActionButton.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | A base interface for Messenger share action buttons. 25 | */ 26 | @protocol FBSDKShareMessengerActionButton 27 | 28 | /** 29 | The title displayed to the user for the button. 30 | @return The title for the button. 31 | */ 32 | @property (nonatomic, copy) NSString *title; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareMessengerGenericTemplateContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | @class FBSDKShareMessengerGenericTemplateElement; 24 | 25 | typedef NS_ENUM(NSUInteger, FBSDKShareMessengerGenericTemplateImageAspectRatio) { 26 | FBSDKShareMessengerGenericTemplateImageAspectRatioHorizontal = 0, 27 | FBSDKShareMessengerGenericTemplateImageAspectRatioSquare 28 | }; 29 | 30 | /** 31 | A model for sharing a generic template element to Messenger. This wrapper element allows 32 | specifying whether or not the bubble is sharable and what aspect to render the images. 33 | See https://developers.facebook.com/docs/messenger-platform/send-messages/template/generic 34 | for more details. 35 | */ 36 | @interface FBSDKShareMessengerGenericTemplateContent : NSObject 37 | 38 | /** 39 | This specifies whether or not this generic template message can be shared again after the 40 | initial share. Defaults to false. 41 | */ 42 | @property (nonatomic, assign) BOOL isSharable; 43 | 44 | /** 45 | The aspect ratio for when the image is rendered in the generic template bubble after being 46 | shared. Defaults to horizontal. 47 | */ 48 | @property (nonatomic, assign) FBSDKShareMessengerGenericTemplateImageAspectRatio imageAspectRatio; 49 | 50 | /** 51 | A generic template element with a title, optional subtitle, optional image, etc. Required. 52 | */ 53 | @property (nonatomic, copy) FBSDKShareMessengerGenericTemplateElement *element; 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareMessengerGenericTemplateElement.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | 24 | /** 25 | A model for sharing a generic template element to Messenger. This allows specifying title, subtitle, 26 | image, default action, and any other buttons. Title is required. See 27 | https://developers.facebook.com/docs/messenger-platform/send-messages/template/generic for more details. 28 | */ 29 | @interface FBSDKShareMessengerGenericTemplateElement : NSObject 30 | 31 | /** 32 | The rendered title for the shared generic template element. Required. 33 | */ 34 | @property (nonatomic, copy) NSString *title; 35 | 36 | /** 37 | The rendered subtitle for the shared generic template element. Optional. 38 | */ 39 | @property (nonatomic, copy) NSString *subtitle; 40 | 41 | /** 42 | The image url that will be downloaded and rendered at the top of the generic template. Optional. 43 | */ 44 | @property (nonatomic, copy) NSURL *imageURL; 45 | 46 | /** 47 | The default action executed when this shared generic tempate is tapped. Title for this button is ignored. Optional. 48 | */ 49 | @property (nonatomic, copy) id defaultAction; 50 | 51 | /** 52 | This specifies what action button to show below the generic template. Optional. 53 | */ 54 | @property (nonatomic, copy) id button; 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareMessengerMediaTemplateContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | 24 | typedef NS_ENUM(NSUInteger, FBSDKShareMessengerMediaTemplateMediaType) { 25 | FBSDKShareMessengerMediaTemplateMediaTypeImage = 0, 26 | FBSDKShareMessengerMediaTemplateMediaTypeVideo 27 | }; 28 | 29 | /** 30 | A model for sharing media template content. See 31 | https://developers.facebook.com/docs/messenger-platform/send-messages/template/media for details. 32 | */ 33 | @interface FBSDKShareMessengerMediaTemplateContent : NSObject 34 | 35 | /** 36 | The media type (image or video) for this content. This must match the media type specified in the 37 | attachmentID/mediaURL to avoid an error when sharing. Defaults to image. 38 | */ 39 | @property (nonatomic, assign) FBSDKShareMessengerMediaTemplateMediaType mediaType; 40 | 41 | /** 42 | The attachmentID of the item to share. Optional, but either attachmentID or mediaURL must be specified. 43 | */ 44 | @property (nonatomic, copy, readonly) NSString *attachmentID; 45 | 46 | /** 47 | The Facebook url for this piece of media. External urls will not work; this must be a Facebook url. 48 | See https://developers.facebook.com/docs/messenger-platform/send-messages/template/media for details. 49 | Optional, but either attachmentID or mediaURL must be specified. 50 | */ 51 | @property (nonatomic, copy, readonly) NSURL *mediaURL; 52 | 53 | /** 54 | This specifies what action button to show below the media. Optional. 55 | */ 56 | @property (nonatomic, copy) id button; 57 | 58 | /** 59 | Custom initializer to create media template share with attachment id. 60 | */ 61 | - (instancetype)initWithAttachmentID:(NSString *)attachmentID; 62 | 63 | /** 64 | Custom initializer to create media template share with media url. This must be a Facebook url 65 | and cannot be an external url. 66 | */ 67 | - (instancetype)initWithMediaURL:(NSURL *)mediaURL; 68 | 69 | @end 70 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareMessengerOpenGraphMusicTemplateContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | 24 | /** 25 | This share content allows sharing a bubble that plays songs with Open Graph music. 26 | See https://developers.facebook.com/docs/messenger-platform/send-messages/template/open-graph 27 | for details. Passing property pageID is required for this type of share. 28 | */ 29 | @interface FBSDKShareMessengerOpenGraphMusicTemplateContent : NSObject 30 | 31 | /** 32 | This must be an Open Graph music url. Required. 33 | */ 34 | @property (nonatomic, copy) NSURL *url; 35 | 36 | /** 37 | This specifies what action button to show below the open graph music bubble. Optional. 38 | */ 39 | @property (nonatomic, copy) id button; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareMessengerURLActionButton.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | typedef NS_ENUM(NSUInteger, FBSDKShareMessengerURLActionButtonWebviewHeightRatio) { 24 | FBSDKShareMessengerURLActionButtonWebviewHeightRatioFull = 0, 25 | FBSDKShareMessengerURLActionButtonWebviewHeightRatioTall, 26 | FBSDKShareMessengerURLActionButtonWebviewHeightRatioCompact 27 | }; 28 | 29 | /** 30 | A model for a Messenger share URL action button. 31 | */ 32 | @interface FBSDKShareMessengerURLActionButton : NSObject 33 | 34 | /** 35 | The url that this button should open when tapped. Required. 36 | */ 37 | @property (nonatomic, copy) NSURL *url; 38 | 39 | /** 40 | This controls the display height of the webview when shown in the Messenger app. Defaults to Full. 41 | */ 42 | @property (nonatomic, assign) FBSDKShareMessengerURLActionButtonWebviewHeightRatio webviewHeightRatio; 43 | 44 | /** 45 | This must be true if the url is a Messenger Extensions url. Defaults to NO. 46 | */ 47 | @property (nonatomic, assign) BOOL isMessengerExtensionURL; 48 | 49 | /** 50 | This is a fallback url for a Messenger Extensions enabled button. It is used on clients that do not support 51 | Messenger Extensions. If this is not defined, the url will be used as a fallback. Optional, but ignored 52 | unless isMessengerExtensionURL == YES. 53 | */ 54 | @property (nonatomic, copy) NSURL *fallbackURL; 55 | 56 | /** 57 | This controls whether we want to hide the share button in the webview or not. It is useful to hide the share 58 | button when the webview is user-specific and contains sensitive information. Defaults to NO. 59 | */ 60 | @property (nonatomic, assign) BOOL shouldHideWebviewShareButton; 61 | 62 | @end 63 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareOpenGraphAction.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | #import 24 | #import 25 | 26 | /** 27 | An Open Graph Action for sharing. 28 | 29 | The property keys MUST have namespaces specified on them, such as `og:image`. 30 | */ 31 | @interface FBSDKShareOpenGraphAction : FBSDKShareOpenGraphValueContainer 32 | 33 | /** 34 | Convenience method to build a new action and set the object for the specified key. 35 | @param actionType The action type of the receiver 36 | @param object The Open Graph object represented by this action 37 | @param key The key for the object 38 | */ 39 | + (instancetype)actionWithType:(NSString *)actionType object:(FBSDKShareOpenGraphObject *)object key:(NSString *)key; 40 | 41 | /** 42 | Convenience method to build a new action and set the object for the specified key. 43 | @param actionType The action type of the receiver 44 | @param objectID The ID of an existing Open Graph object 45 | @param key The key for the object 46 | */ 47 | + (instancetype)actionWithType:(NSString *)actionType objectID:(NSString *)objectID key:(NSString *)key; 48 | 49 | /** 50 | Convenience method to build a new action and set the object for the specified key. 51 | @param actionType The action type of the receiver 52 | @param objectURL The URL to a page that defines the Open Graph object with meta tags 53 | @param key The key for the object 54 | */ 55 | + (instancetype)actionWithType:(NSString *)actionType objectURL:(NSURL *)objectURL key:(NSString *)key; 56 | 57 | /** 58 | Gets the action type. 59 | @return The action type 60 | */ 61 | @property (nonatomic, copy) NSString *actionType; 62 | 63 | /** 64 | Compares the receiver to another Open Graph Action. 65 | @param action The other action 66 | @return YES if the receiver's values are equal to the other action's values; otherwise NO 67 | */ 68 | - (BOOL)isEqualToShareOpenGraphAction:(FBSDKShareOpenGraphAction *)action; 69 | 70 | @end 71 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareOpenGraphContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | 24 | /** 25 | A model for Open Graph content to be shared. 26 | */ 27 | @interface FBSDKShareOpenGraphContent : NSObject 28 | 29 | /** 30 | Open Graph Action to be shared. 31 | @return The action 32 | */ 33 | @property (nonatomic, copy) FBSDKShareOpenGraphAction *action; 34 | 35 | /** 36 | Property name that points to the primary Open Graph Object in the action. 37 | 38 | The value that this action points to will be use for rendering the preview for the share. 39 | @return The property name for the Open Graph Object in the action 40 | */ 41 | @property (nonatomic, copy) NSString *previewPropertyName; 42 | 43 | /** 44 | Compares the receiver to another Open Graph content. 45 | @param content The other content 46 | @return YES if the receiver's values are equal to the other content's values; otherwise NO 47 | */ 48 | - (BOOL)isEqualToShareOpenGraphContent:(FBSDKShareOpenGraphContent *)content; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareOpenGraphObject.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | #import 24 | 25 | /** 26 | An Open Graph Object for sharing. 27 | 28 | The property keys MUST have namespaces specified on them, such as `og:image`, 29 | and `og:type` is required. 30 | 31 | See https://developers.facebook.com/docs/sharing/opengraph/object-properties for other properties. 32 | 33 | You can specify nested namespaces inline to define complex properties. For example, the following 34 | code will generate a fitness.course object with a location: 35 | 36 | FBSDKShareOpenGraphObject *course = [FBSDKShareOpenGraphObject objectWithProperties: 37 | @{ 38 | @"og:type": @"fitness.course", 39 | @"og:title": @"Sample course", 40 | @"fitness:metrics:location:latitude": @"41.40338", 41 | @"fitness:metrics:location:longitude": @"2.17403", 42 | }]; 43 | */ 44 | @interface FBSDKShareOpenGraphObject : FBSDKShareOpenGraphValueContainer 45 | 46 | /** 47 | Convenience method to build a new action and set the object for the specified key. 48 | @param properties Properties for the Open Graph object, which will be parsed into the proper models 49 | */ 50 | + (instancetype)objectWithProperties:(NSDictionary *)properties; 51 | 52 | /** 53 | Compares the receiver to another Open Graph Object. 54 | @param object The other object 55 | @return YES if the receiver's values are equal to the other object's values; otherwise NO 56 | */ 57 | - (BOOL)isEqualToShareOpenGraphObject:(FBSDKShareOpenGraphObject *)object; 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKSharePhotoContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | A model for photo content to be shared. 25 | */ 26 | @interface FBSDKSharePhotoContent : NSObject 27 | 28 | /** 29 | Photos to be shared. 30 | @return Array of the photos (FBSDKSharePhoto) 31 | */ 32 | @property (nonatomic, copy) NSArray *photos; 33 | 34 | /** 35 | Compares the receiver to another photo content. 36 | @param content The other content 37 | @return YES if the receiver's values are equal to the other content's values; otherwise NO 38 | */ 39 | - (BOOL)isEqualToSharePhotoContent:(FBSDKSharePhotoContent *)content; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKShareVideoContent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | #import 23 | #import 24 | 25 | /** 26 | A model for video content to be shared. 27 | */ 28 | @interface FBSDKShareVideoContent : NSObject 29 | 30 | /** 31 | The photo that represents the video. 32 | @return The photo 33 | */ 34 | @property (nonatomic, copy) FBSDKSharePhoto *previewPhoto 35 | DEPRECATED_MSG_ATTRIBUTE("Use `video.previewPhoto`"); 36 | 37 | /** 38 | The video to be shared. 39 | @return The video 40 | */ 41 | @property (nonatomic, copy) FBSDKShareVideo *video; 42 | 43 | /** 44 | Compares the receiver to another video content. 45 | @param content The other content 46 | @return YES if the receiver's values are equal to the other content's values; otherwise NO 47 | */ 48 | - (BOOL)isEqualToShareVideoContent:(FBSDKShareVideoContent *)content; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKSharingButton.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | #import 22 | 23 | /** 24 | The common interface for sharing buttons. 25 | 26 | @see FBSDKSendButton 27 | 28 | @see FBSDKShareButton 29 | */ 30 | @protocol FBSDKSharingButton 31 | 32 | /** 33 | The content to be shared. 34 | */ 35 | @property (nonatomic, copy) id shareContent; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKSharingScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import "FBSDKShareDialogMode.h" 20 | 21 | /** 22 | A base interface for indicating a custom URL scheme 23 | */ 24 | @protocol FBSDKSharingScheme 25 | 26 | /** 27 | Asks the receiver to provide a custom scheme. 28 | - Parameter mode: The intended dialog mode for sharing the content. 29 | - Returns: A custom URL scheme to use for the specified mode, or nil. 30 | */ 31 | - (nullable NSString *)schemeForMode:(FBSDKShareDialogMode)mode; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Headers/FBSDKSharingValidation.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. 2 | // 3 | // You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | // copy, modify, and distribute this software in source code or binary form for use 5 | // in connection with the web services and APIs provided by Facebook. 6 | // 7 | // As with any software that integrates with the Facebook platform, your use of 8 | // this software is subject to the Facebook Developer Principles and Policies 9 | // [http://developers.facebook.com/policy/]. This copyright notice shall be 10 | // included in all copies or substantial portions of the software. 11 | // 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 14 | // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 16 | // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | #import 20 | 21 | /** 22 | Flags to indicate support for newer bridge options beyond the initial 20130410 implementation. 23 | */ 24 | typedef NS_OPTIONS(NSUInteger, FBSDKShareBridgeOptions) 25 | { 26 | FBSDKShareBridgeOptionsDefault = 0, 27 | FBSDKShareBridgeOptionsPhotoAsset = 1 << 0, 28 | FBSDKShareBridgeOptionsPhotoImageURL = 1 << 1, // if set, a web-based URL is required; asset, image, and imageURL.isFileURL not allowed 29 | FBSDKShareBridgeOptionsVideoAsset = 1 << 2, 30 | FBSDKShareBridgeOptionsVideoData = 1 << 3, 31 | FBSDKShareBridgeOptionsWebHashtag = 1 << 4, // if set, pass the hashtag as a string value, not an array of one string 32 | }; 33 | 34 | /** 35 | A base interface for validation of content and media. 36 | */ 37 | @protocol FBSDKSharingValidation 38 | 39 | /** 40 | Asks the receiver to validate that its content or media values are valid. 41 | - Parameter errorRef: Optional, will receive an FBSDKShareError if the values are not valid. 42 | - Returns: YES if the receiver's values are valid; otherwise NO 43 | */ 44 | - (BOOL)validateWithOptions:(FBSDKShareBridgeOptions)bridgeOptions error:(NSError *__autoreleasing *)errorRef; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/ios/Frameworks/FBSDKShareKit.framework/Info.plist -------------------------------------------------------------------------------- /ios/Frameworks/FBSDKShareKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FBSDKShareKit { 2 | umbrella header "FBSDKShareKit.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'ReactNativeStarterKit' do 5 | # Uncomment the next line if you're using Swift or would like to use dynamic frameworks 6 | # use_frameworks! 7 | 8 | # Pods for ReactNativeStarterKit 9 | 10 | end 11 | -------------------------------------------------------------------------------- /ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODFILE CHECKSUM: 6a65afed5b9e3d7fe87fc9041af205c0e09e087f 2 | 3 | COCOAPODS: 1.5.3 4 | -------------------------------------------------------------------------------- /ios/ReactNativeStarterKit.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/ReactNativeStarterKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/ReactNativeStarterKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ios/ReactNativeStarterKit/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 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/ReactNativeStarterKit/AppDelegate.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 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 | #import 13 | #import 14 | #import 15 | 16 | #define FACEBOOK_SCHEME @"fb2429596703782219" 17 | 18 | @implementation AppDelegate 19 | 20 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 21 | { 22 | NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; 23 | [ReactNativeNavigation bootstrap:jsCodeLocation launchOptions:launchOptions]; 24 | 25 | [[FBSDKApplicationDelegate sharedInstance] application:application 26 | didFinishLaunchingWithOptions:launchOptions]; 27 | 28 | return YES; 29 | } 30 | 31 | - (BOOL)application:(UIApplication *)application 32 | openURL:(NSURL *)url 33 | options:(NSDictionary *)options { 34 | /** 35 | Facebook Request 36 | */ 37 | if ([[url scheme] isEqualToString:FACEBOOK_SCHEME]) { 38 | return [[FBSDKApplicationDelegate sharedInstance] application:application 39 | openURL:url 40 | sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] 41 | annotation:options[UIApplicationOpenURLOptionsAnnotationKey] 42 | ]; 43 | } 44 | 45 | return [RCTLinkingManager application:application 46 | openURL:url 47 | sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] 48 | annotation:options[UIApplicationOpenURLOptionsAnnotationKey] 49 | ]; 50 | } 51 | 52 | - (void)applicationDidBecomeActive:(UIApplication *)application { 53 | [FBSDKAppEvents activateApp]; 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /ios/ReactNativeStarterKit/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /ios/ReactNativeStarterKit/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ios/ReactNativeStarterKit/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ReactNativeStarterKit 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleURLTypes 24 | 25 | 26 | CFBundleURLSchemes 27 | 28 | fb2429596703782219 29 | 30 | 31 | 32 | CFBundleVersion 33 | 1 34 | FacebookAppID 35 | 2429596703782219 36 | FacebookDisplayName 37 | ReactNativeStarterKit 38 | LSApplicationQueriesSchemes 39 | 40 | fbapi 41 | fb-messenger-share-api 42 | fbauth2 43 | fbshareextension 44 | 45 | LSRequiresIPhoneOS 46 | 47 | NSAppTransportSecurity 48 | 49 | NSAllowsArbitraryLoads 50 | 51 | NSExceptionDomains 52 | 53 | localhost 54 | 55 | NSExceptionAllowsInsecureHTTPLoads 56 | 57 | 58 | 59 | 60 | NSLocationWhenInUseUsageDescription 61 | 62 | UILaunchStoryboardName 63 | LaunchScreen 64 | UIRequiredDeviceCapabilities 65 | 66 | armv7 67 | 68 | UISupportedInterfaceOrientations 69 | 70 | UIInterfaceOrientationPortrait 71 | UIInterfaceOrientationLandscapeLeft 72 | UIInterfaceOrientationLandscapeRight 73 | 74 | UIViewControllerBasedStatusBarAppearance 75 | 76 | UIAppFonts 77 | 78 | AntDesign.ttf 79 | Entypo.ttf 80 | EvilIcons.ttf 81 | Feather.ttf 82 | FontAwesome.ttf 83 | FontAwesome5_Brands.ttf 84 | FontAwesome5_Regular.ttf 85 | FontAwesome5_Solid.ttf 86 | Foundation.ttf 87 | Ionicons.ttf 88 | MaterialCommunityIcons.ttf 89 | MaterialIcons.ttf 90 | Octicons.ttf 91 | SimpleLineIcons.ttf 92 | Zocial.ttf 93 | SFProDisplayBlack.otf 94 | SFProDisplayBold.otf 95 | SFProDisplayHeavy.otf 96 | SFProDisplayLight.otf 97 | SFProDisplayMedium.otf 98 | SFProDisplayRegular.otf 99 | SFProDisplaySemibold.otf 100 | SFProDisplayThin.otf 101 | SFProDisplayUltralight.otf 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /ios/ReactNativeStarterKit/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 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/ReactNativeStarterKitTests/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/ReactNativeStarterKitTests/ReactNativeStarterKitTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 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 ReactNativeStarterKitTests : XCTestCase 18 | 19 | @end 20 | 21 | @implementation ReactNativeStarterKitTests 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 | -------------------------------------------------------------------------------- /jest-setup.js: -------------------------------------------------------------------------------- 1 | import './__mocks__'; 2 | 3 | jest 4 | .mock('Button', () => { 5 | const RealComponent = require.requireActual('react-native-elements').Button; 6 | return RealComponent; 7 | }); 8 | 9 | const emptyFn = () => {}; 10 | const AnimatedValue = function() { 11 | this.setValue = emptyFn; 12 | this.setOffset = emptyFn; 13 | }; 14 | 15 | const AnimatedValueXY = function() {}; 16 | AnimatedValueXY.prototype.x = new AnimatedValue(); 17 | AnimatedValueXY.prototype.y = new AnimatedValue(); 18 | 19 | console.error = jest.genMockFunction(); 20 | 21 | jest.resetModules(); 22 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/logo.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactNativeStarterKit", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node node_modules/react-native/local-cli/cli.js start", 7 | "test": "jest", 8 | "android": "concurrently \"npm run android:dubugger\" \"npm run android:packager\" \"cd ./android && ./gradlew app:assembleDebug && ./gradlew installDebug\"", 9 | "android-build-prod": "export ENVFILE=.env && cd android && ./gradlew app:assembleRelease && cd .." 10 | }, 11 | "dependencies": { 12 | "lodash": "^4.17.11", 13 | "prop-types": "^15.6.2", 14 | "react": "16.6.3", 15 | "react-native": "0.58.5", 16 | "react-native-config": "^0.11.7", 17 | "react-native-elements": "^0.19.1", 18 | "react-native-fbsdk": "^0.8.0", 19 | "react-native-navigation": "2.12.0", 20 | "react-native-vector-icons": "^6.1.0", 21 | "react-redux": "^5.1.0", 22 | "redux": "^4.0.1", 23 | "redux-actions": "^2.6.4", 24 | "redux-logger": "^3.0.6", 25 | "redux-persist": "^5.10.0", 26 | "redux-saga": "^0.16.2", 27 | "redux-thunk": "^2.3.0", 28 | "remote-redux-devtools": "^0.5.12" 29 | }, 30 | "devDependencies": { 31 | "@babel/core": "7.2.2", 32 | "@babel/plugin-proposal-decorators": "7.2.2", 33 | "@babel/plugin-syntax-export-namespace-from": "7.0.0", 34 | "@babel/preset-env": "7.2.3", 35 | "babel-core": "7.0.0-bridge.0", 36 | "babel-eslint": "10.0.1", 37 | "babel-jest": "24.1.0", 38 | "babel-plugin-transform-decorators": "6.24.1", 39 | "babel-plugin-transform-decorators-legacy": "1.3.5", 40 | "babel-plugin-transform-export-extensions": "6.22.0", 41 | "babel-preset-env": "2.0.0-alpha.20", 42 | "babel-preset-jest": "23.2.0", 43 | "babel-preset-react-native": "5.0.2", 44 | "babel-preset-react-native-stage-0": "1.0.1", 45 | "enzyme": "3.7.0", 46 | "eslint": "5.9.0", 47 | "eslint-config-airbnb": "17.1.0", 48 | "eslint-plugin-flowtype": "3.2.0", 49 | "eslint-plugin-import": "2.14.0", 50 | "eslint-plugin-jsx-a11y": "6.1.2", 51 | "eslint-plugin-react": "7.11.1", 52 | "eslint-plugin-react-native": "3.5.0", 53 | "flow-bin": "0.86.0", 54 | "flow-typed": "2.5.1", 55 | "jest": "24.1.0", 56 | "jest-enzyme": "7.0.1", 57 | "jest-repl": "23.6.0", 58 | "metro-react-native-babel-preset": "0.52.0", 59 | "react-test-renderer": "16.6.3", 60 | "schedule": "0.4.0" 61 | }, 62 | "jest": { 63 | "preset": "react-native", 64 | "bail": true, 65 | "verbose": true, 66 | "automock": false, 67 | "cacheDirectory": "/.jest-cache", 68 | "moduleNameMapper": { 69 | "^React$": "/node_modules/react" 70 | }, 71 | "testMatch": [ 72 | "/(tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx))" 73 | ], 74 | "transform": { 75 | "^.+\\.js?$": "babel-jest" 76 | } 77 | }, 78 | "rnpm": { 79 | "assets": [ 80 | "src/fonts/assets" 81 | ] 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/assets/icons/ic_nav_logout@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_nav_logout@1x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_nav_logout@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_nav_logout@2x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_nav_logout@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_nav_logout@3x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_nav_user@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_nav_user@1x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_nav_user@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_nav_user@2x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_nav_user@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_nav_user@3x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_tab_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_tab_home.png -------------------------------------------------------------------------------- /src/assets/icons/ic_tab_home@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_tab_home@2x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_tab_home@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_tab_home@3x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_tab_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_tab_menu.png -------------------------------------------------------------------------------- /src/assets/icons/ic_tab_menu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_tab_menu@2x.png -------------------------------------------------------------------------------- /src/assets/icons/ic_tab_menu@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/icons/ic_tab_menu@3x.png -------------------------------------------------------------------------------- /src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/assets/images/logo.png -------------------------------------------------------------------------------- /src/assets/package.json: -------------------------------------------------------------------------------- 1 | { "name": "assets" } 2 | -------------------------------------------------------------------------------- /src/components/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/components/index.js -------------------------------------------------------------------------------- /src/fonts/SFProDisplayBlack.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Black', 10 | } 11 | }); 12 | 13 | export function SFProDisplayBlack({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplayBlack.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplayBlack.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/SFProDisplayBold.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Bold', 10 | } 11 | }); 12 | 13 | export function SFProDisplayBold({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplayBold.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplayBold.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/SFProDisplayHeavy.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Heavy', 10 | } 11 | }); 12 | 13 | export function SFProDisplayHeavy({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplayHeavy.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplayHeavy.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/SFProDisplayLight.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Light', 10 | } 11 | }); 12 | 13 | export function SFProDisplayLight({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplayLight.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplayLight.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/SFProDisplayMedium.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Medium', 10 | } 11 | }); 12 | 13 | export function SFProDisplayMedium({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplayMedium.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplayMedium.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/SFProDisplayRegular.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Regular', 10 | } 11 | }); 12 | 13 | export function SFProDisplayRegular({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplayRegular.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplayRegular.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/SFProDisplaySemiBold.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Semibold', 10 | } 11 | }); 12 | 13 | export function SFProDisplaySemiBold({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplaySemiBold.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplaySemiBold.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/SFProDisplayThin.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Thin', 10 | } 11 | }); 12 | 13 | export function SFProDisplayThin({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplayThin.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplayThin.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/SFProDisplayUltralight.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text, StyleSheet } from 'react-native'; 4 | 5 | const styles = StyleSheet.create({ 6 | text: { 7 | color: 'black', 8 | fontSize: 12, 9 | fontFamily: 'SFProDisplay-Ultralight', 10 | } 11 | }); 12 | 13 | export function SFProDisplayUltralight({ style, ...props }) { 14 | return ( 15 | 16 | ); 17 | } 18 | 19 | SFProDisplayUltralight.propTypes = { 20 | children: PropTypes.oneOfType([ 21 | PropTypes.string, 22 | PropTypes.number, 23 | PropTypes.any, 24 | ]), 25 | style: Text.propTypes.style, 26 | }; 27 | 28 | SFProDisplayUltralight.defaultProps = { 29 | children: undefined, 30 | style: {} 31 | }; 32 | -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplayBlack.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplayBlack.otf -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplayBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplayBold.otf -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplayHeavy.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplayHeavy.otf -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplayLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplayLight.otf -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplayMedium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplayMedium.otf -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplayRegular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplayRegular.otf -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplaySemibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplaySemibold.otf -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplayThin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplayThin.otf -------------------------------------------------------------------------------- /src/fonts/assets/SFProDisplayUltralight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atoami/react-native-navigation-redux-starter-kit/1bacd4f9ae8efd8511d07b4c23681c96e5068fd6/src/fonts/assets/SFProDisplayUltralight.otf -------------------------------------------------------------------------------- /src/fonts/index.js: -------------------------------------------------------------------------------- 1 | // SF UI Fonts 2 | export { SFProDisplayBold } from './SFProDisplayBold'; 3 | export { SFProDisplayUltralight } from './SFProDisplayUltralight'; 4 | export { SFProDisplayHeavy } from './SFProDisplayHeavy'; 5 | export { SFProDisplayThin } from './SFProDisplayThin'; 6 | export { SFProDisplayLight } from './SFProDisplayLight'; 7 | export { SFProDisplayMedium } from './SFProDisplayMedium'; 8 | export { SFProDisplayRegular } from './SFProDisplayRegular'; 9 | export { SFProDisplayBlack } from './SFProDisplayBlack'; 10 | export { SFProDisplaySemiBold } from './SFProDisplaySemiBold'; 11 | -------------------------------------------------------------------------------- /src/navigation/Screens.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | export const WELCOME_SCREEN = 'demo.WelcomeScreen'; 4 | export const LOGIN_SCREEN = 'demo.LoginScreen'; 5 | export const SINGLE_APP_SCREEN = 'demo.SingleAppScreen'; 6 | export const TAB1_SCREEN = 'demo.Tab1Screen'; 7 | export const TAB2_SCREEN = 'demo.Tab2Screen'; 8 | -------------------------------------------------------------------------------- /src/navigation/index.js: -------------------------------------------------------------------------------- 1 | export * from './Screens'; 2 | export { pushTutorialScreen, pushSingleScreenApp, pushTabBasedApp } from './Navigation'; 3 | -------------------------------------------------------------------------------- /src/navigation/registerScreens.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import React from 'react'; 4 | import { Navigation } from 'react-native-navigation'; 5 | 6 | import { 7 | WelcomeScreen, 8 | LoginScreen, 9 | SingleAppScreen, 10 | Tab1Screen, 11 | Tab2Screen 12 | } from 'src/screens'; 13 | import { Provider } from 'src/redux'; 14 | 15 | import { 16 | WELCOME_SCREEN, 17 | LOGIN_SCREEN, 18 | SINGLE_APP_SCREEN, 19 | TAB1_SCREEN, 20 | TAB2_SCREEN 21 | } from './Screens'; 22 | 23 | function WrappedComponent(Component) { 24 | return function inject(props) { 25 | const EnhancedComponent = () => ( 26 | 27 | 30 | 31 | ); 32 | 33 | return ; 34 | }; 35 | } 36 | 37 | export default function () { 38 | Navigation.registerComponent(WELCOME_SCREEN, () => WrappedComponent(WelcomeScreen)); 39 | Navigation.registerComponent(LOGIN_SCREEN, () => WrappedComponent(LoginScreen)); 40 | Navigation.registerComponent(SINGLE_APP_SCREEN, () => WrappedComponent(SingleAppScreen)); 41 | Navigation.registerComponent(TAB1_SCREEN, () => WrappedComponent(Tab1Screen)); 42 | Navigation.registerComponent(TAB2_SCREEN, () => WrappedComponent(Tab2Screen)); 43 | console.info('All screens have been registered...'); 44 | } 45 | -------------------------------------------------------------------------------- /src/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "src" 3 | } 4 | -------------------------------------------------------------------------------- /src/redux/Provider/index.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | export { default as Provider } from './provider'; 4 | -------------------------------------------------------------------------------- /src/redux/Provider/provider.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import React, { PureComponent } from 'react'; 4 | import PropTypes from 'prop-types'; 5 | import { Provider } from 'react-redux'; 6 | import createStore from '../store'; 7 | 8 | let store; 9 | 10 | class AppStoreProvider extends PureComponent { 11 | getChildContext() { 12 | return { 13 | store, 14 | }; 15 | } 16 | 17 | static childContextTypes = { 18 | store: PropTypes.shape({}) 19 | }; 20 | 21 | render() { 22 | const { children } = this.props; 23 | 24 | store = store || createStore(); 25 | 26 | return ( 27 | 28 | {children} 29 | 30 | ); 31 | } 32 | } 33 | 34 | export default AppStoreProvider; 35 | -------------------------------------------------------------------------------- /src/redux/index.js: -------------------------------------------------------------------------------- 1 | export { Provider } from './Provider'; 2 | export * from './modules'; 3 | -------------------------------------------------------------------------------- /src/redux/modules/data/actions.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import { createAction } from 'redux-actions'; 4 | 5 | export const GET_FACEBOOK_DATA = 'data/GET_FACEBOOK_DATA'; 6 | export const GET_FACEBOOK_DATA_SUCCESS = 'data/GET_FACEBOOK_DATA_SUCCESS'; 7 | 8 | export const fetchDataActionCreators = { 9 | getFacebookUserData: createAction(GET_FACEBOOK_DATA), 10 | getFacebookUserDataSuccess: createAction(GET_FACEBOOK_DATA_SUCCESS), 11 | }; 12 | -------------------------------------------------------------------------------- /src/redux/modules/data/connectData.js: -------------------------------------------------------------------------------- 1 | import { connect } from 'react-redux'; 2 | import { fetchDataActionCreators } from './actions'; 3 | 4 | function mapStateToProps({ data }) { 5 | return { 6 | data 7 | }; 8 | } 9 | 10 | const mapDispatchToProps = fetchDataActionCreators; 11 | 12 | export function connectData(configMapStateToProps = mapStateToProps) { 13 | return connect( 14 | configMapStateToProps, 15 | mapDispatchToProps, 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /src/redux/modules/data/index.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | export { default as data } from './reducer'; 4 | export { connectData } from './connectData'; 5 | export { fetchDataActionCreators } from './actions'; 6 | export { default as dataSaga } from './saga'; 7 | -------------------------------------------------------------------------------- /src/redux/modules/data/reducer.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import { 4 | GET_FACEBOOK_DATA_SUCCESS 5 | } from './actions'; 6 | 7 | export const DEFAULT = {}; 8 | 9 | export default function data(state = DEFAULT, action = {}) { 10 | const { type, payload } = action; 11 | 12 | switch (type) { 13 | case GET_FACEBOOK_DATA_SUCCESS: { 14 | return { 15 | ...state, 16 | user: payload 17 | }; 18 | } 19 | default: 20 | return state; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/redux/modules/data/saga.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import { App_Service } from 'src/services'; 4 | 5 | import { 6 | take, 7 | put, 8 | call, 9 | fork, 10 | all 11 | } from 'redux-saga/effects'; 12 | 13 | import { 14 | GET_FACEBOOK_DATA, 15 | fetchDataActionCreators 16 | } from './actions'; 17 | 18 | export function* asyncGetFacebookUserData({ payload }) { 19 | 20 | const { facebookToken } = payload; 21 | 22 | // eslint-disable-next-line 23 | const url = `https://graph.facebook.com/v2.11/me?access_token=${facebookToken}&fields=id,name,email,picture{url}`; 24 | 25 | try { 26 | const response = yield call(App_Service, { url, method: 'GET' }); 27 | 28 | if (response.result === 'ok') { 29 | yield put(fetchDataActionCreators.getFacebookUserDataSuccess(response.data)); 30 | } 31 | } catch (e) { 32 | console.log(e); 33 | } 34 | } 35 | 36 | export function* watchGetFacebookUserData() { 37 | while (true) { 38 | const action = yield take(GET_FACEBOOK_DATA); 39 | yield* asyncGetFacebookUserData(action); 40 | } 41 | } 42 | 43 | export default function* () { 44 | yield all([ 45 | fork(watchGetFacebookUserData), 46 | ]); 47 | } 48 | -------------------------------------------------------------------------------- /src/redux/modules/index.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | export * from './data'; 4 | -------------------------------------------------------------------------------- /src/redux/store/index.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import store from './store'; 4 | 5 | export default store; 6 | -------------------------------------------------------------------------------- /src/redux/store/reducers.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import { persistCombineReducers } from 'redux-persist'; 4 | import storage from 'redux-persist/lib/storage'; 5 | 6 | import { 7 | data 8 | } from '../modules'; 9 | 10 | const config = { 11 | key: 'LIFTED_REDUX_STORE', 12 | storage 13 | }; 14 | 15 | const appReducer = persistCombineReducers(config, { 16 | data, 17 | }); 18 | 19 | export default function rootReducer(state, action) { 20 | return appReducer(state, action); 21 | } 22 | -------------------------------------------------------------------------------- /src/redux/store/sagas.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import { fork, all } from 'redux-saga/effects'; 4 | import { 5 | dataSaga 6 | } from '../modules'; 7 | 8 | export default function* rootSaga() { 9 | yield all([ 10 | fork(dataSaga) 11 | ]); 12 | } 13 | -------------------------------------------------------------------------------- /src/redux/store/store.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import { createStore, applyMiddleware, compose } from 'redux'; 4 | import thunk from 'redux-thunk'; 5 | import { compact } from 'lodash'; 6 | import { persistStore } from 'redux-persist'; 7 | import createSagaMiddleware from 'redux-saga'; 8 | import { createLogger } from 'redux-logger'; 9 | 10 | import { composeWithDevTools } from 'remote-redux-devtools'; 11 | 12 | import rootReducer from './reducers'; 13 | import sagas from './sagas'; 14 | 15 | export default function initializeStore() { 16 | const sagaMiddleware = createSagaMiddleware(); 17 | 18 | const middlewares = compact([ 19 | thunk.withExtraArgument(), 20 | sagaMiddleware, 21 | __DEV__ ? createLogger() : null 22 | ]); 23 | 24 | let debuggWrapper = data => data; 25 | if (__DEV__) { 26 | debuggWrapper = composeWithDevTools({ realtime: true, port: 8000 }); 27 | } 28 | 29 | const store = createStore( 30 | rootReducer, 31 | {}, 32 | debuggWrapper(compose(applyMiddleware(...middlewares))) 33 | ); 34 | 35 | persistStore( 36 | store, 37 | null, 38 | () => { 39 | store.getState(); 40 | } 41 | ); 42 | 43 | sagaMiddleware.run(sagas); 44 | 45 | return store; 46 | } 47 | -------------------------------------------------------------------------------- /src/screens/LoginScreen/LoginScreen.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import React, { PureComponent } from 'react'; 4 | import PropTypes from 'prop-types'; 5 | import { 6 | StyleSheet, 7 | View, 8 | Alert 9 | } from 'react-native'; 10 | import FontAwesome5 from 'react-native-vector-icons/FontAwesome5'; 11 | import { LoginManager, AccessToken } from 'react-native-fbsdk'; 12 | 13 | import { connectData } from 'src/redux'; 14 | import { pushSingleScreenApp, pushTabBasedApp } from 'src/navigation'; 15 | 16 | const styles = StyleSheet.create({ 17 | flex: { 18 | flex: 1, 19 | alignItems: 'center', 20 | justifyContent: 'center' 21 | }, 22 | button: { 23 | backgroundColor: '#039893' 24 | } 25 | }); 26 | 27 | class LoginScreen extends PureComponent { 28 | 29 | loginWithFacebook = () => { 30 | const { getFacebookUserData, screenType } = this.props; 31 | 32 | LoginManager 33 | .logInWithReadPermissions(['public_profile', 'email']) 34 | .then((result) => { 35 | if (result.isCancelled) { 36 | return Promise.reject('Facebook login cancelled.'); 37 | } 38 | return AccessToken.getCurrentAccessToken(); 39 | }) 40 | .then((data) => { 41 | if (data.accessToken) { 42 | getFacebookUserData({ facebookToken: data.accessToken }); 43 | if (screenType === 'Single') { 44 | pushSingleScreenApp(); 45 | } else { 46 | pushTabBasedApp(); 47 | } 48 | } else { 49 | Alert.alert('ReactNativeStarterKit', 'Failed to get facebook access token.'); 50 | } 51 | }) 52 | .catch(() => Alert.alert('ReactNativeStarterKit', 'Something went wrong.')); 53 | }; 54 | 55 | render() { 56 | return ( 57 | 58 | 64 | Login with Facebook 65 | 66 | 67 | ); 68 | } 69 | } 70 | 71 | LoginScreen.propTypes = { 72 | getFacebookUserData: PropTypes.func.isRequired, 73 | screenType: PropTypes.oneOf(['Single', 'Tab']).isRequired 74 | }; 75 | 76 | export default connectData()(LoginScreen); 77 | -------------------------------------------------------------------------------- /src/screens/SingleAppScreen/SingleAppScreen.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import React, { PureComponent } from 'react'; 4 | import PropTypes from 'prop-types'; 5 | import { 6 | StyleSheet, 7 | View, 8 | Text, 9 | Alert 10 | } from 'react-native'; 11 | import { Navigation } from 'react-native-navigation'; 12 | import { get } from 'lodash'; 13 | import Config from 'react-native-config'; 14 | 15 | import { pushTutorialScreen } from 'src/navigation'; 16 | import { connectData } from 'src/redux'; 17 | 18 | const styles = StyleSheet.create({ 19 | flex: { 20 | flex: 1, 21 | alignItems: 'center', 22 | justifyContent: 'center' 23 | } 24 | }); 25 | 26 | class SingleAppScreen extends PureComponent { 27 | 28 | constructor(props) { 29 | super(props); 30 | 31 | Navigation.events().bindComponent(this); 32 | } 33 | 34 | navigationButtonPressed({ buttonId }) { 35 | const { data } = this.props; 36 | 37 | switch (buttonId) { 38 | case 'nav_logout_btn': { 39 | pushTutorialScreen(); 40 | break; 41 | } 42 | case 'nav_user_btn': { 43 | Alert.alert(get(data, 'user.name', 'Unknown User')); 44 | break; 45 | } 46 | default: 47 | break; 48 | } 49 | } 50 | 51 | render() { 52 | return ( 53 | 54 | 55 | {Config.API_URL} 56 | 57 | 58 | ); 59 | } 60 | } 61 | 62 | SingleAppScreen.propTypes = { 63 | data: PropTypes.shape({}).isRequired 64 | }; 65 | 66 | export default connectData()(SingleAppScreen); 67 | -------------------------------------------------------------------------------- /src/screens/Tab1Screen/Tab1Screen.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import React, { PureComponent } from 'react'; 4 | import PropTypes from 'prop-types'; 5 | import { 6 | StyleSheet, 7 | View, 8 | Text, 9 | Alert 10 | } from 'react-native'; 11 | import { Navigation } from 'react-native-navigation'; 12 | import { get } from 'lodash'; 13 | 14 | import { pushTutorialScreen } from 'src/navigation'; 15 | import { connectData } from 'src/redux'; 16 | 17 | const styles = StyleSheet.create({ 18 | flex: { 19 | flex: 1, 20 | alignItems: 'center', 21 | justifyContent: 'center' 22 | } 23 | }); 24 | 25 | class Tab1Screen extends PureComponent { 26 | 27 | constructor(props) { 28 | super(props); 29 | 30 | Navigation.events().bindComponent(this); 31 | } 32 | 33 | navigationButtonPressed({ buttonId }) { 34 | const { data } = this.props; 35 | 36 | switch (buttonId) { 37 | case 'nav_logout_btn': { 38 | pushTutorialScreen(); 39 | break; 40 | } 41 | case 'nav_user_btn': { 42 | Alert.alert(get(data, 'user.name', 'Unknown User')); 43 | break; 44 | } 45 | default: 46 | break; 47 | } 48 | } 49 | 50 | render() { 51 | return ( 52 | 53 | 54 | Play top buttons! 55 | 56 | 57 | ); 58 | } 59 | } 60 | 61 | Tab1Screen.propTypes = { 62 | data: PropTypes.shape({}).isRequired 63 | }; 64 | 65 | export default connectData()(Tab1Screen); 66 | -------------------------------------------------------------------------------- /src/screens/Tab2Screen/Tab2Screen.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import React, { PureComponent } from 'react'; 4 | import PropTypes from 'prop-types'; 5 | import { 6 | StyleSheet, 7 | View, 8 | Text, 9 | Alert 10 | } from 'react-native'; 11 | import { Navigation } from 'react-native-navigation'; 12 | import { get } from 'lodash'; 13 | 14 | import { pushTutorialScreen } from 'src/navigation'; 15 | import { connectData } from 'src/redux'; 16 | 17 | const styles = StyleSheet.create({ 18 | flex: { 19 | flex: 1, 20 | alignItems: 'center', 21 | justifyContent: 'center' 22 | } 23 | }); 24 | 25 | class Tab2Screen extends PureComponent { 26 | 27 | constructor(props) { 28 | super(props); 29 | 30 | Navigation.events().bindComponent(this); 31 | } 32 | 33 | navigationButtonPressed({ buttonId }) { 34 | const { data } = this.props; 35 | 36 | switch (buttonId) { 37 | case 'nav_logout_btn': { 38 | pushTutorialScreen(); 39 | break; 40 | } 41 | case 'nav_user_btn': { 42 | Alert.alert(get(data, 'user.name', 'Unknown User')); 43 | break; 44 | } 45 | default: 46 | break; 47 | } 48 | } 49 | 50 | render() { 51 | return ( 52 | 53 | 54 | Play top buttons! 55 | 56 | 57 | ); 58 | } 59 | } 60 | 61 | Tab2Screen.propTypes = { 62 | data: PropTypes.shape({}).isRequired 63 | }; 64 | 65 | export default connectData()(Tab2Screen); 66 | -------------------------------------------------------------------------------- /src/screens/WelcomeScreen/WelcomeScreen.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import React, { PureComponent } from 'react'; 4 | import { 5 | StyleSheet, 6 | View, 7 | Image 8 | } from 'react-native'; 9 | import { Button } from 'react-native-elements'; 10 | import { Navigation } from 'react-native-navigation'; 11 | 12 | import { LOGIN_SCREEN } from 'src/navigation'; 13 | import { SFProDisplayMedium } from 'src/fonts'; 14 | 15 | const styles = StyleSheet.create({ 16 | flex: { 17 | flex: 1, 18 | alignItems: 'center', 19 | justifyContent: 'center' 20 | }, 21 | button: { 22 | backgroundColor: '#039893', 23 | width: 230, 24 | marginTop: 30, 25 | borderRadius: 25 26 | }, 27 | buttonTitle: { 28 | fontSize: 14, 29 | fontWeight: 'bold' 30 | }, 31 | logo: { 32 | width: 300, 33 | height: 120, 34 | resizeMode: 'contain' 35 | }, 36 | logoTitle: { 37 | marginTop: 10, 38 | fontSize: 16, 39 | fontWeight: '500' 40 | } 41 | }); 42 | 43 | class WelcomeScreen extends PureComponent { 44 | 45 | handleGetStartAction = (screenType) => { 46 | Navigation.push(this.props.componentId, { 47 | component: { 48 | name: LOGIN_SCREEN, 49 | passProps: { 50 | screenType 51 | }, 52 | options: { 53 | topBar: { 54 | title: { 55 | text: 'LOGIN' 56 | } 57 | } 58 | } 59 | } 60 | }); 61 | }; 62 | 63 | render() { 64 | return ( 65 | 66 | 70 | 71 | {'Welcome to RNN v2 Starter Kit!'} 72 | 73 |