├── .bundle └── config ├── .eslintrc.js ├── .gitignore ├── .prettierrc.js ├── .vscode └── settings.json ├── .watchmanconfig ├── .yarn └── releases │ └── yarn-3.6.4.cjs ├── .yarnrc.yml ├── App.tsx ├── Gemfile ├── README.md ├── __tests__ └── App.test.tsx ├── android ├── README.md ├── app │ ├── build.gradle │ ├── debug.keystore │ ├── proguard-rules.pro │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── opacitysample │ │ │ ├── MainActivity.kt │ │ │ └── MainApplication.kt │ │ └── res │ │ ├── drawable │ │ └── rn_edit_text_material.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── app.json ├── assets ├── backgrounds │ └── start.png ├── icons │ ├── chevron-left.png │ ├── chevron-right.png │ ├── error.png │ └── reddit-icon.png └── images │ └── logo.png ├── babel.config.js ├── index.js ├── ios ├── .xcode.env ├── Podfile ├── Podfile.lock ├── opacitySample.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ └── opacitySample.xcscheme ├── opacitySample.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── opacitySample │ ├── AppDelegate.h │ ├── AppDelegate.mm │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Info.plist │ ├── LaunchScreen.storyboard │ ├── PrivacyInfo.xcprivacy │ └── main.m └── opacitySampleTests │ ├── Info.plist │ └── opacitySampleTests.m ├── jest.config.js ├── metro.config.js ├── package.json ├── react-native.config.js ├── src ├── components │ └── BackButtonHeader.tsx ├── constants │ ├── api.ts │ └── index.ts ├── hooks │ └── store.ts ├── navigation │ └── index.tsx ├── screens │ ├── AccountDetails │ │ └── AccountDetailCard.tsx │ ├── Details │ │ ├── Details.tsx │ │ └── index.ts │ ├── Platforms │ │ ├── Platforms.tsx │ │ └── index.ts │ ├── Reddit │ │ ├── RedditLogin.tsx │ │ └── index.ts │ ├── Resources │ │ ├── Resources.tsx │ │ └── index.ts │ └── Start │ │ └── Start.tsx ├── state │ ├── reducer.ts │ └── selectors.ts ├── store.ts ├── types │ └── platforms.d.ts └── utils │ ├── helpers.ts │ └── mockData.ts ├── tsconfig.json └── yarn.lock /.bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native', 4 | }; 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | **/.xcode.env.local 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | *.hprof 33 | .cxx/ 34 | *.keystore 35 | !debug.keystore 36 | 37 | # node.js 38 | # 39 | node_modules/ 40 | npm-debug.log 41 | yarn-error.log 42 | .env 43 | # fastlane 44 | # 45 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 46 | # screenshots whenever they are needed. 47 | # For more information about the recommended setup visit: 48 | # https://docs.fastlane.tools/best-practices/source-control/ 49 | 50 | **/fastlane/report.xml 51 | **/fastlane/Preview.html 52 | **/fastlane/screenshots 53 | **/fastlane/test_output 54 | 55 | # Bundle artifact 56 | *.jsbundle 57 | 58 | # Ruby / CocoaPods 59 | **/Pods/ 60 | /vendor/bundle/ 61 | 62 | # Temporary files created by Metro to check the health of the file watcher 63 | .metro-health-check* 64 | 65 | # testing 66 | /coverage 67 | 68 | # Yarn 69 | .yarn/* 70 | !.yarn/patches 71 | !.yarn/plugins 72 | !.yarn/releases 73 | !.yarn/sdks 74 | !.yarn/versions 75 | .e -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "__bit_reference": "cpp", 4 | "__hash_table": "cpp", 5 | "__split_buffer": "cpp", 6 | "__tree": "cpp", 7 | "array": "cpp", 8 | "deque": "cpp", 9 | "hash_map": "cpp", 10 | "hash_set": "cpp", 11 | "initializer_list": "cpp", 12 | "ios": "cpp", 13 | "list": "cpp", 14 | "map": "cpp", 15 | "regex": "cpp", 16 | "set": "cpp", 17 | "span": "cpp", 18 | "string": "cpp", 19 | "string_view": "cpp", 20 | "unordered_map": "cpp", 21 | "unordered_set": "cpp", 22 | "vector": "cpp", 23 | "algorithm": "cpp", 24 | "__config": "cpp", 25 | "__locale": "cpp", 26 | "__node_handle": "cpp", 27 | "__threading_support": "cpp", 28 | "__verbose_abort": "cpp", 29 | "bitset": "cpp", 30 | "cctype": "cpp", 31 | "cfenv": "cpp", 32 | "charconv": "cpp", 33 | "cinttypes": "cpp", 34 | "clocale": "cpp", 35 | "cmath": "cpp", 36 | "complex": "cpp", 37 | "condition_variable": "cpp", 38 | "cstdarg": "cpp", 39 | "cstddef": "cpp", 40 | "cstdint": "cpp", 41 | "cstdio": "cpp", 42 | "cstdlib": "cpp", 43 | "cstring": "cpp", 44 | "ctime": "cpp", 45 | "cwchar": "cpp", 46 | "cwctype": "cpp", 47 | "execution": "cpp", 48 | "fstream": "cpp", 49 | "future": "cpp", 50 | "iomanip": "cpp", 51 | "iosfwd": "cpp", 52 | "iostream": "cpp", 53 | "istream": "cpp", 54 | "limits": "cpp", 55 | "locale": "cpp", 56 | "mutex": "cpp", 57 | "new": "cpp", 58 | "optional": "cpp", 59 | "ostream": "cpp", 60 | "queue": "cpp", 61 | "ratio": "cpp", 62 | "semaphore": "cpp", 63 | "shared_mutex": "cpp", 64 | "source_location": "cpp", 65 | "sstream": "cpp", 66 | "stack": "cpp", 67 | "stdexcept": "cpp", 68 | "streambuf": "cpp", 69 | "tuple": "cpp", 70 | "typeindex": "cpp", 71 | "typeinfo": "cpp", 72 | "variant": "cpp" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | 3 | yarnPath: .yarn/releases/yarn-3.6.4.cjs 4 | -------------------------------------------------------------------------------- /App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {Provider} from 'react-redux'; 3 | import {store} from './src/store'; 4 | import {Navigation} from './src/navigation'; 5 | 6 | const App = () => { 7 | return ( 8 | 9 | 10 | 11 | ); 12 | }; 13 | 14 | export default App; 15 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby ">= 2.6.10" 5 | 6 | # Exclude problematic versions of cocoapods and activesupport that causes build failures. 7 | gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' 8 | gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # opacity-rn-sample 2 | 3 | The Opacity Networks sample application written for React Native on iOS, using a MAC development environment. 4 | This is a [React Native](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli). 5 | Android support is still experimental at this stage. 6 | 7 | 8 | For additional reference please review our documentation: [https://docs.opacity.network/](https://docs.opacity.network/) 9 | 10 | For core sdk repositories: 11 | 12 | - React Native: [https://github.com/OpacityLabs/react-native-opacity](https://github.com/OpacityLabs/react-native-opacity) 13 | - iOS: [https://github.com/OpacityLabs/opacity-ios](https://github.com/OpacityLabs/opacity-ios) 14 | - Android: [https://github.com/OpacityLabs/opacity-android](https://github.com/OpacityLabs/opacity-android) 15 | - Flutter: [https://github.com/OpacityLabs/flutter-opacity-core](https://github.com/OpacityLabs/flutter-opacity-core) 16 | 17 | ## Setup and installation 18 | 19 | ### Set up a development environment 20 | 21 | 1. Install [Homebrew](https://brew.sh/) if necessary. 22 | 23 | 1. Follow directions in [the React Native documentation](https://reactnative.dev/docs/set-up-your-environment). 24 | The latest version of XCode installs the command-line tools and the latest iOS emulator for you automatically. 25 | 26 | 1. Install yarn. 27 | 28 | ```sh 29 | brew install yarn 30 | ``` 31 | 32 | 1. Install the [CocoaPods](https://cocoapods.org/) depndency manager. 33 | 34 | ```sh 35 | brew install cocoapods 36 | ``` 37 | 38 | ### Set up the application 39 | 40 | 1. Clone the github repository. 41 | 42 | ```sh 43 | git clone https://github.com/OpacityLabs/opacity-rn-sample.git 44 | cd opacity-rn-sample 45 | ``` 46 | 47 | 1. Install packages 48 | 49 | ```sh 50 | yarn install 51 | ``` 52 | 53 | 1. Update dependencies. 54 | Note that you need to redo this step when you pull a new version from GitHub. 55 | 56 | ```sh 57 | yarn pods 58 | ``` 59 | 60 | 1. Open **XCode**. 61 | 62 | 1. Compile (if needed) and start the application. 63 | 64 | ```sh 65 | yarn ios 66 | ``` 67 | 68 | Note that compilation takes a long time, especially the first one. 69 | Also, if you get a white iPhone screen, close the application and start it again. 70 | 71 | ### Run the application 72 | 73 | 1. You need an API key, get it from the [Opacity developer portal](https://app.opacity.network). 74 | 75 | 1. The sample application should open automatically. 76 | If it does not, scroll right in the emulator and in the second screen click **opacitySample**. 77 | 78 | 1. Paste the API key in the field and click **Next**. 79 | 80 | 1. Select the platform to search. 81 | For the purpsoe of this guide, select **GitHub**. 82 | 83 | 1. Click the resource **Profile** and log on to your GitHub account. 84 | 85 | 1. See that you can view your GitHub profile through Opacity. 86 | Unfortunately, it is harder to show in a demo that the protocol is working correctly, that the data is truly safe and verified. 87 | -------------------------------------------------------------------------------- /__tests__/App.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import 'react-native'; 6 | import React from 'react'; 7 | import App from '../App'; 8 | 9 | // Note: import explicitly to use the types shipped with jest. 10 | import {it} from '@jest/globals'; 11 | 12 | // Note: test renderer must be required after react-native. 13 | import renderer from 'react-test-renderer'; 14 | 15 | it('renders correctly', () => { 16 | renderer.create(); 17 | }); 18 | -------------------------------------------------------------------------------- /android/README.md: -------------------------------------------------------------------------------- 1 | # Android (experimental) 2 | 3 | There are some more prerequisites for running on Android. 4 | Note that this version is *experimental* and may or may not work. 5 | 6 | First add the necessary repos to download the dependencies. On your root `build.gradle` add: 7 | 8 | ``` 9 | allprojects { 10 | repositories { 11 | google() 12 | mavenCentral() 13 | maven { url "https://maven.mozilla.org/maven2/" } 14 | maven { url 'https://jitpack.io' } 15 | } 16 | } 17 | ``` 18 | 19 | On your apps `AndroidManifest.xml` add an activity: 20 | 21 | ```xml 22 | 25 | // Just above the closing tag of "application" 26 | 27 | ``` 28 | 29 | On your main activity you need to initialize the library (kotlin snippet): 30 | 31 | ```kotlin 32 | import android.os.Bundle // add this import 33 | import com.facebook.react.ReactActivity 34 | import com.facebook.react.ReactActivityDelegate 35 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled 36 | import com.facebook.react.defaults.DefaultReactActivityDelegate 37 | import com.opacitylabs.opacitycore.OpacityCore // add this import 38 | 39 | class MainActivity : ReactActivity() { 40 | override fun onCreate(savedInstanceState: Bundle?) { // add this method 41 | super.onCreate(savedInstanceState) 42 | OpacityCore.initialize(this) 43 | } 44 | // ... 45 | } 46 | ``` 47 | 48 | ## JS 49 | 50 | You need to make sure `react-native.config.js` is properly set up for code generation to work: 51 | 52 | ```js 53 | module.exports = { 54 | project: { 55 | android: { 56 | packageName: 'your.package.name', // must match your android apps package name, take a look into build.gradle 57 | }, 58 | }, 59 | }; 60 | ``` 61 | 62 | Once everything is setup you can call the init method on your JS: 63 | 64 | ```ts 65 | import { init } from '@opacity-labs/react-native-opacity'; 66 | 67 | // .. 68 | 69 | useEffect(() => { 70 | init('Your API key', false); 71 | }, []); 72 | } 73 | 74 | ``` 75 | 76 | Calling a resource: 77 | 78 | ```ts 79 | import {getResource} from '@opacity-labs/react-native-opacity'; 80 | 81 | // .. 82 | 83 | const handleGetResources = async (resource: Resource) => { 84 | const result = await getResource(alias); 85 | }; 86 | ``` 87 | 88 | A resource is referenced with an alias. Using the same developer API key you can run the following query to view the available platforms and their respective resources and resource aliases: 89 | 90 | ```ts 91 | // .. 92 | 93 | (async () => { 94 | const response = await fetch( 95 | 'https://api.opacity.network/platforms?all=true', 96 | { 97 | method: 'GET', 98 | headers: { 99 | 'Authorization-Provider': 'opacity', 100 | Authorization: `Bearer ${apiKey}`, 101 | 'Content-Type': 'application/json', 102 | }, 103 | }, 104 | ); 105 | 106 | if (!response.ok) { 107 | throw new Error('GET platforms failed'); 108 | } 109 | 110 | dispatch(setPlatforms(sortBy(await response.json(), 'name'))); 111 | })(); 112 | ``` 113 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "com.android.application" 2 | apply plugin: "org.jetbrains.kotlin.android" 3 | apply plugin: "com.facebook.react" 4 | 5 | /** 6 | * This is the configuration block to customize your React Native Android app. 7 | * By default you don't need to apply any configuration, just uncomment the lines you need. 8 | */ 9 | react { 10 | /* Folders */ 11 | // The root of your project, i.e. where "package.json" lives. Default is '../..' 12 | // root = file("../../") 13 | // The folder where the react-native NPM package is. Default is ../../node_modules/react-native 14 | // reactNativeDir = file("../../node_modules/react-native") 15 | // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen 16 | // codegenDir = file("../../node_modules/@react-native/codegen") 17 | // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js 18 | // cliFile = file("../../node_modules/react-native/cli.js") 19 | 20 | /* Variants */ 21 | // The list of variants to that are debuggable. For those we're going to 22 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'. 23 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. 24 | // debuggableVariants = ["liteDebug", "prodDebug"] 25 | 26 | /* Bundling */ 27 | // A list containing the node command and its flags. Default is just 'node'. 28 | // nodeExecutableAndArgs = ["node"] 29 | // 30 | // The command to run when bundling. By default is 'bundle' 31 | // bundleCommand = "ram-bundle" 32 | // 33 | // The path to the CLI configuration file. Default is empty. 34 | // bundleConfig = file(../rn-cli.config.js) 35 | // 36 | // The name of the generated asset file containing your JS bundle 37 | // bundleAssetName = "MyApplication.android.bundle" 38 | // 39 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' 40 | // entryFile = file("../js/MyApplication.android.js") 41 | // 42 | // A list of extra flags to pass to the 'bundle' commands. 43 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle 44 | // extraPackagerArgs = [] 45 | 46 | /* Hermes Commands */ 47 | // The hermes compiler command to run. By default it is 'hermesc' 48 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" 49 | // 50 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" 51 | // hermesFlags = ["-O", "-output-source-map"] 52 | 53 | /* Autolinking */ 54 | autolinkLibrariesWithApp() 55 | } 56 | 57 | /** 58 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode. 59 | */ 60 | def enableProguardInReleaseBuilds = false 61 | 62 | /** 63 | * The preferred build flavor of JavaScriptCore (JSC) 64 | * 65 | * For example, to use the international variant, you can use: 66 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` 67 | * 68 | * The international variant includes ICU i18n library and necessary data 69 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that 70 | * give correct results when using with locales other than en-US. Note that 71 | * this variant is about 6MiB larger per architecture than default. 72 | */ 73 | def jscFlavor = 'org.webkit:android-jsc:+' 74 | 75 | android { 76 | ndkVersion rootProject.ext.ndkVersion 77 | buildToolsVersion rootProject.ext.buildToolsVersion 78 | compileSdk rootProject.ext.compileSdkVersion 79 | 80 | namespace "com.opacitysample" 81 | defaultConfig { 82 | applicationId "com.opacitysample" 83 | minSdkVersion rootProject.ext.minSdkVersion 84 | targetSdkVersion rootProject.ext.targetSdkVersion 85 | versionCode 1 86 | versionName "1.0" 87 | } 88 | signingConfigs { 89 | debug { 90 | storeFile file('debug.keystore') 91 | storePassword 'android' 92 | keyAlias 'androiddebugkey' 93 | keyPassword 'android' 94 | } 95 | } 96 | buildTypes { 97 | debug { 98 | signingConfig signingConfigs.debug 99 | } 100 | release { 101 | // Caution! In production, you need to generate your own keystore file. 102 | // see https://reactnative.dev/docs/signed-apk-android. 103 | signingConfig signingConfigs.debug 104 | minifyEnabled enableProguardInReleaseBuilds 105 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 106 | } 107 | } 108 | } 109 | 110 | dependencies { 111 | // The version of react-native is set by the React Native Gradle Plugin 112 | implementation("com.facebook.react:react-android") 113 | 114 | if (hermesEnabled.toBoolean()) { 115 | implementation("com.facebook.react:hermes-android") 116 | } else { 117 | implementation jscFlavor 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/debug.keystore -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/opacitysample/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.opacitysample 2 | 3 | import android.os.Bundle 4 | import com.facebook.react.ReactActivity 5 | import com.facebook.react.ReactActivityDelegate 6 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled 7 | import com.facebook.react.defaults.DefaultReactActivityDelegate 8 | import com.opacitylabs.opacitycore.OpacityCore 9 | 10 | class MainActivity : ReactActivity() { 11 | 12 | override fun onCreate(savedInstanceState: Bundle?) { 13 | super.onCreate(savedInstanceState) 14 | } 15 | 16 | /** 17 | * Returns the name of the main component registered from JavaScript. This is used to schedule 18 | * rendering of the component. 19 | */ 20 | override fun getMainComponentName(): String = "opacitySample" 21 | 22 | /** 23 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] 24 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] 25 | */ 26 | override fun createReactActivityDelegate(): ReactActivityDelegate = 27 | DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) 28 | } 29 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/opacitysample/MainApplication.kt: -------------------------------------------------------------------------------- 1 | package com.opacitysample 2 | 3 | import android.app.Application 4 | import com.facebook.react.PackageList 5 | import com.facebook.react.ReactApplication 6 | import com.facebook.react.ReactHost 7 | import com.facebook.react.ReactNativeHost 8 | import com.facebook.react.ReactPackage 9 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load 10 | import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost 11 | import com.facebook.react.defaults.DefaultReactNativeHost 12 | import com.facebook.soloader.SoLoader 13 | 14 | class MainApplication : Application(), ReactApplication { 15 | 16 | override val reactNativeHost: ReactNativeHost = 17 | object : DefaultReactNativeHost(this) { 18 | override fun getPackages(): List = 19 | PackageList(this).packages.apply { 20 | // Packages that cannot be autolinked yet can be added manually here, for example: 21 | // add(MyReactNativePackage()) 22 | } 23 | 24 | override fun getJSMainModuleName(): String = "index" 25 | 26 | override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG 27 | 28 | override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED 29 | override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED 30 | } 31 | 32 | override val reactHost: ReactHost 33 | get() = getDefaultReactHost(applicationContext, reactNativeHost) 34 | 35 | override fun onCreate() { 36 | super.onCreate() 37 | SoLoader.init(this, false) 38 | if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { 39 | // If you opted-in for the New Architecture, we load the native entry point for this app. 40 | load() 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/rn_edit_text_material.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 22 | 23 | 24 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | opacitySample 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext { 3 | buildToolsVersion = "34.0.0" 4 | minSdkVersion = 24 5 | compileSdkVersion = 35 6 | targetSdkVersion = 34 7 | ndkVersion = "26.1.10909125" 8 | kotlinVersion = "1.9.24" 9 | } 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | dependencies { 15 | classpath("com.android.tools.build:gradle") 16 | classpath("com.facebook.react:react-native-gradle-plugin") 17 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") 18 | } 19 | allprojects { 20 | repositories { 21 | google() 22 | mavenCentral() 23 | maven { url "https://maven.mozilla.org/maven2/" } 24 | maven { url 'https://jitpack.io' } 25 | } 26 | } 27 | } 28 | 29 | apply plugin: "com.facebook.react.rootproject" 30 | -------------------------------------------------------------------------------- /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: -Xmx512m -XX:MaxMetaspaceSize=256m 13 | org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m 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 | # AndroidX package structure to make it clearer which packages are bundled with the 21 | # Android operating system, and which are packaged with your app's APK 22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 23 | android.useAndroidX=true 24 | 25 | # Use this property to specify which architecture you want to build. 26 | # You can also override it from the CLI using 27 | # ./gradlew -PreactNativeArchitectures=x86_64 28 | reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 29 | 30 | # Use this property to enable support to the new architecture. 31 | # This will allow you to use TurboModules and the Fabric render in 32 | # your application. You should enable this flag either if you want 33 | # to write custom TurboModules/Fabric components OR use libraries that 34 | # are providing them. 35 | newArchEnabled=true 36 | 37 | # Use this property to enable or disable the Hermes JS engine. 38 | # If set to false, you will be using JSC instead. 39 | hermesEnabled=true 40 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /android/gradlew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright © 2015-2021 the original authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | # 21 | # Gradle start up script for POSIX generated by Gradle. 22 | # 23 | # Important for running: 24 | # 25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 26 | # noncompliant, but you have some other compliant shell such as ksh or 27 | # bash, then to run this script, type that shell name before the whole 28 | # command line, like: 29 | # 30 | # ksh Gradle 31 | # 32 | # Busybox and similar reduced shells will NOT work, because this script 33 | # requires all of these POSIX shell features: 34 | # * functions; 35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 37 | # * compound commands having a testable exit status, especially «case»; 38 | # * various built-in commands including «command», «set», and «ulimit». 39 | # 40 | # Important for patching: 41 | # 42 | # (2) This script targets any POSIX shell, so it avoids extensions provided 43 | # by Bash, Ksh, etc; in particular arrays are avoided. 44 | # 45 | # The "traditional" practice of packing multiple parameters into a 46 | # space-separated string is a well documented source of bugs and security 47 | # problems, so this is (mostly) avoided, by progressively accumulating 48 | # options in "$@", and eventually passing that to Java. 49 | # 50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 52 | # see the in-line comments for details. 53 | # 54 | # There are tweaks for specific operating systems such as AIX, CygWin, 55 | # Darwin, MinGW, and NonStop. 56 | # 57 | # (3) This script is generated from the Groovy template 58 | # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 59 | # within the Gradle project. 60 | # 61 | # You can find Gradle at https://github.com/gradle/gradle/. 62 | # 63 | ############################################################################## 64 | 65 | # Attempt to set APP_HOME 66 | 67 | # Resolve links: $0 may be a link 68 | app_path=$0 69 | 70 | # Need this for daisy-chained symlinks. 71 | while 72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 73 | [ -h "$app_path" ] 74 | do 75 | ls=$( ls -ld "$app_path" ) 76 | link=${ls#*' -> '} 77 | case $link in #( 78 | /*) app_path=$link ;; #( 79 | *) app_path=$APP_HOME$link ;; 80 | esac 81 | done 82 | 83 | # This is normally unused 84 | # shellcheck disable=SC2034 85 | APP_BASE_NAME=${0##*/} 86 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) 87 | APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit 88 | 89 | # Use the maximum available, or set MAX_FD != -1 to use that value. 90 | MAX_FD=maximum 91 | 92 | warn () { 93 | echo "$*" 94 | } >&2 95 | 96 | die () { 97 | echo 98 | echo "$*" 99 | echo 100 | exit 1 101 | } >&2 102 | 103 | # OS specific support (must be 'true' or 'false'). 104 | cygwin=false 105 | msys=false 106 | darwin=false 107 | nonstop=false 108 | case "$( uname )" in #( 109 | CYGWIN* ) cygwin=true ;; #( 110 | Darwin* ) darwin=true ;; #( 111 | MSYS* | MINGW* ) msys=true ;; #( 112 | NONSTOP* ) nonstop=true ;; 113 | esac 114 | 115 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 116 | 117 | 118 | # Determine the Java command to use to start the JVM. 119 | if [ -n "$JAVA_HOME" ] ; then 120 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 121 | # IBM's JDK on AIX uses strange locations for the executables 122 | JAVACMD=$JAVA_HOME/jre/sh/java 123 | else 124 | JAVACMD=$JAVA_HOME/bin/java 125 | fi 126 | if [ ! -x "$JAVACMD" ] ; then 127 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 128 | 129 | Please set the JAVA_HOME variable in your environment to match the 130 | location of your Java installation." 131 | fi 132 | else 133 | JAVACMD=java 134 | if ! command -v java >/dev/null 2>&1 135 | then 136 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 137 | 138 | Please set the JAVA_HOME variable in your environment to match the 139 | location of your Java installation." 140 | fi 141 | fi 142 | 143 | # Increase the maximum file descriptors if we can. 144 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 145 | case $MAX_FD in #( 146 | max*) 147 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. 148 | # shellcheck disable=SC2039,SC3045 149 | MAX_FD=$( ulimit -H -n ) || 150 | warn "Could not query maximum file descriptor limit" 151 | esac 152 | case $MAX_FD in #( 153 | '' | soft) :;; #( 154 | *) 155 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. 156 | # shellcheck disable=SC2039,SC3045 157 | ulimit -n "$MAX_FD" || 158 | warn "Could not set maximum file descriptor limit to $MAX_FD" 159 | esac 160 | fi 161 | 162 | # Collect all arguments for the java command, stacking in reverse order: 163 | # * args from the command line 164 | # * the main class name 165 | # * -classpath 166 | # * -D...appname settings 167 | # * --module-path (only if needed) 168 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 169 | 170 | # For Cygwin or MSYS, switch paths to Windows format before running java 171 | if "$cygwin" || "$msys" ; then 172 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 173 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 174 | 175 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 176 | 177 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 178 | for arg do 179 | if 180 | case $arg in #( 181 | -*) false ;; # don't mess with options #( 182 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 183 | [ -e "$t" ] ;; #( 184 | *) false ;; 185 | esac 186 | then 187 | arg=$( cygpath --path --ignore --mixed "$arg" ) 188 | fi 189 | # Roll the args list around exactly as many times as the number of 190 | # args, so each arg winds up back in the position where it started, but 191 | # possibly modified. 192 | # 193 | # NB: a `for` loop captures its iteration list before it begins, so 194 | # changing the positional parameters here affects neither the number of 195 | # iterations, nor the values presented in `arg`. 196 | shift # remove old arg 197 | set -- "$@" "$arg" # push replacement arg 198 | done 199 | fi 200 | 201 | 202 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 203 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 204 | 205 | # Collect all arguments for the java command: 206 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, 207 | # and any embedded shellness will be escaped. 208 | # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be 209 | # treated as '${Hostname}' itself on the command line. 210 | 211 | set -- \ 212 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 213 | -classpath "$CLASSPATH" \ 214 | org.gradle.wrapper.GradleWrapperMain \ 215 | "$@" 216 | 217 | # Stop when "xargs" is not available. 218 | if ! command -v xargs >/dev/null 2>&1 219 | then 220 | die "xargs is not available" 221 | fi 222 | 223 | # Use "xargs" to parse quoted args. 224 | # 225 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 226 | # 227 | # In Bash we could simply go: 228 | # 229 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 230 | # set -- "${ARGS[@]}" "$@" 231 | # 232 | # but POSIX shell has neither arrays nor command substitution, so instead we 233 | # post-process each arg (as a line of input to sed) to backslash-escape any 234 | # character that might be a shell metacharacter, then use eval to reverse 235 | # that process (while maintaining the separation between arguments), and wrap 236 | # the whole thing up as a single "set" statement. 237 | # 238 | # This will of course break if any of these variables contains a newline or 239 | # an unmatched quote. 240 | # 241 | 242 | eval "set -- $( 243 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 244 | xargs -n1 | 245 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 246 | tr '\n' ' ' 247 | )" '"$@"' 248 | 249 | exec "$JAVACMD" "$@" 250 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%"=="" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%"=="" set DIRNAME=. 29 | @rem This is normally unused 30 | set APP_BASE_NAME=%~n0 31 | set APP_HOME=%DIRNAME% 32 | 33 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 34 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 35 | 36 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 37 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 38 | 39 | @rem Find java.exe 40 | if defined JAVA_HOME goto findJavaFromJavaHome 41 | 42 | set JAVA_EXE=java.exe 43 | %JAVA_EXE% -version >NUL 2>&1 44 | if %ERRORLEVEL% equ 0 goto execute 45 | 46 | echo. 1>&2 47 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 48 | echo. 1>&2 49 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 50 | echo location of your Java installation. 1>&2 51 | 52 | goto fail 53 | 54 | :findJavaFromJavaHome 55 | set JAVA_HOME=%JAVA_HOME:"=% 56 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 57 | 58 | if exist "%JAVA_EXE%" goto execute 59 | 60 | echo. 1>&2 61 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 62 | echo. 1>&2 63 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 64 | echo location of your Java installation. 1>&2 65 | 66 | goto fail 67 | 68 | :execute 69 | @rem Setup the command line 70 | 71 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 72 | 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 %* 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if %ERRORLEVEL% equ 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 | set EXIT_CODE=%ERRORLEVEL% 85 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 86 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 87 | exit /b %EXIT_CODE% 88 | 89 | :mainEnd 90 | if "%OS%"=="Windows_NT" endlocal 91 | 92 | :omega 93 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } 2 | plugins { id("com.facebook.react.settings") } 3 | extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } 4 | rootProject.name = 'opacitySample' 5 | include ':app' 6 | includeBuild('../node_modules/@react-native/gradle-plugin') 7 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "opacitySample", 3 | "displayName": "opacitySample" 4 | } 5 | -------------------------------------------------------------------------------- /assets/backgrounds/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/assets/backgrounds/start.png -------------------------------------------------------------------------------- /assets/icons/chevron-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/assets/icons/chevron-left.png -------------------------------------------------------------------------------- /assets/icons/chevron-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/assets/icons/chevron-right.png -------------------------------------------------------------------------------- /assets/icons/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/assets/icons/error.png -------------------------------------------------------------------------------- /assets/icons/reddit-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/assets/icons/reddit-icon.png -------------------------------------------------------------------------------- /assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpacityLabs/opacity-rn-sample/3392ab5afcabd4eae7bd0581b59d4997a8e4332c/assets/images/logo.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:@react-native/babel-preset'], 3 | plugins: [ 4 | ['module:react-native-dotenv'] 5 | ] 6 | }; 7 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import {AppRegistry, LogBox} from 'react-native'; 6 | import App from './App'; 7 | import {name as appName} from './app.json'; 8 | 9 | AppRegistry.registerComponent(appName, () => App); 10 | 11 | LogBox.ignoreLogs([ 12 | 'A props object containing a "key" prop is being spread into JSX:', 13 | 'JSONValueNode: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.', 14 | 'JSONArrow: Support', 15 | ]); 16 | -------------------------------------------------------------------------------- /ios/.xcode.env: -------------------------------------------------------------------------------- 1 | # This `.xcode.env` file is versioned and is used to source the environment 2 | # used when running script phases inside Xcode. 3 | # To customize your local environment, you can create an `.xcode.env.local` 4 | # file that is not versioned. 5 | 6 | # NODE_BINARY variable contains the PATH to the node executable. 7 | # 8 | # Customize the NODE_BINARY variable here. 9 | # For example, to use nvm with brew, add the following line 10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use 11 | export NODE_BINARY=$(command -v node) 12 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | ENV['RCT_NEW_ARCH_ENABLED'] = '1' 2 | 3 | # Resolve react_native_pods.rb with node to allow for hoisting 4 | require Pod::Executable.execute_command('node', ['-p', 5 | 'require.resolve( 6 | "react-native/scripts/react_native_pods.rb", 7 | {paths: [process.argv[1]]}, 8 | )', __dir__]).strip 9 | 10 | platform :ios, min_ios_version_supported 11 | prepare_react_native_project! 12 | 13 | linkage = ENV['USE_FRAMEWORKS'] 14 | if linkage != nil 15 | Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green 16 | use_frameworks! :linkage => linkage.to_sym 17 | end 18 | 19 | target 'opacitySample' do 20 | config = use_native_modules! 21 | 22 | use_react_native!( 23 | :path => config[:reactNativePath], 24 | # An absolute path to your application root. 25 | :app_path => "#{Pod::Config.instance.installation_root}/.." 26 | ) 27 | 28 | target 'opacitySampleTests' do 29 | inherit! :complete 30 | # Pods for testing 31 | end 32 | 33 | post_install do |installer| 34 | # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 35 | react_native_post_install( 36 | installer, 37 | config[:reactNativePath], 38 | :mac_catalyst_enabled => false, 39 | # :ccache_enabled => true 40 | ) 41 | end 42 | end 43 | -------------------------------------------------------------------------------- /ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - boost (1.84.0) 3 | - DoubleConversion (1.1.6) 4 | - FBLazyVector (0.76.6) 5 | - fmt (9.1.0) 6 | - glog (0.3.5) 7 | - hermes-engine (0.76.6): 8 | - hermes-engine/Pre-built (= 0.76.6) 9 | - hermes-engine/Pre-built (0.76.6) 10 | - OpacityCore (6.4.0) 11 | - RCT-Folly (2024.01.01.00): 12 | - boost 13 | - DoubleConversion 14 | - fmt (= 9.1.0) 15 | - glog 16 | - RCT-Folly/Default (= 2024.01.01.00) 17 | - RCT-Folly/Default (2024.01.01.00): 18 | - boost 19 | - DoubleConversion 20 | - fmt (= 9.1.0) 21 | - glog 22 | - RCT-Folly/Fabric (2024.01.01.00): 23 | - boost 24 | - DoubleConversion 25 | - fmt (= 9.1.0) 26 | - glog 27 | - RCTDeprecation (0.76.6) 28 | - RCTRequired (0.76.6) 29 | - RCTTypeSafety (0.76.6): 30 | - FBLazyVector (= 0.76.6) 31 | - RCTRequired (= 0.76.6) 32 | - React-Core (= 0.76.6) 33 | - React (0.76.6): 34 | - React-Core (= 0.76.6) 35 | - React-Core/DevSupport (= 0.76.6) 36 | - React-Core/RCTWebSocket (= 0.76.6) 37 | - React-RCTActionSheet (= 0.76.6) 38 | - React-RCTAnimation (= 0.76.6) 39 | - React-RCTBlob (= 0.76.6) 40 | - React-RCTImage (= 0.76.6) 41 | - React-RCTLinking (= 0.76.6) 42 | - React-RCTNetwork (= 0.76.6) 43 | - React-RCTSettings (= 0.76.6) 44 | - React-RCTText (= 0.76.6) 45 | - React-RCTVibration (= 0.76.6) 46 | - React-callinvoker (0.76.6) 47 | - React-Core (0.76.6): 48 | - glog 49 | - hermes-engine 50 | - RCT-Folly (= 2024.01.01.00) 51 | - RCTDeprecation 52 | - React-Core/Default (= 0.76.6) 53 | - React-cxxreact 54 | - React-featureflags 55 | - React-hermes 56 | - React-jsi 57 | - React-jsiexecutor 58 | - React-jsinspector 59 | - React-perflogger 60 | - React-runtimescheduler 61 | - React-utils 62 | - SocketRocket (= 0.7.1) 63 | - Yoga 64 | - React-Core/CoreModulesHeaders (0.76.6): 65 | - glog 66 | - hermes-engine 67 | - RCT-Folly (= 2024.01.01.00) 68 | - RCTDeprecation 69 | - React-Core/Default 70 | - React-cxxreact 71 | - React-featureflags 72 | - React-hermes 73 | - React-jsi 74 | - React-jsiexecutor 75 | - React-jsinspector 76 | - React-perflogger 77 | - React-runtimescheduler 78 | - React-utils 79 | - SocketRocket (= 0.7.1) 80 | - Yoga 81 | - React-Core/Default (0.76.6): 82 | - glog 83 | - hermes-engine 84 | - RCT-Folly (= 2024.01.01.00) 85 | - RCTDeprecation 86 | - React-cxxreact 87 | - React-featureflags 88 | - React-hermes 89 | - React-jsi 90 | - React-jsiexecutor 91 | - React-jsinspector 92 | - React-perflogger 93 | - React-runtimescheduler 94 | - React-utils 95 | - SocketRocket (= 0.7.1) 96 | - Yoga 97 | - React-Core/DevSupport (0.76.6): 98 | - glog 99 | - hermes-engine 100 | - RCT-Folly (= 2024.01.01.00) 101 | - RCTDeprecation 102 | - React-Core/Default (= 0.76.6) 103 | - React-Core/RCTWebSocket (= 0.76.6) 104 | - React-cxxreact 105 | - React-featureflags 106 | - React-hermes 107 | - React-jsi 108 | - React-jsiexecutor 109 | - React-jsinspector 110 | - React-perflogger 111 | - React-runtimescheduler 112 | - React-utils 113 | - SocketRocket (= 0.7.1) 114 | - Yoga 115 | - React-Core/RCTActionSheetHeaders (0.76.6): 116 | - glog 117 | - hermes-engine 118 | - RCT-Folly (= 2024.01.01.00) 119 | - RCTDeprecation 120 | - React-Core/Default 121 | - React-cxxreact 122 | - React-featureflags 123 | - React-hermes 124 | - React-jsi 125 | - React-jsiexecutor 126 | - React-jsinspector 127 | - React-perflogger 128 | - React-runtimescheduler 129 | - React-utils 130 | - SocketRocket (= 0.7.1) 131 | - Yoga 132 | - React-Core/RCTAnimationHeaders (0.76.6): 133 | - glog 134 | - hermes-engine 135 | - RCT-Folly (= 2024.01.01.00) 136 | - RCTDeprecation 137 | - React-Core/Default 138 | - React-cxxreact 139 | - React-featureflags 140 | - React-hermes 141 | - React-jsi 142 | - React-jsiexecutor 143 | - React-jsinspector 144 | - React-perflogger 145 | - React-runtimescheduler 146 | - React-utils 147 | - SocketRocket (= 0.7.1) 148 | - Yoga 149 | - React-Core/RCTBlobHeaders (0.76.6): 150 | - glog 151 | - hermes-engine 152 | - RCT-Folly (= 2024.01.01.00) 153 | - RCTDeprecation 154 | - React-Core/Default 155 | - React-cxxreact 156 | - React-featureflags 157 | - React-hermes 158 | - React-jsi 159 | - React-jsiexecutor 160 | - React-jsinspector 161 | - React-perflogger 162 | - React-runtimescheduler 163 | - React-utils 164 | - SocketRocket (= 0.7.1) 165 | - Yoga 166 | - React-Core/RCTImageHeaders (0.76.6): 167 | - glog 168 | - hermes-engine 169 | - RCT-Folly (= 2024.01.01.00) 170 | - RCTDeprecation 171 | - React-Core/Default 172 | - React-cxxreact 173 | - React-featureflags 174 | - React-hermes 175 | - React-jsi 176 | - React-jsiexecutor 177 | - React-jsinspector 178 | - React-perflogger 179 | - React-runtimescheduler 180 | - React-utils 181 | - SocketRocket (= 0.7.1) 182 | - Yoga 183 | - React-Core/RCTLinkingHeaders (0.76.6): 184 | - glog 185 | - hermes-engine 186 | - RCT-Folly (= 2024.01.01.00) 187 | - RCTDeprecation 188 | - React-Core/Default 189 | - React-cxxreact 190 | - React-featureflags 191 | - React-hermes 192 | - React-jsi 193 | - React-jsiexecutor 194 | - React-jsinspector 195 | - React-perflogger 196 | - React-runtimescheduler 197 | - React-utils 198 | - SocketRocket (= 0.7.1) 199 | - Yoga 200 | - React-Core/RCTNetworkHeaders (0.76.6): 201 | - glog 202 | - hermes-engine 203 | - RCT-Folly (= 2024.01.01.00) 204 | - RCTDeprecation 205 | - React-Core/Default 206 | - React-cxxreact 207 | - React-featureflags 208 | - React-hermes 209 | - React-jsi 210 | - React-jsiexecutor 211 | - React-jsinspector 212 | - React-perflogger 213 | - React-runtimescheduler 214 | - React-utils 215 | - SocketRocket (= 0.7.1) 216 | - Yoga 217 | - React-Core/RCTSettingsHeaders (0.76.6): 218 | - glog 219 | - hermes-engine 220 | - RCT-Folly (= 2024.01.01.00) 221 | - RCTDeprecation 222 | - React-Core/Default 223 | - React-cxxreact 224 | - React-featureflags 225 | - React-hermes 226 | - React-jsi 227 | - React-jsiexecutor 228 | - React-jsinspector 229 | - React-perflogger 230 | - React-runtimescheduler 231 | - React-utils 232 | - SocketRocket (= 0.7.1) 233 | - Yoga 234 | - React-Core/RCTTextHeaders (0.76.6): 235 | - glog 236 | - hermes-engine 237 | - RCT-Folly (= 2024.01.01.00) 238 | - RCTDeprecation 239 | - React-Core/Default 240 | - React-cxxreact 241 | - React-featureflags 242 | - React-hermes 243 | - React-jsi 244 | - React-jsiexecutor 245 | - React-jsinspector 246 | - React-perflogger 247 | - React-runtimescheduler 248 | - React-utils 249 | - SocketRocket (= 0.7.1) 250 | - Yoga 251 | - React-Core/RCTVibrationHeaders (0.76.6): 252 | - glog 253 | - hermes-engine 254 | - RCT-Folly (= 2024.01.01.00) 255 | - RCTDeprecation 256 | - React-Core/Default 257 | - React-cxxreact 258 | - React-featureflags 259 | - React-hermes 260 | - React-jsi 261 | - React-jsiexecutor 262 | - React-jsinspector 263 | - React-perflogger 264 | - React-runtimescheduler 265 | - React-utils 266 | - SocketRocket (= 0.7.1) 267 | - Yoga 268 | - React-Core/RCTWebSocket (0.76.6): 269 | - glog 270 | - hermes-engine 271 | - RCT-Folly (= 2024.01.01.00) 272 | - RCTDeprecation 273 | - React-Core/Default (= 0.76.6) 274 | - React-cxxreact 275 | - React-featureflags 276 | - React-hermes 277 | - React-jsi 278 | - React-jsiexecutor 279 | - React-jsinspector 280 | - React-perflogger 281 | - React-runtimescheduler 282 | - React-utils 283 | - SocketRocket (= 0.7.1) 284 | - Yoga 285 | - React-CoreModules (0.76.6): 286 | - DoubleConversion 287 | - fmt (= 9.1.0) 288 | - RCT-Folly (= 2024.01.01.00) 289 | - RCTTypeSafety (= 0.76.6) 290 | - React-Core/CoreModulesHeaders (= 0.76.6) 291 | - React-jsi (= 0.76.6) 292 | - React-jsinspector 293 | - React-NativeModulesApple 294 | - React-RCTBlob 295 | - React-RCTImage (= 0.76.6) 296 | - ReactCodegen 297 | - ReactCommon 298 | - SocketRocket (= 0.7.1) 299 | - React-cxxreact (0.76.6): 300 | - boost 301 | - DoubleConversion 302 | - fmt (= 9.1.0) 303 | - glog 304 | - hermes-engine 305 | - RCT-Folly (= 2024.01.01.00) 306 | - React-callinvoker (= 0.76.6) 307 | - React-debug (= 0.76.6) 308 | - React-jsi (= 0.76.6) 309 | - React-jsinspector 310 | - React-logger (= 0.76.6) 311 | - React-perflogger (= 0.76.6) 312 | - React-runtimeexecutor (= 0.76.6) 313 | - React-timing (= 0.76.6) 314 | - React-debug (0.76.6) 315 | - React-defaultsnativemodule (0.76.6): 316 | - DoubleConversion 317 | - glog 318 | - hermes-engine 319 | - RCT-Folly (= 2024.01.01.00) 320 | - RCTRequired 321 | - RCTTypeSafety 322 | - React-Core 323 | - React-debug 324 | - React-domnativemodule 325 | - React-Fabric 326 | - React-featureflags 327 | - React-featureflagsnativemodule 328 | - React-graphics 329 | - React-idlecallbacksnativemodule 330 | - React-ImageManager 331 | - React-microtasksnativemodule 332 | - React-NativeModulesApple 333 | - React-RCTFabric 334 | - React-rendererdebug 335 | - React-utils 336 | - ReactCodegen 337 | - ReactCommon/turbomodule/bridging 338 | - ReactCommon/turbomodule/core 339 | - Yoga 340 | - React-domnativemodule (0.76.6): 341 | - DoubleConversion 342 | - glog 343 | - hermes-engine 344 | - RCT-Folly (= 2024.01.01.00) 345 | - RCTRequired 346 | - RCTTypeSafety 347 | - React-Core 348 | - React-debug 349 | - React-Fabric 350 | - React-FabricComponents 351 | - React-featureflags 352 | - React-graphics 353 | - React-ImageManager 354 | - React-NativeModulesApple 355 | - React-RCTFabric 356 | - React-rendererdebug 357 | - React-utils 358 | - ReactCodegen 359 | - ReactCommon/turbomodule/bridging 360 | - ReactCommon/turbomodule/core 361 | - Yoga 362 | - React-Fabric (0.76.6): 363 | - DoubleConversion 364 | - fmt (= 9.1.0) 365 | - glog 366 | - hermes-engine 367 | - RCT-Folly/Fabric (= 2024.01.01.00) 368 | - RCTRequired 369 | - RCTTypeSafety 370 | - React-Core 371 | - React-cxxreact 372 | - React-debug 373 | - React-Fabric/animations (= 0.76.6) 374 | - React-Fabric/attributedstring (= 0.76.6) 375 | - React-Fabric/componentregistry (= 0.76.6) 376 | - React-Fabric/componentregistrynative (= 0.76.6) 377 | - React-Fabric/components (= 0.76.6) 378 | - React-Fabric/core (= 0.76.6) 379 | - React-Fabric/dom (= 0.76.6) 380 | - React-Fabric/imagemanager (= 0.76.6) 381 | - React-Fabric/leakchecker (= 0.76.6) 382 | - React-Fabric/mounting (= 0.76.6) 383 | - React-Fabric/observers (= 0.76.6) 384 | - React-Fabric/scheduler (= 0.76.6) 385 | - React-Fabric/telemetry (= 0.76.6) 386 | - React-Fabric/templateprocessor (= 0.76.6) 387 | - React-Fabric/uimanager (= 0.76.6) 388 | - React-featureflags 389 | - React-graphics 390 | - React-jsi 391 | - React-jsiexecutor 392 | - React-logger 393 | - React-rendererdebug 394 | - React-runtimescheduler 395 | - React-utils 396 | - ReactCommon/turbomodule/core 397 | - React-Fabric/animations (0.76.6): 398 | - DoubleConversion 399 | - fmt (= 9.1.0) 400 | - glog 401 | - hermes-engine 402 | - RCT-Folly/Fabric (= 2024.01.01.00) 403 | - RCTRequired 404 | - RCTTypeSafety 405 | - React-Core 406 | - React-cxxreact 407 | - React-debug 408 | - React-featureflags 409 | - React-graphics 410 | - React-jsi 411 | - React-jsiexecutor 412 | - React-logger 413 | - React-rendererdebug 414 | - React-runtimescheduler 415 | - React-utils 416 | - ReactCommon/turbomodule/core 417 | - React-Fabric/attributedstring (0.76.6): 418 | - DoubleConversion 419 | - fmt (= 9.1.0) 420 | - glog 421 | - hermes-engine 422 | - RCT-Folly/Fabric (= 2024.01.01.00) 423 | - RCTRequired 424 | - RCTTypeSafety 425 | - React-Core 426 | - React-cxxreact 427 | - React-debug 428 | - React-featureflags 429 | - React-graphics 430 | - React-jsi 431 | - React-jsiexecutor 432 | - React-logger 433 | - React-rendererdebug 434 | - React-runtimescheduler 435 | - React-utils 436 | - ReactCommon/turbomodule/core 437 | - React-Fabric/componentregistry (0.76.6): 438 | - DoubleConversion 439 | - fmt (= 9.1.0) 440 | - glog 441 | - hermes-engine 442 | - RCT-Folly/Fabric (= 2024.01.01.00) 443 | - RCTRequired 444 | - RCTTypeSafety 445 | - React-Core 446 | - React-cxxreact 447 | - React-debug 448 | - React-featureflags 449 | - React-graphics 450 | - React-jsi 451 | - React-jsiexecutor 452 | - React-logger 453 | - React-rendererdebug 454 | - React-runtimescheduler 455 | - React-utils 456 | - ReactCommon/turbomodule/core 457 | - React-Fabric/componentregistrynative (0.76.6): 458 | - DoubleConversion 459 | - fmt (= 9.1.0) 460 | - glog 461 | - hermes-engine 462 | - RCT-Folly/Fabric (= 2024.01.01.00) 463 | - RCTRequired 464 | - RCTTypeSafety 465 | - React-Core 466 | - React-cxxreact 467 | - React-debug 468 | - React-featureflags 469 | - React-graphics 470 | - React-jsi 471 | - React-jsiexecutor 472 | - React-logger 473 | - React-rendererdebug 474 | - React-runtimescheduler 475 | - React-utils 476 | - ReactCommon/turbomodule/core 477 | - React-Fabric/components (0.76.6): 478 | - DoubleConversion 479 | - fmt (= 9.1.0) 480 | - glog 481 | - hermes-engine 482 | - RCT-Folly/Fabric (= 2024.01.01.00) 483 | - RCTRequired 484 | - RCTTypeSafety 485 | - React-Core 486 | - React-cxxreact 487 | - React-debug 488 | - React-Fabric/components/legacyviewmanagerinterop (= 0.76.6) 489 | - React-Fabric/components/root (= 0.76.6) 490 | - React-Fabric/components/view (= 0.76.6) 491 | - React-featureflags 492 | - React-graphics 493 | - React-jsi 494 | - React-jsiexecutor 495 | - React-logger 496 | - React-rendererdebug 497 | - React-runtimescheduler 498 | - React-utils 499 | - ReactCommon/turbomodule/core 500 | - React-Fabric/components/legacyviewmanagerinterop (0.76.6): 501 | - DoubleConversion 502 | - fmt (= 9.1.0) 503 | - glog 504 | - hermes-engine 505 | - RCT-Folly/Fabric (= 2024.01.01.00) 506 | - RCTRequired 507 | - RCTTypeSafety 508 | - React-Core 509 | - React-cxxreact 510 | - React-debug 511 | - React-featureflags 512 | - React-graphics 513 | - React-jsi 514 | - React-jsiexecutor 515 | - React-logger 516 | - React-rendererdebug 517 | - React-runtimescheduler 518 | - React-utils 519 | - ReactCommon/turbomodule/core 520 | - React-Fabric/components/root (0.76.6): 521 | - DoubleConversion 522 | - fmt (= 9.1.0) 523 | - glog 524 | - hermes-engine 525 | - RCT-Folly/Fabric (= 2024.01.01.00) 526 | - RCTRequired 527 | - RCTTypeSafety 528 | - React-Core 529 | - React-cxxreact 530 | - React-debug 531 | - React-featureflags 532 | - React-graphics 533 | - React-jsi 534 | - React-jsiexecutor 535 | - React-logger 536 | - React-rendererdebug 537 | - React-runtimescheduler 538 | - React-utils 539 | - ReactCommon/turbomodule/core 540 | - React-Fabric/components/view (0.76.6): 541 | - DoubleConversion 542 | - fmt (= 9.1.0) 543 | - glog 544 | - hermes-engine 545 | - RCT-Folly/Fabric (= 2024.01.01.00) 546 | - RCTRequired 547 | - RCTTypeSafety 548 | - React-Core 549 | - React-cxxreact 550 | - React-debug 551 | - React-featureflags 552 | - React-graphics 553 | - React-jsi 554 | - React-jsiexecutor 555 | - React-logger 556 | - React-rendererdebug 557 | - React-runtimescheduler 558 | - React-utils 559 | - ReactCommon/turbomodule/core 560 | - Yoga 561 | - React-Fabric/core (0.76.6): 562 | - DoubleConversion 563 | - fmt (= 9.1.0) 564 | - glog 565 | - hermes-engine 566 | - RCT-Folly/Fabric (= 2024.01.01.00) 567 | - RCTRequired 568 | - RCTTypeSafety 569 | - React-Core 570 | - React-cxxreact 571 | - React-debug 572 | - React-featureflags 573 | - React-graphics 574 | - React-jsi 575 | - React-jsiexecutor 576 | - React-logger 577 | - React-rendererdebug 578 | - React-runtimescheduler 579 | - React-utils 580 | - ReactCommon/turbomodule/core 581 | - React-Fabric/dom (0.76.6): 582 | - DoubleConversion 583 | - fmt (= 9.1.0) 584 | - glog 585 | - hermes-engine 586 | - RCT-Folly/Fabric (= 2024.01.01.00) 587 | - RCTRequired 588 | - RCTTypeSafety 589 | - React-Core 590 | - React-cxxreact 591 | - React-debug 592 | - React-featureflags 593 | - React-graphics 594 | - React-jsi 595 | - React-jsiexecutor 596 | - React-logger 597 | - React-rendererdebug 598 | - React-runtimescheduler 599 | - React-utils 600 | - ReactCommon/turbomodule/core 601 | - React-Fabric/imagemanager (0.76.6): 602 | - DoubleConversion 603 | - fmt (= 9.1.0) 604 | - glog 605 | - hermes-engine 606 | - RCT-Folly/Fabric (= 2024.01.01.00) 607 | - RCTRequired 608 | - RCTTypeSafety 609 | - React-Core 610 | - React-cxxreact 611 | - React-debug 612 | - React-featureflags 613 | - React-graphics 614 | - React-jsi 615 | - React-jsiexecutor 616 | - React-logger 617 | - React-rendererdebug 618 | - React-runtimescheduler 619 | - React-utils 620 | - ReactCommon/turbomodule/core 621 | - React-Fabric/leakchecker (0.76.6): 622 | - DoubleConversion 623 | - fmt (= 9.1.0) 624 | - glog 625 | - hermes-engine 626 | - RCT-Folly/Fabric (= 2024.01.01.00) 627 | - RCTRequired 628 | - RCTTypeSafety 629 | - React-Core 630 | - React-cxxreact 631 | - React-debug 632 | - React-featureflags 633 | - React-graphics 634 | - React-jsi 635 | - React-jsiexecutor 636 | - React-logger 637 | - React-rendererdebug 638 | - React-runtimescheduler 639 | - React-utils 640 | - ReactCommon/turbomodule/core 641 | - React-Fabric/mounting (0.76.6): 642 | - DoubleConversion 643 | - fmt (= 9.1.0) 644 | - glog 645 | - hermes-engine 646 | - RCT-Folly/Fabric (= 2024.01.01.00) 647 | - RCTRequired 648 | - RCTTypeSafety 649 | - React-Core 650 | - React-cxxreact 651 | - React-debug 652 | - React-featureflags 653 | - React-graphics 654 | - React-jsi 655 | - React-jsiexecutor 656 | - React-logger 657 | - React-rendererdebug 658 | - React-runtimescheduler 659 | - React-utils 660 | - ReactCommon/turbomodule/core 661 | - React-Fabric/observers (0.76.6): 662 | - DoubleConversion 663 | - fmt (= 9.1.0) 664 | - glog 665 | - hermes-engine 666 | - RCT-Folly/Fabric (= 2024.01.01.00) 667 | - RCTRequired 668 | - RCTTypeSafety 669 | - React-Core 670 | - React-cxxreact 671 | - React-debug 672 | - React-Fabric/observers/events (= 0.76.6) 673 | - React-featureflags 674 | - React-graphics 675 | - React-jsi 676 | - React-jsiexecutor 677 | - React-logger 678 | - React-rendererdebug 679 | - React-runtimescheduler 680 | - React-utils 681 | - ReactCommon/turbomodule/core 682 | - React-Fabric/observers/events (0.76.6): 683 | - DoubleConversion 684 | - fmt (= 9.1.0) 685 | - glog 686 | - hermes-engine 687 | - RCT-Folly/Fabric (= 2024.01.01.00) 688 | - RCTRequired 689 | - RCTTypeSafety 690 | - React-Core 691 | - React-cxxreact 692 | - React-debug 693 | - React-featureflags 694 | - React-graphics 695 | - React-jsi 696 | - React-jsiexecutor 697 | - React-logger 698 | - React-rendererdebug 699 | - React-runtimescheduler 700 | - React-utils 701 | - ReactCommon/turbomodule/core 702 | - React-Fabric/scheduler (0.76.6): 703 | - DoubleConversion 704 | - fmt (= 9.1.0) 705 | - glog 706 | - hermes-engine 707 | - RCT-Folly/Fabric (= 2024.01.01.00) 708 | - RCTRequired 709 | - RCTTypeSafety 710 | - React-Core 711 | - React-cxxreact 712 | - React-debug 713 | - React-Fabric/observers/events 714 | - React-featureflags 715 | - React-graphics 716 | - React-jsi 717 | - React-jsiexecutor 718 | - React-logger 719 | - React-performancetimeline 720 | - React-rendererdebug 721 | - React-runtimescheduler 722 | - React-utils 723 | - ReactCommon/turbomodule/core 724 | - React-Fabric/telemetry (0.76.6): 725 | - DoubleConversion 726 | - fmt (= 9.1.0) 727 | - glog 728 | - hermes-engine 729 | - RCT-Folly/Fabric (= 2024.01.01.00) 730 | - RCTRequired 731 | - RCTTypeSafety 732 | - React-Core 733 | - React-cxxreact 734 | - React-debug 735 | - React-featureflags 736 | - React-graphics 737 | - React-jsi 738 | - React-jsiexecutor 739 | - React-logger 740 | - React-rendererdebug 741 | - React-runtimescheduler 742 | - React-utils 743 | - ReactCommon/turbomodule/core 744 | - React-Fabric/templateprocessor (0.76.6): 745 | - DoubleConversion 746 | - fmt (= 9.1.0) 747 | - glog 748 | - hermes-engine 749 | - RCT-Folly/Fabric (= 2024.01.01.00) 750 | - RCTRequired 751 | - RCTTypeSafety 752 | - React-Core 753 | - React-cxxreact 754 | - React-debug 755 | - React-featureflags 756 | - React-graphics 757 | - React-jsi 758 | - React-jsiexecutor 759 | - React-logger 760 | - React-rendererdebug 761 | - React-runtimescheduler 762 | - React-utils 763 | - ReactCommon/turbomodule/core 764 | - React-Fabric/uimanager (0.76.6): 765 | - DoubleConversion 766 | - fmt (= 9.1.0) 767 | - glog 768 | - hermes-engine 769 | - RCT-Folly/Fabric (= 2024.01.01.00) 770 | - RCTRequired 771 | - RCTTypeSafety 772 | - React-Core 773 | - React-cxxreact 774 | - React-debug 775 | - React-Fabric/uimanager/consistency (= 0.76.6) 776 | - React-featureflags 777 | - React-graphics 778 | - React-jsi 779 | - React-jsiexecutor 780 | - React-logger 781 | - React-rendererconsistency 782 | - React-rendererdebug 783 | - React-runtimescheduler 784 | - React-utils 785 | - ReactCommon/turbomodule/core 786 | - React-Fabric/uimanager/consistency (0.76.6): 787 | - DoubleConversion 788 | - fmt (= 9.1.0) 789 | - glog 790 | - hermes-engine 791 | - RCT-Folly/Fabric (= 2024.01.01.00) 792 | - RCTRequired 793 | - RCTTypeSafety 794 | - React-Core 795 | - React-cxxreact 796 | - React-debug 797 | - React-featureflags 798 | - React-graphics 799 | - React-jsi 800 | - React-jsiexecutor 801 | - React-logger 802 | - React-rendererconsistency 803 | - React-rendererdebug 804 | - React-runtimescheduler 805 | - React-utils 806 | - ReactCommon/turbomodule/core 807 | - React-FabricComponents (0.76.6): 808 | - DoubleConversion 809 | - fmt (= 9.1.0) 810 | - glog 811 | - hermes-engine 812 | - RCT-Folly/Fabric (= 2024.01.01.00) 813 | - RCTRequired 814 | - RCTTypeSafety 815 | - React-Core 816 | - React-cxxreact 817 | - React-debug 818 | - React-Fabric 819 | - React-FabricComponents/components (= 0.76.6) 820 | - React-FabricComponents/textlayoutmanager (= 0.76.6) 821 | - React-featureflags 822 | - React-graphics 823 | - React-jsi 824 | - React-jsiexecutor 825 | - React-logger 826 | - React-rendererdebug 827 | - React-runtimescheduler 828 | - React-utils 829 | - ReactCodegen 830 | - ReactCommon/turbomodule/core 831 | - Yoga 832 | - React-FabricComponents/components (0.76.6): 833 | - DoubleConversion 834 | - fmt (= 9.1.0) 835 | - glog 836 | - hermes-engine 837 | - RCT-Folly/Fabric (= 2024.01.01.00) 838 | - RCTRequired 839 | - RCTTypeSafety 840 | - React-Core 841 | - React-cxxreact 842 | - React-debug 843 | - React-Fabric 844 | - React-FabricComponents/components/inputaccessory (= 0.76.6) 845 | - React-FabricComponents/components/iostextinput (= 0.76.6) 846 | - React-FabricComponents/components/modal (= 0.76.6) 847 | - React-FabricComponents/components/rncore (= 0.76.6) 848 | - React-FabricComponents/components/safeareaview (= 0.76.6) 849 | - React-FabricComponents/components/scrollview (= 0.76.6) 850 | - React-FabricComponents/components/text (= 0.76.6) 851 | - React-FabricComponents/components/textinput (= 0.76.6) 852 | - React-FabricComponents/components/unimplementedview (= 0.76.6) 853 | - React-featureflags 854 | - React-graphics 855 | - React-jsi 856 | - React-jsiexecutor 857 | - React-logger 858 | - React-rendererdebug 859 | - React-runtimescheduler 860 | - React-utils 861 | - ReactCodegen 862 | - ReactCommon/turbomodule/core 863 | - Yoga 864 | - React-FabricComponents/components/inputaccessory (0.76.6): 865 | - DoubleConversion 866 | - fmt (= 9.1.0) 867 | - glog 868 | - hermes-engine 869 | - RCT-Folly/Fabric (= 2024.01.01.00) 870 | - RCTRequired 871 | - RCTTypeSafety 872 | - React-Core 873 | - React-cxxreact 874 | - React-debug 875 | - React-Fabric 876 | - React-featureflags 877 | - React-graphics 878 | - React-jsi 879 | - React-jsiexecutor 880 | - React-logger 881 | - React-rendererdebug 882 | - React-runtimescheduler 883 | - React-utils 884 | - ReactCodegen 885 | - ReactCommon/turbomodule/core 886 | - Yoga 887 | - React-FabricComponents/components/iostextinput (0.76.6): 888 | - DoubleConversion 889 | - fmt (= 9.1.0) 890 | - glog 891 | - hermes-engine 892 | - RCT-Folly/Fabric (= 2024.01.01.00) 893 | - RCTRequired 894 | - RCTTypeSafety 895 | - React-Core 896 | - React-cxxreact 897 | - React-debug 898 | - React-Fabric 899 | - React-featureflags 900 | - React-graphics 901 | - React-jsi 902 | - React-jsiexecutor 903 | - React-logger 904 | - React-rendererdebug 905 | - React-runtimescheduler 906 | - React-utils 907 | - ReactCodegen 908 | - ReactCommon/turbomodule/core 909 | - Yoga 910 | - React-FabricComponents/components/modal (0.76.6): 911 | - DoubleConversion 912 | - fmt (= 9.1.0) 913 | - glog 914 | - hermes-engine 915 | - RCT-Folly/Fabric (= 2024.01.01.00) 916 | - RCTRequired 917 | - RCTTypeSafety 918 | - React-Core 919 | - React-cxxreact 920 | - React-debug 921 | - React-Fabric 922 | - React-featureflags 923 | - React-graphics 924 | - React-jsi 925 | - React-jsiexecutor 926 | - React-logger 927 | - React-rendererdebug 928 | - React-runtimescheduler 929 | - React-utils 930 | - ReactCodegen 931 | - ReactCommon/turbomodule/core 932 | - Yoga 933 | - React-FabricComponents/components/rncore (0.76.6): 934 | - DoubleConversion 935 | - fmt (= 9.1.0) 936 | - glog 937 | - hermes-engine 938 | - RCT-Folly/Fabric (= 2024.01.01.00) 939 | - RCTRequired 940 | - RCTTypeSafety 941 | - React-Core 942 | - React-cxxreact 943 | - React-debug 944 | - React-Fabric 945 | - React-featureflags 946 | - React-graphics 947 | - React-jsi 948 | - React-jsiexecutor 949 | - React-logger 950 | - React-rendererdebug 951 | - React-runtimescheduler 952 | - React-utils 953 | - ReactCodegen 954 | - ReactCommon/turbomodule/core 955 | - Yoga 956 | - React-FabricComponents/components/safeareaview (0.76.6): 957 | - DoubleConversion 958 | - fmt (= 9.1.0) 959 | - glog 960 | - hermes-engine 961 | - RCT-Folly/Fabric (= 2024.01.01.00) 962 | - RCTRequired 963 | - RCTTypeSafety 964 | - React-Core 965 | - React-cxxreact 966 | - React-debug 967 | - React-Fabric 968 | - React-featureflags 969 | - React-graphics 970 | - React-jsi 971 | - React-jsiexecutor 972 | - React-logger 973 | - React-rendererdebug 974 | - React-runtimescheduler 975 | - React-utils 976 | - ReactCodegen 977 | - ReactCommon/turbomodule/core 978 | - Yoga 979 | - React-FabricComponents/components/scrollview (0.76.6): 980 | - DoubleConversion 981 | - fmt (= 9.1.0) 982 | - glog 983 | - hermes-engine 984 | - RCT-Folly/Fabric (= 2024.01.01.00) 985 | - RCTRequired 986 | - RCTTypeSafety 987 | - React-Core 988 | - React-cxxreact 989 | - React-debug 990 | - React-Fabric 991 | - React-featureflags 992 | - React-graphics 993 | - React-jsi 994 | - React-jsiexecutor 995 | - React-logger 996 | - React-rendererdebug 997 | - React-runtimescheduler 998 | - React-utils 999 | - ReactCodegen 1000 | - ReactCommon/turbomodule/core 1001 | - Yoga 1002 | - React-FabricComponents/components/text (0.76.6): 1003 | - DoubleConversion 1004 | - fmt (= 9.1.0) 1005 | - glog 1006 | - hermes-engine 1007 | - RCT-Folly/Fabric (= 2024.01.01.00) 1008 | - RCTRequired 1009 | - RCTTypeSafety 1010 | - React-Core 1011 | - React-cxxreact 1012 | - React-debug 1013 | - React-Fabric 1014 | - React-featureflags 1015 | - React-graphics 1016 | - React-jsi 1017 | - React-jsiexecutor 1018 | - React-logger 1019 | - React-rendererdebug 1020 | - React-runtimescheduler 1021 | - React-utils 1022 | - ReactCodegen 1023 | - ReactCommon/turbomodule/core 1024 | - Yoga 1025 | - React-FabricComponents/components/textinput (0.76.6): 1026 | - DoubleConversion 1027 | - fmt (= 9.1.0) 1028 | - glog 1029 | - hermes-engine 1030 | - RCT-Folly/Fabric (= 2024.01.01.00) 1031 | - RCTRequired 1032 | - RCTTypeSafety 1033 | - React-Core 1034 | - React-cxxreact 1035 | - React-debug 1036 | - React-Fabric 1037 | - React-featureflags 1038 | - React-graphics 1039 | - React-jsi 1040 | - React-jsiexecutor 1041 | - React-logger 1042 | - React-rendererdebug 1043 | - React-runtimescheduler 1044 | - React-utils 1045 | - ReactCodegen 1046 | - ReactCommon/turbomodule/core 1047 | - Yoga 1048 | - React-FabricComponents/components/unimplementedview (0.76.6): 1049 | - DoubleConversion 1050 | - fmt (= 9.1.0) 1051 | - glog 1052 | - hermes-engine 1053 | - RCT-Folly/Fabric (= 2024.01.01.00) 1054 | - RCTRequired 1055 | - RCTTypeSafety 1056 | - React-Core 1057 | - React-cxxreact 1058 | - React-debug 1059 | - React-Fabric 1060 | - React-featureflags 1061 | - React-graphics 1062 | - React-jsi 1063 | - React-jsiexecutor 1064 | - React-logger 1065 | - React-rendererdebug 1066 | - React-runtimescheduler 1067 | - React-utils 1068 | - ReactCodegen 1069 | - ReactCommon/turbomodule/core 1070 | - Yoga 1071 | - React-FabricComponents/textlayoutmanager (0.76.6): 1072 | - DoubleConversion 1073 | - fmt (= 9.1.0) 1074 | - glog 1075 | - hermes-engine 1076 | - RCT-Folly/Fabric (= 2024.01.01.00) 1077 | - RCTRequired 1078 | - RCTTypeSafety 1079 | - React-Core 1080 | - React-cxxreact 1081 | - React-debug 1082 | - React-Fabric 1083 | - React-featureflags 1084 | - React-graphics 1085 | - React-jsi 1086 | - React-jsiexecutor 1087 | - React-logger 1088 | - React-rendererdebug 1089 | - React-runtimescheduler 1090 | - React-utils 1091 | - ReactCodegen 1092 | - ReactCommon/turbomodule/core 1093 | - Yoga 1094 | - React-FabricImage (0.76.6): 1095 | - DoubleConversion 1096 | - fmt (= 9.1.0) 1097 | - glog 1098 | - hermes-engine 1099 | - RCT-Folly/Fabric (= 2024.01.01.00) 1100 | - RCTRequired (= 0.76.6) 1101 | - RCTTypeSafety (= 0.76.6) 1102 | - React-Fabric 1103 | - React-graphics 1104 | - React-ImageManager 1105 | - React-jsi 1106 | - React-jsiexecutor (= 0.76.6) 1107 | - React-logger 1108 | - React-rendererdebug 1109 | - React-utils 1110 | - ReactCommon 1111 | - Yoga 1112 | - React-featureflags (0.76.6) 1113 | - React-featureflagsnativemodule (0.76.6): 1114 | - DoubleConversion 1115 | - glog 1116 | - hermes-engine 1117 | - RCT-Folly (= 2024.01.01.00) 1118 | - RCTRequired 1119 | - RCTTypeSafety 1120 | - React-Core 1121 | - React-debug 1122 | - React-Fabric 1123 | - React-featureflags 1124 | - React-graphics 1125 | - React-ImageManager 1126 | - React-NativeModulesApple 1127 | - React-RCTFabric 1128 | - React-rendererdebug 1129 | - React-utils 1130 | - ReactCodegen 1131 | - ReactCommon/turbomodule/bridging 1132 | - ReactCommon/turbomodule/core 1133 | - Yoga 1134 | - React-graphics (0.76.6): 1135 | - DoubleConversion 1136 | - fmt (= 9.1.0) 1137 | - glog 1138 | - RCT-Folly/Fabric (= 2024.01.01.00) 1139 | - React-jsi 1140 | - React-jsiexecutor 1141 | - React-utils 1142 | - React-hermes (0.76.6): 1143 | - DoubleConversion 1144 | - fmt (= 9.1.0) 1145 | - glog 1146 | - hermes-engine 1147 | - RCT-Folly (= 2024.01.01.00) 1148 | - React-cxxreact (= 0.76.6) 1149 | - React-jsi 1150 | - React-jsiexecutor (= 0.76.6) 1151 | - React-jsinspector 1152 | - React-perflogger (= 0.76.6) 1153 | - React-runtimeexecutor 1154 | - React-idlecallbacksnativemodule (0.76.6): 1155 | - DoubleConversion 1156 | - glog 1157 | - hermes-engine 1158 | - RCT-Folly (= 2024.01.01.00) 1159 | - RCTRequired 1160 | - RCTTypeSafety 1161 | - React-Core 1162 | - React-debug 1163 | - React-Fabric 1164 | - React-featureflags 1165 | - React-graphics 1166 | - React-ImageManager 1167 | - React-NativeModulesApple 1168 | - React-RCTFabric 1169 | - React-rendererdebug 1170 | - React-runtimescheduler 1171 | - React-utils 1172 | - ReactCodegen 1173 | - ReactCommon/turbomodule/bridging 1174 | - ReactCommon/turbomodule/core 1175 | - Yoga 1176 | - React-ImageManager (0.76.6): 1177 | - glog 1178 | - RCT-Folly/Fabric 1179 | - React-Core/Default 1180 | - React-debug 1181 | - React-Fabric 1182 | - React-graphics 1183 | - React-rendererdebug 1184 | - React-utils 1185 | - React-jserrorhandler (0.76.6): 1186 | - glog 1187 | - hermes-engine 1188 | - RCT-Folly/Fabric (= 2024.01.01.00) 1189 | - React-cxxreact 1190 | - React-debug 1191 | - React-jsi 1192 | - React-jsi (0.76.6): 1193 | - boost 1194 | - DoubleConversion 1195 | - fmt (= 9.1.0) 1196 | - glog 1197 | - hermes-engine 1198 | - RCT-Folly (= 2024.01.01.00) 1199 | - React-jsiexecutor (0.76.6): 1200 | - DoubleConversion 1201 | - fmt (= 9.1.0) 1202 | - glog 1203 | - hermes-engine 1204 | - RCT-Folly (= 2024.01.01.00) 1205 | - React-cxxreact (= 0.76.6) 1206 | - React-jsi (= 0.76.6) 1207 | - React-jsinspector 1208 | - React-perflogger (= 0.76.6) 1209 | - React-jsinspector (0.76.6): 1210 | - DoubleConversion 1211 | - glog 1212 | - hermes-engine 1213 | - RCT-Folly (= 2024.01.01.00) 1214 | - React-featureflags 1215 | - React-jsi 1216 | - React-perflogger (= 0.76.6) 1217 | - React-runtimeexecutor (= 0.76.6) 1218 | - React-jsitracing (0.76.6): 1219 | - React-jsi 1220 | - React-logger (0.76.6): 1221 | - glog 1222 | - React-Mapbuffer (0.76.6): 1223 | - glog 1224 | - React-debug 1225 | - React-microtasksnativemodule (0.76.6): 1226 | - DoubleConversion 1227 | - glog 1228 | - hermes-engine 1229 | - RCT-Folly (= 2024.01.01.00) 1230 | - RCTRequired 1231 | - RCTTypeSafety 1232 | - React-Core 1233 | - React-debug 1234 | - React-Fabric 1235 | - React-featureflags 1236 | - React-graphics 1237 | - React-ImageManager 1238 | - React-NativeModulesApple 1239 | - React-RCTFabric 1240 | - React-rendererdebug 1241 | - React-utils 1242 | - ReactCodegen 1243 | - ReactCommon/turbomodule/bridging 1244 | - ReactCommon/turbomodule/core 1245 | - Yoga 1246 | - react-native-opacity (6.4.0): 1247 | - DoubleConversion 1248 | - glog 1249 | - hermes-engine 1250 | - OpacityCore (= 6.4.0) 1251 | - RCT-Folly (= 2024.01.01.00) 1252 | - RCTRequired 1253 | - RCTTypeSafety 1254 | - React-Core 1255 | - React-debug 1256 | - React-Fabric 1257 | - React-featureflags 1258 | - React-graphics 1259 | - React-ImageManager 1260 | - React-NativeModulesApple 1261 | - React-RCTFabric 1262 | - React-rendererdebug 1263 | - React-utils 1264 | - ReactCodegen 1265 | - ReactCommon/turbomodule/bridging 1266 | - ReactCommon/turbomodule/core 1267 | - Yoga 1268 | - react-native-safe-area-context (4.10.9): 1269 | - DoubleConversion 1270 | - glog 1271 | - hermes-engine 1272 | - RCT-Folly (= 2024.01.01.00) 1273 | - RCTRequired 1274 | - RCTTypeSafety 1275 | - React-Core 1276 | - React-debug 1277 | - React-Fabric 1278 | - React-featureflags 1279 | - React-graphics 1280 | - React-ImageManager 1281 | - react-native-safe-area-context/common (= 4.10.9) 1282 | - react-native-safe-area-context/fabric (= 4.10.9) 1283 | - React-NativeModulesApple 1284 | - React-RCTFabric 1285 | - React-rendererdebug 1286 | - React-utils 1287 | - ReactCodegen 1288 | - ReactCommon/turbomodule/bridging 1289 | - ReactCommon/turbomodule/core 1290 | - Yoga 1291 | - react-native-safe-area-context/common (4.10.9): 1292 | - DoubleConversion 1293 | - glog 1294 | - hermes-engine 1295 | - RCT-Folly (= 2024.01.01.00) 1296 | - RCTRequired 1297 | - RCTTypeSafety 1298 | - React-Core 1299 | - React-debug 1300 | - React-Fabric 1301 | - React-featureflags 1302 | - React-graphics 1303 | - React-ImageManager 1304 | - React-NativeModulesApple 1305 | - React-RCTFabric 1306 | - React-rendererdebug 1307 | - React-utils 1308 | - ReactCodegen 1309 | - ReactCommon/turbomodule/bridging 1310 | - ReactCommon/turbomodule/core 1311 | - Yoga 1312 | - react-native-safe-area-context/fabric (4.10.9): 1313 | - DoubleConversion 1314 | - glog 1315 | - hermes-engine 1316 | - RCT-Folly (= 2024.01.01.00) 1317 | - RCTRequired 1318 | - RCTTypeSafety 1319 | - React-Core 1320 | - React-debug 1321 | - React-Fabric 1322 | - React-featureflags 1323 | - React-graphics 1324 | - React-ImageManager 1325 | - react-native-safe-area-context/common 1326 | - React-NativeModulesApple 1327 | - React-RCTFabric 1328 | - React-rendererdebug 1329 | - React-utils 1330 | - ReactCodegen 1331 | - ReactCommon/turbomodule/bridging 1332 | - ReactCommon/turbomodule/core 1333 | - Yoga 1334 | - React-nativeconfig (0.76.6) 1335 | - React-NativeModulesApple (0.76.6): 1336 | - glog 1337 | - hermes-engine 1338 | - React-callinvoker 1339 | - React-Core 1340 | - React-cxxreact 1341 | - React-jsi 1342 | - React-jsinspector 1343 | - React-runtimeexecutor 1344 | - ReactCommon/turbomodule/bridging 1345 | - ReactCommon/turbomodule/core 1346 | - React-perflogger (0.76.6): 1347 | - DoubleConversion 1348 | - RCT-Folly (= 2024.01.01.00) 1349 | - React-performancetimeline (0.76.6): 1350 | - RCT-Folly (= 2024.01.01.00) 1351 | - React-cxxreact 1352 | - React-timing 1353 | - React-RCTActionSheet (0.76.6): 1354 | - React-Core/RCTActionSheetHeaders (= 0.76.6) 1355 | - React-RCTAnimation (0.76.6): 1356 | - RCT-Folly (= 2024.01.01.00) 1357 | - RCTTypeSafety 1358 | - React-Core/RCTAnimationHeaders 1359 | - React-jsi 1360 | - React-NativeModulesApple 1361 | - ReactCodegen 1362 | - ReactCommon 1363 | - React-RCTAppDelegate (0.76.6): 1364 | - RCT-Folly (= 2024.01.01.00) 1365 | - RCTRequired 1366 | - RCTTypeSafety 1367 | - React-Core 1368 | - React-CoreModules 1369 | - React-debug 1370 | - React-defaultsnativemodule 1371 | - React-Fabric 1372 | - React-featureflags 1373 | - React-graphics 1374 | - React-hermes 1375 | - React-nativeconfig 1376 | - React-NativeModulesApple 1377 | - React-RCTFabric 1378 | - React-RCTImage 1379 | - React-RCTNetwork 1380 | - React-rendererdebug 1381 | - React-RuntimeApple 1382 | - React-RuntimeCore 1383 | - React-RuntimeHermes 1384 | - React-runtimescheduler 1385 | - React-utils 1386 | - ReactCodegen 1387 | - ReactCommon 1388 | - React-RCTBlob (0.76.6): 1389 | - DoubleConversion 1390 | - fmt (= 9.1.0) 1391 | - hermes-engine 1392 | - RCT-Folly (= 2024.01.01.00) 1393 | - React-Core/RCTBlobHeaders 1394 | - React-Core/RCTWebSocket 1395 | - React-jsi 1396 | - React-jsinspector 1397 | - React-NativeModulesApple 1398 | - React-RCTNetwork 1399 | - ReactCodegen 1400 | - ReactCommon 1401 | - React-RCTFabric (0.76.6): 1402 | - glog 1403 | - hermes-engine 1404 | - RCT-Folly/Fabric (= 2024.01.01.00) 1405 | - React-Core 1406 | - React-debug 1407 | - React-Fabric 1408 | - React-FabricComponents 1409 | - React-FabricImage 1410 | - React-featureflags 1411 | - React-graphics 1412 | - React-ImageManager 1413 | - React-jsi 1414 | - React-jsinspector 1415 | - React-nativeconfig 1416 | - React-performancetimeline 1417 | - React-RCTImage 1418 | - React-RCTText 1419 | - React-rendererconsistency 1420 | - React-rendererdebug 1421 | - React-runtimescheduler 1422 | - React-utils 1423 | - Yoga 1424 | - React-RCTImage (0.76.6): 1425 | - RCT-Folly (= 2024.01.01.00) 1426 | - RCTTypeSafety 1427 | - React-Core/RCTImageHeaders 1428 | - React-jsi 1429 | - React-NativeModulesApple 1430 | - React-RCTNetwork 1431 | - ReactCodegen 1432 | - ReactCommon 1433 | - React-RCTLinking (0.76.6): 1434 | - React-Core/RCTLinkingHeaders (= 0.76.6) 1435 | - React-jsi (= 0.76.6) 1436 | - React-NativeModulesApple 1437 | - ReactCodegen 1438 | - ReactCommon 1439 | - ReactCommon/turbomodule/core (= 0.76.6) 1440 | - React-RCTNetwork (0.76.6): 1441 | - RCT-Folly (= 2024.01.01.00) 1442 | - RCTTypeSafety 1443 | - React-Core/RCTNetworkHeaders 1444 | - React-jsi 1445 | - React-NativeModulesApple 1446 | - ReactCodegen 1447 | - ReactCommon 1448 | - React-RCTSettings (0.76.6): 1449 | - RCT-Folly (= 2024.01.01.00) 1450 | - RCTTypeSafety 1451 | - React-Core/RCTSettingsHeaders 1452 | - React-jsi 1453 | - React-NativeModulesApple 1454 | - ReactCodegen 1455 | - ReactCommon 1456 | - React-RCTText (0.76.6): 1457 | - React-Core/RCTTextHeaders (= 0.76.6) 1458 | - Yoga 1459 | - React-RCTVibration (0.76.6): 1460 | - RCT-Folly (= 2024.01.01.00) 1461 | - React-Core/RCTVibrationHeaders 1462 | - React-jsi 1463 | - React-NativeModulesApple 1464 | - ReactCodegen 1465 | - ReactCommon 1466 | - React-rendererconsistency (0.76.6) 1467 | - React-rendererdebug (0.76.6): 1468 | - DoubleConversion 1469 | - fmt (= 9.1.0) 1470 | - RCT-Folly (= 2024.01.01.00) 1471 | - React-debug 1472 | - React-rncore (0.76.6) 1473 | - React-RuntimeApple (0.76.6): 1474 | - hermes-engine 1475 | - RCT-Folly/Fabric (= 2024.01.01.00) 1476 | - React-callinvoker 1477 | - React-Core/Default 1478 | - React-CoreModules 1479 | - React-cxxreact 1480 | - React-jserrorhandler 1481 | - React-jsi 1482 | - React-jsiexecutor 1483 | - React-jsinspector 1484 | - React-Mapbuffer 1485 | - React-NativeModulesApple 1486 | - React-RCTFabric 1487 | - React-RuntimeCore 1488 | - React-runtimeexecutor 1489 | - React-RuntimeHermes 1490 | - React-runtimescheduler 1491 | - React-utils 1492 | - React-RuntimeCore (0.76.6): 1493 | - glog 1494 | - hermes-engine 1495 | - RCT-Folly/Fabric (= 2024.01.01.00) 1496 | - React-cxxreact 1497 | - React-featureflags 1498 | - React-jserrorhandler 1499 | - React-jsi 1500 | - React-jsiexecutor 1501 | - React-jsinspector 1502 | - React-performancetimeline 1503 | - React-runtimeexecutor 1504 | - React-runtimescheduler 1505 | - React-utils 1506 | - React-runtimeexecutor (0.76.6): 1507 | - React-jsi (= 0.76.6) 1508 | - React-RuntimeHermes (0.76.6): 1509 | - hermes-engine 1510 | - RCT-Folly/Fabric (= 2024.01.01.00) 1511 | - React-featureflags 1512 | - React-hermes 1513 | - React-jsi 1514 | - React-jsinspector 1515 | - React-jsitracing 1516 | - React-nativeconfig 1517 | - React-RuntimeCore 1518 | - React-utils 1519 | - React-runtimescheduler (0.76.6): 1520 | - glog 1521 | - hermes-engine 1522 | - RCT-Folly (= 2024.01.01.00) 1523 | - React-callinvoker 1524 | - React-cxxreact 1525 | - React-debug 1526 | - React-featureflags 1527 | - React-jsi 1528 | - React-performancetimeline 1529 | - React-rendererconsistency 1530 | - React-rendererdebug 1531 | - React-runtimeexecutor 1532 | - React-timing 1533 | - React-utils 1534 | - React-timing (0.76.6) 1535 | - React-utils (0.76.6): 1536 | - glog 1537 | - hermes-engine 1538 | - RCT-Folly (= 2024.01.01.00) 1539 | - React-debug 1540 | - React-jsi (= 0.76.6) 1541 | - ReactCodegen (0.76.6): 1542 | - DoubleConversion 1543 | - glog 1544 | - hermes-engine 1545 | - RCT-Folly 1546 | - RCTRequired 1547 | - RCTTypeSafety 1548 | - React-Core 1549 | - React-debug 1550 | - React-Fabric 1551 | - React-FabricImage 1552 | - React-featureflags 1553 | - React-graphics 1554 | - React-jsi 1555 | - React-jsiexecutor 1556 | - React-NativeModulesApple 1557 | - React-rendererdebug 1558 | - React-utils 1559 | - ReactCommon/turbomodule/bridging 1560 | - ReactCommon/turbomodule/core 1561 | - ReactCommon (0.76.6): 1562 | - ReactCommon/turbomodule (= 0.76.6) 1563 | - ReactCommon/turbomodule (0.76.6): 1564 | - DoubleConversion 1565 | - fmt (= 9.1.0) 1566 | - glog 1567 | - hermes-engine 1568 | - RCT-Folly (= 2024.01.01.00) 1569 | - React-callinvoker (= 0.76.6) 1570 | - React-cxxreact (= 0.76.6) 1571 | - React-jsi (= 0.76.6) 1572 | - React-logger (= 0.76.6) 1573 | - React-perflogger (= 0.76.6) 1574 | - ReactCommon/turbomodule/bridging (= 0.76.6) 1575 | - ReactCommon/turbomodule/core (= 0.76.6) 1576 | - ReactCommon/turbomodule/bridging (0.76.6): 1577 | - DoubleConversion 1578 | - fmt (= 9.1.0) 1579 | - glog 1580 | - hermes-engine 1581 | - RCT-Folly (= 2024.01.01.00) 1582 | - React-callinvoker (= 0.76.6) 1583 | - React-cxxreact (= 0.76.6) 1584 | - React-jsi (= 0.76.6) 1585 | - React-logger (= 0.76.6) 1586 | - React-perflogger (= 0.76.6) 1587 | - ReactCommon/turbomodule/core (0.76.6): 1588 | - DoubleConversion 1589 | - fmt (= 9.1.0) 1590 | - glog 1591 | - hermes-engine 1592 | - RCT-Folly (= 2024.01.01.00) 1593 | - React-callinvoker (= 0.76.6) 1594 | - React-cxxreact (= 0.76.6) 1595 | - React-debug (= 0.76.6) 1596 | - React-featureflags (= 0.76.6) 1597 | - React-jsi (= 0.76.6) 1598 | - React-logger (= 0.76.6) 1599 | - React-perflogger (= 0.76.6) 1600 | - React-utils (= 0.76.6) 1601 | - RNScreens (3.34.0): 1602 | - DoubleConversion 1603 | - glog 1604 | - hermes-engine 1605 | - RCT-Folly (= 2024.01.01.00) 1606 | - RCTRequired 1607 | - RCTTypeSafety 1608 | - React-Core 1609 | - React-debug 1610 | - React-Fabric 1611 | - React-featureflags 1612 | - React-graphics 1613 | - React-ImageManager 1614 | - React-NativeModulesApple 1615 | - React-RCTFabric 1616 | - React-RCTImage 1617 | - React-rendererdebug 1618 | - React-utils 1619 | - ReactCodegen 1620 | - ReactCommon/turbomodule/bridging 1621 | - ReactCommon/turbomodule/core 1622 | - RNScreens/common (= 3.34.0) 1623 | - Yoga 1624 | - RNScreens/common (3.34.0): 1625 | - DoubleConversion 1626 | - glog 1627 | - hermes-engine 1628 | - RCT-Folly (= 2024.01.01.00) 1629 | - RCTRequired 1630 | - RCTTypeSafety 1631 | - React-Core 1632 | - React-debug 1633 | - React-Fabric 1634 | - React-featureflags 1635 | - React-graphics 1636 | - React-ImageManager 1637 | - React-NativeModulesApple 1638 | - React-RCTFabric 1639 | - React-RCTImage 1640 | - React-rendererdebug 1641 | - React-utils 1642 | - ReactCodegen 1643 | - ReactCommon/turbomodule/bridging 1644 | - ReactCommon/turbomodule/core 1645 | - Yoga 1646 | - SocketRocket (0.7.1) 1647 | - Yoga (0.0.0) 1648 | 1649 | DEPENDENCIES: 1650 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) 1651 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) 1652 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) 1653 | - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) 1654 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) 1655 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) 1656 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1657 | - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1658 | - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) 1659 | - RCTRequired (from `../node_modules/react-native/Libraries/Required`) 1660 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) 1661 | - React (from `../node_modules/react-native/`) 1662 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) 1663 | - React-Core (from `../node_modules/react-native/`) 1664 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`) 1665 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) 1666 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) 1667 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) 1668 | - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) 1669 | - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) 1670 | - React-Fabric (from `../node_modules/react-native/ReactCommon`) 1671 | - React-FabricComponents (from `../node_modules/react-native/ReactCommon`) 1672 | - React-FabricImage (from `../node_modules/react-native/ReactCommon`) 1673 | - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) 1674 | - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) 1675 | - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) 1676 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) 1677 | - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) 1678 | - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) 1679 | - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) 1680 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) 1681 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) 1682 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) 1683 | - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) 1684 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`) 1685 | - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) 1686 | - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) 1687 | - "react-native-opacity (from `../node_modules/@opacity-labs/react-native-opacity`)" 1688 | - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) 1689 | - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) 1690 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) 1691 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) 1692 | - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) 1693 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) 1694 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) 1695 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) 1696 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) 1697 | - React-RCTFabric (from `../node_modules/react-native/React`) 1698 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) 1699 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) 1700 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) 1701 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) 1702 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`) 1703 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) 1704 | - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) 1705 | - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) 1706 | - React-rncore (from `../node_modules/react-native/ReactCommon`) 1707 | - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) 1708 | - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) 1709 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) 1710 | - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) 1711 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) 1712 | - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`) 1713 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) 1714 | - ReactCodegen (from `build/generated/ios`) 1715 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) 1716 | - RNScreens (from `../node_modules/react-native-screens`) 1717 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) 1718 | 1719 | SPEC REPOS: 1720 | trunk: 1721 | - OpacityCore 1722 | - SocketRocket 1723 | 1724 | EXTERNAL SOURCES: 1725 | boost: 1726 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" 1727 | DoubleConversion: 1728 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" 1729 | FBLazyVector: 1730 | :path: "../node_modules/react-native/Libraries/FBLazyVector" 1731 | fmt: 1732 | :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" 1733 | glog: 1734 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" 1735 | hermes-engine: 1736 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" 1737 | :tag: hermes-2024-11-12-RNv0.76.2-5b4aa20c719830dcf5684832b89a6edb95ac3d64 1738 | RCT-Folly: 1739 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" 1740 | RCTDeprecation: 1741 | :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" 1742 | RCTRequired: 1743 | :path: "../node_modules/react-native/Libraries/Required" 1744 | RCTTypeSafety: 1745 | :path: "../node_modules/react-native/Libraries/TypeSafety" 1746 | React: 1747 | :path: "../node_modules/react-native/" 1748 | React-callinvoker: 1749 | :path: "../node_modules/react-native/ReactCommon/callinvoker" 1750 | React-Core: 1751 | :path: "../node_modules/react-native/" 1752 | React-CoreModules: 1753 | :path: "../node_modules/react-native/React/CoreModules" 1754 | React-cxxreact: 1755 | :path: "../node_modules/react-native/ReactCommon/cxxreact" 1756 | React-debug: 1757 | :path: "../node_modules/react-native/ReactCommon/react/debug" 1758 | React-defaultsnativemodule: 1759 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" 1760 | React-domnativemodule: 1761 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" 1762 | React-Fabric: 1763 | :path: "../node_modules/react-native/ReactCommon" 1764 | React-FabricComponents: 1765 | :path: "../node_modules/react-native/ReactCommon" 1766 | React-FabricImage: 1767 | :path: "../node_modules/react-native/ReactCommon" 1768 | React-featureflags: 1769 | :path: "../node_modules/react-native/ReactCommon/react/featureflags" 1770 | React-featureflagsnativemodule: 1771 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" 1772 | React-graphics: 1773 | :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" 1774 | React-hermes: 1775 | :path: "../node_modules/react-native/ReactCommon/hermes" 1776 | React-idlecallbacksnativemodule: 1777 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" 1778 | React-ImageManager: 1779 | :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" 1780 | React-jserrorhandler: 1781 | :path: "../node_modules/react-native/ReactCommon/jserrorhandler" 1782 | React-jsi: 1783 | :path: "../node_modules/react-native/ReactCommon/jsi" 1784 | React-jsiexecutor: 1785 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor" 1786 | React-jsinspector: 1787 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" 1788 | React-jsitracing: 1789 | :path: "../node_modules/react-native/ReactCommon/hermes/executor/" 1790 | React-logger: 1791 | :path: "../node_modules/react-native/ReactCommon/logger" 1792 | React-Mapbuffer: 1793 | :path: "../node_modules/react-native/ReactCommon" 1794 | React-microtasksnativemodule: 1795 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" 1796 | react-native-opacity: 1797 | :path: "../node_modules/@opacity-labs/react-native-opacity" 1798 | react-native-safe-area-context: 1799 | :path: "../node_modules/react-native-safe-area-context" 1800 | React-nativeconfig: 1801 | :path: "../node_modules/react-native/ReactCommon" 1802 | React-NativeModulesApple: 1803 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" 1804 | React-perflogger: 1805 | :path: "../node_modules/react-native/ReactCommon/reactperflogger" 1806 | React-performancetimeline: 1807 | :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" 1808 | React-RCTActionSheet: 1809 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS" 1810 | React-RCTAnimation: 1811 | :path: "../node_modules/react-native/Libraries/NativeAnimation" 1812 | React-RCTAppDelegate: 1813 | :path: "../node_modules/react-native/Libraries/AppDelegate" 1814 | React-RCTBlob: 1815 | :path: "../node_modules/react-native/Libraries/Blob" 1816 | React-RCTFabric: 1817 | :path: "../node_modules/react-native/React" 1818 | React-RCTImage: 1819 | :path: "../node_modules/react-native/Libraries/Image" 1820 | React-RCTLinking: 1821 | :path: "../node_modules/react-native/Libraries/LinkingIOS" 1822 | React-RCTNetwork: 1823 | :path: "../node_modules/react-native/Libraries/Network" 1824 | React-RCTSettings: 1825 | :path: "../node_modules/react-native/Libraries/Settings" 1826 | React-RCTText: 1827 | :path: "../node_modules/react-native/Libraries/Text" 1828 | React-RCTVibration: 1829 | :path: "../node_modules/react-native/Libraries/Vibration" 1830 | React-rendererconsistency: 1831 | :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" 1832 | React-rendererdebug: 1833 | :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" 1834 | React-rncore: 1835 | :path: "../node_modules/react-native/ReactCommon" 1836 | React-RuntimeApple: 1837 | :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" 1838 | React-RuntimeCore: 1839 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 1840 | React-runtimeexecutor: 1841 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" 1842 | React-RuntimeHermes: 1843 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 1844 | React-runtimescheduler: 1845 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" 1846 | React-timing: 1847 | :path: "../node_modules/react-native/ReactCommon/react/timing" 1848 | React-utils: 1849 | :path: "../node_modules/react-native/ReactCommon/react/utils" 1850 | ReactCodegen: 1851 | :path: build/generated/ios 1852 | ReactCommon: 1853 | :path: "../node_modules/react-native/ReactCommon" 1854 | RNScreens: 1855 | :path: "../node_modules/react-native-screens" 1856 | Yoga: 1857 | :path: "../node_modules/react-native/ReactCommon/yoga" 1858 | 1859 | SPEC CHECKSUMS: 1860 | boost: 1dca942403ed9342f98334bf4c3621f011aa7946 1861 | DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 1862 | FBLazyVector: be509404b5de73a64a74284edcaf73a5d1e128b1 1863 | fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be 1864 | glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a 1865 | hermes-engine: 1949ca944b195a8bde7cbf6316b9068e19cf53c6 1866 | OpacityCore: c03ad5411c8974e2cfb74d60667909c714f845bc 1867 | RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648 1868 | RCTDeprecation: 063fc281b30b7dc944c98fe53a7e266dab1a8706 1869 | RCTRequired: 8eda2a5a745f6081157a4f34baac40b65fe02b31 1870 | RCTTypeSafety: 0f96bf6c99efc33eb43352212703854933f22930 1871 | React: 1d3d5bada479030961d513fb11e42659b30e97ff 1872 | React-callinvoker: 682c610b9e9d3b93bd8d0075eacb2e6aa304d3e0 1873 | React-Core: 10420b32e62acf6b3aa0a570e45566001175c777 1874 | React-CoreModules: aad977a7dbff83aa707c4045e5db81446a511cca 1875 | React-cxxreact: 1bee1b97e7d537f1a33d9eb68c9426c1fc1a4e3c 1876 | React-debug: 4ae2e95c2d392cca29939a3a2f2b4320ddff3e59 1877 | React-defaultsnativemodule: b585565214178c5780b54e4d56815d65782eac81 1878 | React-domnativemodule: 03fd1847e49505aa9024acbe4f0811e441dc89a2 1879 | React-Fabric: fc0898bb601b03ed41ab0df3e7b1a4acd05a6cff 1880 | React-FabricComponents: 13e78253b210d112b3ffddca5b7323db7f254358 1881 | React-FabricImage: a86ff938570a06c2a9fbf00ff0b00195f0bd4aba 1882 | React-featureflags: 5670e0dcdc17ba2515963d117dacc13d5b69c431 1883 | React-featureflagsnativemodule: 79dea40c60cdc0356aadc67a099bba0af8c34e4f 1884 | React-graphics: 04eed50a115e750e4644c1e955f32bec57f6a235 1885 | React-hermes: add932964f5ef024c86352dcc0dc427e6309642e 1886 | React-idlecallbacksnativemodule: 3e8d5085a21eb2f70ac64ff9817f8f8a603518a9 1887 | React-ImageManager: 3239badd14cc602baf836b5d7151ffa90393deae 1888 | React-jserrorhandler: 81ac36638e02c33a9df0bdbeec464d2e699ac8a9 1889 | React-jsi: 690f3742db66cab8d5219bcfbc19fee112c6bb0c 1890 | React-jsiexecutor: a060f7e989da21e2478f652d7799e3b5ae5db262 1891 | React-jsinspector: 0eb6ea6f6b1e42edeab4bcad092d37ef748e337a 1892 | React-jsitracing: 737a69a469e2bc821cf8ae11977bded522393719 1893 | React-logger: 162c09cc432b02d4a0db31b1d98f6df5243a2679 1894 | React-Mapbuffer: f760d2229640be48cb3c2d4832b5bbc3018123fc 1895 | React-microtasksnativemodule: 1364ae5354f51b3ecee8eb718b5b6d1686d2ff4d 1896 | react-native-opacity: 76e6c0cc032b45d69bcb47c2cf1ca5aa55ad6e4b 1897 | react-native-safe-area-context: 38fdd9b3c5561de7cabae64bd0cd2ce05d2768a1 1898 | React-nativeconfig: 539ff4de6ce3b694e8e751080568c281c84903ce 1899 | React-NativeModulesApple: 771cc40b086281b820fe455fedebbe4341fd0c90 1900 | React-perflogger: 4e80a5b8d61dfb38024e7d5b8efaf9ce1037d31f 1901 | React-performancetimeline: 1dcacc31d81f790f43a2d434ec95b0f864582329 1902 | React-RCTActionSheet: ed5a845eae98fe455b9a1d71f057d626e2f3f1c5 1903 | React-RCTAnimation: 0cda303ef8ca5a2d0ee9e425f188cc9fc1d2e20f 1904 | React-RCTAppDelegate: 1edcdebdaebf5120bdaa9d54bc40789714be3719 1905 | React-RCTBlob: dab83a3c22210e5c7a8267834c68e6cf94bc1ce2 1906 | React-RCTFabric: 19ba31d6b913b8b4aa8b27e4d6f5dc8ebd93a438 1907 | React-RCTImage: b9c3d2cff3b8214322022cdf8afb92ff978bb92e 1908 | React-RCTLinking: e58c4fa216f9ac87ed3d4a0cce03905df67adec0 1909 | React-RCTNetwork: 9f206fa039e107f51ddfac133df79105643ea2bd 1910 | React-RCTSettings: c7663cfcb3531cd438b8f73e98cd2d982a4bbd72 1911 | React-RCTText: cfee29316f1049f016cbd81328a89a8a07410bba 1912 | React-RCTVibration: 20f5efc1b05cd3f5f7ea03489dd3766c890fb493 1913 | React-rendererconsistency: ccd50d5ee6544b26cd11fff5ad1112c5058a0064 1914 | React-rendererdebug: d8f43065459c2095f27a173121f03dcd1d1b08e5 1915 | React-rncore: bfe554cb773978e8b94898866964c9579cb0c70c 1916 | React-RuntimeApple: 89c319b1610d4ca8895642cf0eae1188bf864270 1917 | React-RuntimeCore: 30399cbd2368f7e031692875275984fa42142601 1918 | React-runtimeexecutor: 26a9d14619ec1359470df391be9abb7c80a21b2b 1919 | React-RuntimeHermes: c78f07b7a599c1c9a889189c02436600e72c8b27 1920 | React-runtimescheduler: 9f6b0b85154ed8a17a899cd1bab258a26c8db2cd 1921 | React-timing: c9c7c0fe2fdfc433ef208889b6191dfb45457d68 1922 | React-utils: e6697b03f21c7ac57b075d848cda7882662cabf7 1923 | ReactCodegen: 484b223748d7489d7036db1cbf79896d297e33a7 1924 | ReactCommon: 832cdd669aeecd430d9ca1975d15676b38d0b263 1925 | RNScreens: de6e57426ba0e6cbc3fb5b4f496e7f08cb2773c2 1926 | SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 1927 | Yoga: 2a5ae8f7db3c675ff5a781fb5d99c5f7a5d2fc11 1928 | 1929 | PODFILE CHECKSUM: 0a6b637b970719a72288772bfd9c9130ae528ff9 1930 | 1931 | COCOAPODS: 1.16.2 1932 | -------------------------------------------------------------------------------- /ios/opacitySample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 54; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 00E356F31AD99517003FC87E /* opacitySampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* opacitySampleTests.m */; }; 11 | 0C80B921A6F3F58F76C31292 /* libPods-opacitySample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-opacitySample.a */; }; 12 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 14 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 15 | 7699B88040F8A987B510C191 /* libPods-opacitySample-opacitySampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-opacitySample-opacitySampleTests.a */; }; 16 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; 17 | E98349F4EE5E61E3D8CAC60C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 2534D699866FBCBED0297120 /* PrivacyInfo.xcprivacy */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A; 26 | remoteInfo = opacitySample; 27 | }; 28 | /* End PBXContainerItemProxy section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 00E356EE1AD99517003FC87E /* opacitySampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = opacitySampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 32 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 33 | 00E356F21AD99517003FC87E /* opacitySampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = opacitySampleTests.m; sourceTree = ""; }; 34 | 13B07F961A680F5B00A75B9A /* opacitySample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = opacitySample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 35 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = opacitySample/AppDelegate.h; sourceTree = ""; }; 36 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = opacitySample/AppDelegate.mm; sourceTree = ""; }; 37 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = opacitySample/Images.xcassets; sourceTree = ""; }; 38 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = opacitySample/Info.plist; sourceTree = ""; }; 39 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = opacitySample/main.m; sourceTree = ""; }; 40 | 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = opacitySample/PrivacyInfo.xcprivacy; sourceTree = ""; }; 41 | 19F6CBCC0A4E27FBF8BF4A61 /* libPods-opacitySample-opacitySampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-opacitySample-opacitySampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 42 | 2534D699866FBCBED0297120 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = opacitySample/PrivacyInfo.xcprivacy; sourceTree = ""; }; 43 | 3B4392A12AC88292D35C810B /* Pods-opacitySample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-opacitySample.debug.xcconfig"; path = "Target Support Files/Pods-opacitySample/Pods-opacitySample.debug.xcconfig"; sourceTree = ""; }; 44 | 5709B34CF0A7D63546082F79 /* Pods-opacitySample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-opacitySample.release.xcconfig"; path = "Target Support Files/Pods-opacitySample/Pods-opacitySample.release.xcconfig"; sourceTree = ""; }; 45 | 5B7EB9410499542E8C5724F5 /* Pods-opacitySample-opacitySampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-opacitySample-opacitySampleTests.debug.xcconfig"; path = "Target Support Files/Pods-opacitySample-opacitySampleTests/Pods-opacitySample-opacitySampleTests.debug.xcconfig"; sourceTree = ""; }; 46 | 5DCACB8F33CDC322A6C60F78 /* libPods-opacitySample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-opacitySample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | 70CEC8CF2D43C24A00E194FB /* opacitySample.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = opacitySample.xcodeproj; sourceTree = ""; }; 48 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = opacitySample/LaunchScreen.storyboard; sourceTree = ""; }; 49 | 89C6BE57DB24E9ADA2F236DE /* Pods-opacitySample-opacitySampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-opacitySample-opacitySampleTests.release.xcconfig"; path = "Target Support Files/Pods-opacitySample-opacitySampleTests/Pods-opacitySample-opacitySampleTests.release.xcconfig"; sourceTree = ""; }; 50 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 51 | /* End PBXFileReference section */ 52 | 53 | /* Begin PBXFrameworksBuildPhase section */ 54 | 00E356EB1AD99517003FC87E /* Frameworks */ = { 55 | isa = PBXFrameworksBuildPhase; 56 | buildActionMask = 2147483647; 57 | files = ( 58 | 7699B88040F8A987B510C191 /* libPods-opacitySample-opacitySampleTests.a in Frameworks */, 59 | ); 60 | runOnlyForDeploymentPostprocessing = 0; 61 | }; 62 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 63 | isa = PBXFrameworksBuildPhase; 64 | buildActionMask = 2147483647; 65 | files = ( 66 | 0C80B921A6F3F58F76C31292 /* libPods-opacitySample.a in Frameworks */, 67 | ); 68 | runOnlyForDeploymentPostprocessing = 0; 69 | }; 70 | /* End PBXFrameworksBuildPhase section */ 71 | 72 | /* Begin PBXGroup section */ 73 | 00E356EF1AD99517003FC87E /* opacitySampleTests */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | 00E356F21AD99517003FC87E /* opacitySampleTests.m */, 77 | 00E356F01AD99517003FC87E /* Supporting Files */, 78 | ); 79 | path = opacitySampleTests; 80 | sourceTree = ""; 81 | }; 82 | 00E356F01AD99517003FC87E /* Supporting Files */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | 00E356F11AD99517003FC87E /* Info.plist */, 86 | ); 87 | name = "Supporting Files"; 88 | sourceTree = ""; 89 | }; 90 | 13B07FAE1A68108700A75B9A /* opacitySample */ = { 91 | isa = PBXGroup; 92 | children = ( 93 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 94 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 95 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 96 | 13B07FB61A68108700A75B9A /* Info.plist */, 97 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 98 | 13B07FB71A68108700A75B9A /* main.m */, 99 | 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */, 100 | 2534D699866FBCBED0297120 /* PrivacyInfo.xcprivacy */, 101 | ); 102 | name = opacitySample; 103 | sourceTree = ""; 104 | }; 105 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 106 | isa = PBXGroup; 107 | children = ( 108 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 109 | 5DCACB8F33CDC322A6C60F78 /* libPods-opacitySample.a */, 110 | 19F6CBCC0A4E27FBF8BF4A61 /* libPods-opacitySample-opacitySampleTests.a */, 111 | ); 112 | name = Frameworks; 113 | sourceTree = ""; 114 | }; 115 | 70CEC8D22D43C2CE00E194FB /* Products */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | ); 119 | name = Products; 120 | sourceTree = ""; 121 | }; 122 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 123 | isa = PBXGroup; 124 | children = ( 125 | ); 126 | name = Libraries; 127 | sourceTree = ""; 128 | }; 129 | 83CBB9F61A601CBA00E9B192 = { 130 | isa = PBXGroup; 131 | children = ( 132 | 70CEC8CF2D43C24A00E194FB /* opacitySample.xcodeproj */, 133 | 13B07FAE1A68108700A75B9A /* opacitySample */, 134 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 135 | 00E356EF1AD99517003FC87E /* opacitySampleTests */, 136 | 83CBBA001A601CBA00E9B192 /* Products */, 137 | 2D16E6871FA4F8E400B85C8A /* Frameworks */, 138 | BBD78D7AC51CEA395F1C20DB /* Pods */, 139 | ); 140 | indentWidth = 2; 141 | sourceTree = ""; 142 | tabWidth = 2; 143 | usesTabs = 0; 144 | }; 145 | 83CBBA001A601CBA00E9B192 /* Products */ = { 146 | isa = PBXGroup; 147 | children = ( 148 | 13B07F961A680F5B00A75B9A /* opacitySample.app */, 149 | 00E356EE1AD99517003FC87E /* opacitySampleTests.xctest */, 150 | ); 151 | name = Products; 152 | sourceTree = ""; 153 | }; 154 | BBD78D7AC51CEA395F1C20DB /* Pods */ = { 155 | isa = PBXGroup; 156 | children = ( 157 | 3B4392A12AC88292D35C810B /* Pods-opacitySample.debug.xcconfig */, 158 | 5709B34CF0A7D63546082F79 /* Pods-opacitySample.release.xcconfig */, 159 | 5B7EB9410499542E8C5724F5 /* Pods-opacitySample-opacitySampleTests.debug.xcconfig */, 160 | 89C6BE57DB24E9ADA2F236DE /* Pods-opacitySample-opacitySampleTests.release.xcconfig */, 161 | ); 162 | path = Pods; 163 | sourceTree = ""; 164 | }; 165 | /* End PBXGroup section */ 166 | 167 | /* Begin PBXNativeTarget section */ 168 | 00E356ED1AD99517003FC87E /* opacitySampleTests */ = { 169 | isa = PBXNativeTarget; 170 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "opacitySampleTests" */; 171 | buildPhases = ( 172 | A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, 173 | 00E356EA1AD99517003FC87E /* Sources */, 174 | 00E356EB1AD99517003FC87E /* Frameworks */, 175 | 00E356EC1AD99517003FC87E /* Resources */, 176 | C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, 177 | F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, 178 | ); 179 | buildRules = ( 180 | ); 181 | dependencies = ( 182 | 00E356F51AD99517003FC87E /* PBXTargetDependency */, 183 | ); 184 | name = opacitySampleTests; 185 | productName = opacitySampleTests; 186 | productReference = 00E356EE1AD99517003FC87E /* opacitySampleTests.xctest */; 187 | productType = "com.apple.product-type.bundle.unit-test"; 188 | }; 189 | 13B07F861A680F5B00A75B9A /* opacitySample */ = { 190 | isa = PBXNativeTarget; 191 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "opacitySample" */; 192 | buildPhases = ( 193 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, 194 | 13B07F871A680F5B00A75B9A /* Sources */, 195 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 196 | 13B07F8E1A680F5B00A75B9A /* Resources */, 197 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 198 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, 199 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, 200 | ); 201 | buildRules = ( 202 | ); 203 | dependencies = ( 204 | ); 205 | name = opacitySample; 206 | productName = opacitySample; 207 | productReference = 13B07F961A680F5B00A75B9A /* opacitySample.app */; 208 | productType = "com.apple.product-type.application"; 209 | }; 210 | /* End PBXNativeTarget section */ 211 | 212 | /* Begin PBXProject section */ 213 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 214 | isa = PBXProject; 215 | attributes = { 216 | LastUpgradeCheck = 1210; 217 | TargetAttributes = { 218 | 00E356ED1AD99517003FC87E = { 219 | CreatedOnToolsVersion = 6.2; 220 | TestTargetID = 13B07F861A680F5B00A75B9A; 221 | }; 222 | 13B07F861A680F5B00A75B9A = { 223 | LastSwiftMigration = 1120; 224 | }; 225 | }; 226 | }; 227 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "opacitySample" */; 228 | compatibilityVersion = "Xcode 12.0"; 229 | developmentRegion = en; 230 | hasScannedForEncodings = 0; 231 | knownRegions = ( 232 | en, 233 | Base, 234 | ); 235 | mainGroup = 83CBB9F61A601CBA00E9B192; 236 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 237 | projectDirPath = ""; 238 | projectReferences = ( 239 | { 240 | ProductGroup = 70CEC8D22D43C2CE00E194FB /* Products */; 241 | ProjectRef = 70CEC8CF2D43C24A00E194FB /* opacitySample.xcodeproj */; 242 | }, 243 | ); 244 | projectRoot = ""; 245 | targets = ( 246 | 13B07F861A680F5B00A75B9A /* opacitySample */, 247 | 00E356ED1AD99517003FC87E /* opacitySampleTests */, 248 | ); 249 | }; 250 | /* End PBXProject section */ 251 | 252 | /* Begin PBXResourcesBuildPhase section */ 253 | 00E356EC1AD99517003FC87E /* Resources */ = { 254 | isa = PBXResourcesBuildPhase; 255 | buildActionMask = 2147483647; 256 | files = ( 257 | ); 258 | runOnlyForDeploymentPostprocessing = 0; 259 | }; 260 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 261 | isa = PBXResourcesBuildPhase; 262 | buildActionMask = 2147483647; 263 | files = ( 264 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 265 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 266 | E98349F4EE5E61E3D8CAC60C /* PrivacyInfo.xcprivacy in Resources */, 267 | ); 268 | runOnlyForDeploymentPostprocessing = 0; 269 | }; 270 | /* End PBXResourcesBuildPhase section */ 271 | 272 | /* Begin PBXShellScriptBuildPhase section */ 273 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 274 | isa = PBXShellScriptBuildPhase; 275 | buildActionMask = 2147483647; 276 | files = ( 277 | ); 278 | inputPaths = ( 279 | "$(SRCROOT)/.xcode.env.local", 280 | "$(SRCROOT)/.xcode.env", 281 | ); 282 | name = "Bundle React Native code and images"; 283 | outputPaths = ( 284 | ); 285 | runOnlyForDeploymentPostprocessing = 0; 286 | shellPath = /bin/sh; 287 | shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; 288 | }; 289 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { 290 | isa = PBXShellScriptBuildPhase; 291 | buildActionMask = 2147483647; 292 | files = ( 293 | ); 294 | inputFileListPaths = ( 295 | "${PODS_ROOT}/Target Support Files/Pods-opacitySample/Pods-opacitySample-frameworks-${CONFIGURATION}-input-files.xcfilelist", 296 | ); 297 | name = "[CP] Embed Pods Frameworks"; 298 | outputFileListPaths = ( 299 | "${PODS_ROOT}/Target Support Files/Pods-opacitySample/Pods-opacitySample-frameworks-${CONFIGURATION}-output-files.xcfilelist", 300 | ); 301 | runOnlyForDeploymentPostprocessing = 0; 302 | shellPath = /bin/sh; 303 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-opacitySample/Pods-opacitySample-frameworks.sh\"\n"; 304 | showEnvVarsInLog = 0; 305 | }; 306 | A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { 307 | isa = PBXShellScriptBuildPhase; 308 | buildActionMask = 2147483647; 309 | files = ( 310 | ); 311 | inputFileListPaths = ( 312 | ); 313 | inputPaths = ( 314 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 315 | "${PODS_ROOT}/Manifest.lock", 316 | ); 317 | name = "[CP] Check Pods Manifest.lock"; 318 | outputFileListPaths = ( 319 | ); 320 | outputPaths = ( 321 | "$(DERIVED_FILE_DIR)/Pods-opacitySample-opacitySampleTests-checkManifestLockResult.txt", 322 | ); 323 | runOnlyForDeploymentPostprocessing = 0; 324 | shellPath = /bin/sh; 325 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 326 | showEnvVarsInLog = 0; 327 | }; 328 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { 329 | isa = PBXShellScriptBuildPhase; 330 | buildActionMask = 2147483647; 331 | files = ( 332 | ); 333 | inputFileListPaths = ( 334 | ); 335 | inputPaths = ( 336 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 337 | "${PODS_ROOT}/Manifest.lock", 338 | ); 339 | name = "[CP] Check Pods Manifest.lock"; 340 | outputFileListPaths = ( 341 | ); 342 | outputPaths = ( 343 | "$(DERIVED_FILE_DIR)/Pods-opacitySample-checkManifestLockResult.txt", 344 | ); 345 | runOnlyForDeploymentPostprocessing = 0; 346 | shellPath = /bin/sh; 347 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 348 | showEnvVarsInLog = 0; 349 | }; 350 | C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { 351 | isa = PBXShellScriptBuildPhase; 352 | buildActionMask = 2147483647; 353 | files = ( 354 | ); 355 | inputFileListPaths = ( 356 | "${PODS_ROOT}/Target Support Files/Pods-opacitySample-opacitySampleTests/Pods-opacitySample-opacitySampleTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", 357 | ); 358 | name = "[CP] Embed Pods Frameworks"; 359 | outputFileListPaths = ( 360 | "${PODS_ROOT}/Target Support Files/Pods-opacitySample-opacitySampleTests/Pods-opacitySample-opacitySampleTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", 361 | ); 362 | runOnlyForDeploymentPostprocessing = 0; 363 | shellPath = /bin/sh; 364 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-opacitySample-opacitySampleTests/Pods-opacitySample-opacitySampleTests-frameworks.sh\"\n"; 365 | showEnvVarsInLog = 0; 366 | }; 367 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { 368 | isa = PBXShellScriptBuildPhase; 369 | buildActionMask = 2147483647; 370 | files = ( 371 | ); 372 | inputFileListPaths = ( 373 | "${PODS_ROOT}/Target Support Files/Pods-opacitySample/Pods-opacitySample-resources-${CONFIGURATION}-input-files.xcfilelist", 374 | ); 375 | name = "[CP] Copy Pods Resources"; 376 | outputFileListPaths = ( 377 | "${PODS_ROOT}/Target Support Files/Pods-opacitySample/Pods-opacitySample-resources-${CONFIGURATION}-output-files.xcfilelist", 378 | ); 379 | runOnlyForDeploymentPostprocessing = 0; 380 | shellPath = /bin/sh; 381 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-opacitySample/Pods-opacitySample-resources.sh\"\n"; 382 | showEnvVarsInLog = 0; 383 | }; 384 | F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { 385 | isa = PBXShellScriptBuildPhase; 386 | buildActionMask = 2147483647; 387 | files = ( 388 | ); 389 | inputFileListPaths = ( 390 | "${PODS_ROOT}/Target Support Files/Pods-opacitySample-opacitySampleTests/Pods-opacitySample-opacitySampleTests-resources-${CONFIGURATION}-input-files.xcfilelist", 391 | ); 392 | name = "[CP] Copy Pods Resources"; 393 | outputFileListPaths = ( 394 | "${PODS_ROOT}/Target Support Files/Pods-opacitySample-opacitySampleTests/Pods-opacitySample-opacitySampleTests-resources-${CONFIGURATION}-output-files.xcfilelist", 395 | ); 396 | runOnlyForDeploymentPostprocessing = 0; 397 | shellPath = /bin/sh; 398 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-opacitySample-opacitySampleTests/Pods-opacitySample-opacitySampleTests-resources.sh\"\n"; 399 | showEnvVarsInLog = 0; 400 | }; 401 | /* End PBXShellScriptBuildPhase section */ 402 | 403 | /* Begin PBXSourcesBuildPhase section */ 404 | 00E356EA1AD99517003FC87E /* Sources */ = { 405 | isa = PBXSourcesBuildPhase; 406 | buildActionMask = 2147483647; 407 | files = ( 408 | 00E356F31AD99517003FC87E /* opacitySampleTests.m in Sources */, 409 | ); 410 | runOnlyForDeploymentPostprocessing = 0; 411 | }; 412 | 13B07F871A680F5B00A75B9A /* Sources */ = { 413 | isa = PBXSourcesBuildPhase; 414 | buildActionMask = 2147483647; 415 | files = ( 416 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 417 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 418 | ); 419 | runOnlyForDeploymentPostprocessing = 0; 420 | }; 421 | /* End PBXSourcesBuildPhase section */ 422 | 423 | /* Begin PBXTargetDependency section */ 424 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { 425 | isa = PBXTargetDependency; 426 | target = 13B07F861A680F5B00A75B9A /* opacitySample */; 427 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; 428 | }; 429 | /* End PBXTargetDependency section */ 430 | 431 | /* Begin XCBuildConfiguration section */ 432 | 00E356F61AD99517003FC87E /* Debug */ = { 433 | isa = XCBuildConfiguration; 434 | baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-opacitySample-opacitySampleTests.debug.xcconfig */; 435 | buildSettings = { 436 | BUNDLE_LOADER = "$(TEST_HOST)"; 437 | GCC_PREPROCESSOR_DEFINITIONS = ( 438 | "DEBUG=1", 439 | "$(inherited)", 440 | ); 441 | INFOPLIST_FILE = opacitySampleTests/Info.plist; 442 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 443 | LD_RUNPATH_SEARCH_PATHS = ( 444 | "$(inherited)", 445 | "@executable_path/Frameworks", 446 | "@loader_path/Frameworks", 447 | ); 448 | OTHER_LDFLAGS = ( 449 | "-ObjC", 450 | "-lc++", 451 | "$(inherited)", 452 | ); 453 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 454 | PRODUCT_NAME = "$(TARGET_NAME)"; 455 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/opacitySample.app/opacitySample"; 456 | }; 457 | name = Debug; 458 | }; 459 | 00E356F71AD99517003FC87E /* Release */ = { 460 | isa = XCBuildConfiguration; 461 | baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-opacitySample-opacitySampleTests.release.xcconfig */; 462 | buildSettings = { 463 | BUNDLE_LOADER = "$(TEST_HOST)"; 464 | COPY_PHASE_STRIP = NO; 465 | INFOPLIST_FILE = opacitySampleTests/Info.plist; 466 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 467 | LD_RUNPATH_SEARCH_PATHS = ( 468 | "$(inherited)", 469 | "@executable_path/Frameworks", 470 | "@loader_path/Frameworks", 471 | ); 472 | OTHER_LDFLAGS = ( 473 | "-ObjC", 474 | "-lc++", 475 | "$(inherited)", 476 | ); 477 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 478 | PRODUCT_NAME = "$(TARGET_NAME)"; 479 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/opacitySample.app/opacitySample"; 480 | }; 481 | name = Release; 482 | }; 483 | 13B07F941A680F5B00A75B9A /* Debug */ = { 484 | isa = XCBuildConfiguration; 485 | baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-opacitySample.debug.xcconfig */; 486 | buildSettings = { 487 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 488 | CLANG_ENABLE_MODULES = YES; 489 | CURRENT_PROJECT_VERSION = 1; 490 | DEVELOPMENT_TEAM = 238C2RSGV6; 491 | ENABLE_BITCODE = NO; 492 | INFOPLIST_FILE = opacitySample/Info.plist; 493 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 494 | LD_RUNPATH_SEARCH_PATHS = ( 495 | "$(inherited)", 496 | "@executable_path/Frameworks", 497 | ); 498 | MARKETING_VERSION = 1.0; 499 | OTHER_LDFLAGS = ( 500 | "$(inherited)", 501 | "-ObjC", 502 | "-lc++", 503 | ); 504 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 505 | PRODUCT_NAME = opacitySample; 506 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 507 | SWIFT_VERSION = 5.0; 508 | VERSIONING_SYSTEM = "apple-generic"; 509 | }; 510 | name = Debug; 511 | }; 512 | 13B07F951A680F5B00A75B9A /* Release */ = { 513 | isa = XCBuildConfiguration; 514 | baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-opacitySample.release.xcconfig */; 515 | buildSettings = { 516 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 517 | CLANG_ENABLE_MODULES = YES; 518 | CURRENT_PROJECT_VERSION = 1; 519 | DEVELOPMENT_TEAM = 238C2RSGV6; 520 | INFOPLIST_FILE = opacitySample/Info.plist; 521 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 522 | LD_RUNPATH_SEARCH_PATHS = ( 523 | "$(inherited)", 524 | "@executable_path/Frameworks", 525 | ); 526 | MARKETING_VERSION = 1.0; 527 | OTHER_LDFLAGS = ( 528 | "$(inherited)", 529 | "-ObjC", 530 | "-lc++", 531 | ); 532 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 533 | PRODUCT_NAME = opacitySample; 534 | SWIFT_VERSION = 5.0; 535 | VERSIONING_SYSTEM = "apple-generic"; 536 | }; 537 | name = Release; 538 | }; 539 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 540 | isa = XCBuildConfiguration; 541 | buildSettings = { 542 | ALWAYS_SEARCH_USER_PATHS = NO; 543 | CC = ""; 544 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 545 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 546 | CLANG_CXX_LIBRARY = "libc++"; 547 | CLANG_ENABLE_MODULES = YES; 548 | CLANG_ENABLE_OBJC_ARC = YES; 549 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 550 | CLANG_WARN_BOOL_CONVERSION = YES; 551 | CLANG_WARN_COMMA = YES; 552 | CLANG_WARN_CONSTANT_CONVERSION = YES; 553 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 554 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 555 | CLANG_WARN_EMPTY_BODY = YES; 556 | CLANG_WARN_ENUM_CONVERSION = YES; 557 | CLANG_WARN_INFINITE_RECURSION = YES; 558 | CLANG_WARN_INT_CONVERSION = YES; 559 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 560 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 561 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 562 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 563 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 564 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 565 | CLANG_WARN_STRICT_PROTOTYPES = YES; 566 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 567 | CLANG_WARN_UNREACHABLE_CODE = YES; 568 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 569 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 570 | COPY_PHASE_STRIP = NO; 571 | CXX = ""; 572 | ENABLE_STRICT_OBJC_MSGSEND = YES; 573 | ENABLE_TESTABILITY = YES; 574 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; 575 | GCC_C_LANGUAGE_STANDARD = gnu99; 576 | GCC_DYNAMIC_NO_PIC = NO; 577 | GCC_NO_COMMON_BLOCKS = YES; 578 | GCC_OPTIMIZATION_LEVEL = 0; 579 | GCC_PREPROCESSOR_DEFINITIONS = ( 580 | "DEBUG=1", 581 | "$(inherited)", 582 | ); 583 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 584 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 585 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 586 | GCC_WARN_UNDECLARED_SELECTOR = YES; 587 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 588 | GCC_WARN_UNUSED_FUNCTION = YES; 589 | GCC_WARN_UNUSED_VARIABLE = YES; 590 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 591 | LD = ""; 592 | LDPLUSPLUS = ""; 593 | LD_RUNPATH_SEARCH_PATHS = ( 594 | /usr/lib/swift, 595 | "$(inherited)", 596 | ); 597 | LIBRARY_SEARCH_PATHS = ( 598 | "\"$(SDKROOT)/usr/lib/swift\"", 599 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 600 | "\"$(inherited)\"", 601 | ); 602 | MTL_ENABLE_DEBUG_INFO = YES; 603 | ONLY_ACTIVE_ARCH = YES; 604 | OTHER_CPLUSPLUSFLAGS = ( 605 | "$(OTHER_CFLAGS)", 606 | "-DFOLLY_NO_CONFIG", 607 | "-DFOLLY_MOBILE=1", 608 | "-DFOLLY_USE_LIBCPP=1", 609 | "-DFOLLY_CFG_NO_COROUTINES=1", 610 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 611 | ); 612 | OTHER_LDFLAGS = ( 613 | "$(inherited)", 614 | " ", 615 | ); 616 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 617 | SDKROOT = iphoneos; 618 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; 619 | USE_HERMES = true; 620 | }; 621 | name = Debug; 622 | }; 623 | 83CBBA211A601CBA00E9B192 /* Release */ = { 624 | isa = XCBuildConfiguration; 625 | buildSettings = { 626 | ALWAYS_SEARCH_USER_PATHS = NO; 627 | CC = ""; 628 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 629 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 630 | CLANG_CXX_LIBRARY = "libc++"; 631 | CLANG_ENABLE_MODULES = YES; 632 | CLANG_ENABLE_OBJC_ARC = YES; 633 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 634 | CLANG_WARN_BOOL_CONVERSION = YES; 635 | CLANG_WARN_COMMA = YES; 636 | CLANG_WARN_CONSTANT_CONVERSION = YES; 637 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 638 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 639 | CLANG_WARN_EMPTY_BODY = YES; 640 | CLANG_WARN_ENUM_CONVERSION = YES; 641 | CLANG_WARN_INFINITE_RECURSION = YES; 642 | CLANG_WARN_INT_CONVERSION = YES; 643 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 644 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 645 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 646 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 647 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 648 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 649 | CLANG_WARN_STRICT_PROTOTYPES = YES; 650 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 651 | CLANG_WARN_UNREACHABLE_CODE = YES; 652 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 653 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 654 | COPY_PHASE_STRIP = YES; 655 | CXX = ""; 656 | ENABLE_NS_ASSERTIONS = NO; 657 | ENABLE_STRICT_OBJC_MSGSEND = YES; 658 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; 659 | GCC_C_LANGUAGE_STANDARD = gnu99; 660 | GCC_NO_COMMON_BLOCKS = YES; 661 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 662 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 663 | GCC_WARN_UNDECLARED_SELECTOR = YES; 664 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 665 | GCC_WARN_UNUSED_FUNCTION = YES; 666 | GCC_WARN_UNUSED_VARIABLE = YES; 667 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 668 | LD = ""; 669 | LDPLUSPLUS = ""; 670 | LD_RUNPATH_SEARCH_PATHS = ( 671 | /usr/lib/swift, 672 | "$(inherited)", 673 | ); 674 | LIBRARY_SEARCH_PATHS = ( 675 | "\"$(SDKROOT)/usr/lib/swift\"", 676 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 677 | "\"$(inherited)\"", 678 | ); 679 | MTL_ENABLE_DEBUG_INFO = NO; 680 | OTHER_CPLUSPLUSFLAGS = ( 681 | "$(OTHER_CFLAGS)", 682 | "-DFOLLY_NO_CONFIG", 683 | "-DFOLLY_MOBILE=1", 684 | "-DFOLLY_USE_LIBCPP=1", 685 | "-DFOLLY_CFG_NO_COROUTINES=1", 686 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 687 | ); 688 | OTHER_LDFLAGS = ( 689 | "$(inherited)", 690 | " ", 691 | ); 692 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 693 | SDKROOT = iphoneos; 694 | USE_HERMES = true; 695 | VALIDATE_PRODUCT = YES; 696 | }; 697 | name = Release; 698 | }; 699 | /* End XCBuildConfiguration section */ 700 | 701 | /* Begin XCConfigurationList section */ 702 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "opacitySampleTests" */ = { 703 | isa = XCConfigurationList; 704 | buildConfigurations = ( 705 | 00E356F61AD99517003FC87E /* Debug */, 706 | 00E356F71AD99517003FC87E /* Release */, 707 | ); 708 | defaultConfigurationIsVisible = 0; 709 | defaultConfigurationName = Release; 710 | }; 711 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "opacitySample" */ = { 712 | isa = XCConfigurationList; 713 | buildConfigurations = ( 714 | 13B07F941A680F5B00A75B9A /* Debug */, 715 | 13B07F951A680F5B00A75B9A /* Release */, 716 | ); 717 | defaultConfigurationIsVisible = 0; 718 | defaultConfigurationName = Release; 719 | }; 720 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "opacitySample" */ = { 721 | isa = XCConfigurationList; 722 | buildConfigurations = ( 723 | 83CBBA201A601CBA00E9B192 /* Debug */, 724 | 83CBBA211A601CBA00E9B192 /* Release */, 725 | ); 726 | defaultConfigurationIsVisible = 0; 727 | defaultConfigurationName = Release; 728 | }; 729 | /* End XCConfigurationList section */ 730 | }; 731 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 732 | } 733 | -------------------------------------------------------------------------------- /ios/opacitySample.xcodeproj/xcshareddata/xcschemes/opacitySample.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 53 | 55 | 61 | 62 | 63 | 64 | 70 | 72 | 78 | 79 | 80 | 81 | 83 | 84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /ios/opacitySample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/opacitySample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/opacitySample/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : RCTAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /ios/opacitySample/AppDelegate.mm: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | #import 4 | 5 | @implementation AppDelegate 6 | 7 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 8 | { 9 | self.moduleName = @"opacitySample"; 10 | // You can add your custom initial props in the dictionary below. 11 | // They will be passed down to the ViewController used by React Native. 12 | self.initialProps = @{}; 13 | 14 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 15 | } 16 | 17 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge 18 | { 19 | return [self bundleURL]; 20 | } 21 | 22 | - (NSURL *)bundleURL 23 | { 24 | #if DEBUG 25 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; 26 | #else 27 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 28 | #endif 29 | } 30 | 31 | @end -------------------------------------------------------------------------------- /ios/opacitySample/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ios-marketing", 45 | "scale" : "1x", 46 | "size" : "1024x1024" 47 | } 48 | ], 49 | "info" : { 50 | "author" : "xcode", 51 | "version" : 1 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /ios/opacitySample/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ios/opacitySample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | opacitySample 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 | $(MARKETING_VERSION) 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | $(CURRENT_PROJECT_VERSION) 25 | LSRequiresIPhoneOS 26 | 27 | NSAppTransportSecurity 28 | 29 | 30 | NSAllowsArbitraryLoads 31 | 32 | NSAllowsLocalNetworking 33 | 34 | 35 | NSLocationWhenInUseUsageDescription 36 | 37 | UILaunchStoryboardName 38 | LaunchScreen 39 | UIRequiredDeviceCapabilities 40 | 41 | arm64 42 | 43 | UISupportedInterfaceOrientations 44 | 45 | UIInterfaceOrientationPortrait 46 | UIInterfaceOrientationLandscapeLeft 47 | UIInterfaceOrientationLandscapeRight 48 | 49 | UIViewControllerBasedStatusBarAppearance 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /ios/opacitySample/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /ios/opacitySample/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryFileTimestamp 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | C617.1 13 | 14 | 15 | 16 | NSPrivacyAccessedAPIType 17 | NSPrivacyAccessedAPICategoryUserDefaults 18 | NSPrivacyAccessedAPITypeReasons 19 | 20 | CA92.1 21 | 22 | 23 | 24 | NSPrivacyAccessedAPIType 25 | NSPrivacyAccessedAPICategorySystemBootTime 26 | NSPrivacyAccessedAPITypeReasons 27 | 28 | 35F9.1 29 | 30 | 31 | 32 | NSPrivacyCollectedDataTypes 33 | 34 | NSPrivacyTracking 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ios/opacitySample/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | @autoreleasepool { 8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ios/opacitySampleTests/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/opacitySampleTests/opacitySampleTests.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | #import 5 | #import 6 | 7 | #define TIMEOUT_SECONDS 600 8 | #define TEXT_TO_LOOK_FOR @"Welcome to React" 9 | 10 | @interface opacitySampleTests : XCTestCase 11 | 12 | @end 13 | 14 | @implementation opacitySampleTests 15 | 16 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test 17 | { 18 | if (test(view)) { 19 | return YES; 20 | } 21 | for (UIView *subview in [view subviews]) { 22 | if ([self findSubviewInView:subview matching:test]) { 23 | return YES; 24 | } 25 | } 26 | return NO; 27 | } 28 | 29 | - (void)testRendersWelcomeScreen 30 | { 31 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; 32 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; 33 | BOOL foundElement = NO; 34 | 35 | __block NSString *redboxError = nil; 36 | #ifdef DEBUG 37 | RCTSetLogFunction( 38 | ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { 39 | if (level >= RCTLogLevelError) { 40 | redboxError = message; 41 | } 42 | }); 43 | #endif 44 | 45 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { 46 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 47 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 48 | 49 | foundElement = [self findSubviewInView:vc.view 50 | matching:^BOOL(UIView *view) { 51 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { 52 | return YES; 53 | } 54 | return NO; 55 | }]; 56 | } 57 | 58 | #ifdef DEBUG 59 | RCTSetLogFunction(RCTDefaultLogFunction); 60 | #endif 61 | 62 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); 63 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); 64 | } 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); 2 | 3 | /** 4 | * Metro configuration 5 | * https://reactnative.dev/docs/metro 6 | * 7 | * @type {import('metro-config').MetroConfig} 8 | */ 9 | const config = {}; 10 | 11 | module.exports = mergeConfig(getDefaultConfig(__dirname), config); 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "opacitySample", 3 | "version": "0.0.1", 4 | "private": true, 5 | "author": "Opacity Labs", 6 | "license": "MIT", 7 | "homepage": "https://opacity.io", 8 | "description": "Opacity.", 9 | "scripts": { 10 | "android": "react-native run-android", 11 | "ios": "react-native run-ios --simulator='iPhone 16 Pro'", 12 | "lint": "eslint .", 13 | "start": "react-native start", 14 | "test": "jest", 15 | "pods": "cd ios && rm Podfile.lock && rm -rf Pods && pod install && rm .xcode.env.local", 16 | "nuke": "watchman watch-del-all && rm -rf ios/build && rm -rf node_modules/ && rm -rf ./ios/Pods && yarn && yarn pods" 17 | }, 18 | "dependencies": { 19 | "@opacity-labs/react-native-opacity": "^6.4.0", 20 | "@react-navigation/native": "^6.1.18", 21 | "@react-navigation/native-stack": "^6.11.0", 22 | "@reduxjs/toolkit": "^2.2.7", 23 | "@types/lodash": "^4.17.7", 24 | "add": "^2.0.6", 25 | "lodash": "^4.17.21", 26 | "react": "18.3.1", 27 | "react-native": "0.76.6", 28 | "react-native-animated-spinkit": "^1.5.2", 29 | "react-native-json-tree": "^1.3.0", 30 | "react-native-safe-area-context": "^4.10.9", 31 | "react-native-screens": "^3.34.0", 32 | "react-native-uuid": "^2.0.2", 33 | "react-redux": "^9.1.2", 34 | "twrnc": "^4.5.1" 35 | }, 36 | "devDependencies": { 37 | "@babel/core": "^7.25.2", 38 | "@babel/preset-env": "^7.25.3", 39 | "@babel/runtime": "^7.25.0", 40 | "@react-native-community/cli": "15.0.1", 41 | "@react-native-community/cli-platform-android": "15.0.1", 42 | "@react-native-community/cli-platform-ios": "15.0.1", 43 | "@react-native/babel-preset": "0.76.6", 44 | "@react-native/eslint-config": "0.76.6", 45 | "@react-native/metro-config": "0.76.6", 46 | "@react-native/typescript-config": "0.76.6", 47 | "@types/react": "^18.2.6", 48 | "@types/react-test-renderer": "^18.0.0", 49 | "babel-jest": "^29.6.3", 50 | "eslint": "^8.19.0", 51 | "jest": "^29.6.3", 52 | "prettier": "2.8.8", 53 | "react-native-dotenv": "^3.4.11", 54 | "react-test-renderer": "18.3.1", 55 | "typescript": "5.0.4" 56 | }, 57 | "engines": { 58 | "node": ">=18" 59 | }, 60 | "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610" 61 | } 62 | -------------------------------------------------------------------------------- /react-native.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | project: { 3 | android: { 4 | packageName: 'com.opacitysample', 5 | }, 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /src/components/BackButtonHeader.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {View, TouchableOpacity, Text} from 'react-native'; 3 | import {useNavigation} from '@react-navigation/native'; 4 | import tw from 'twrnc'; 5 | 6 | export const BackButtonHeader = () => { 7 | const {goBack} = useNavigation(); 8 | 9 | return ( 10 | 11 | 12 | 13 | Back 14 | 15 | 16 | 17 | ); 18 | }; -------------------------------------------------------------------------------- /src/constants/api.ts: -------------------------------------------------------------------------------- 1 | export const OPACITY_API_KEY = ''; 2 | export const OPACITY_PLATFORMS_URL = 3 | 'https://api.opacity.network/platforms?all=true'; 4 | -------------------------------------------------------------------------------- /src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export * from './api'; 2 | -------------------------------------------------------------------------------- /src/hooks/store.ts: -------------------------------------------------------------------------------- 1 | import {useDispatch, useSelector, TypedUseSelectorHook} from 'react-redux'; 2 | import type {RootState, AppDispatch} from '../store'; 3 | 4 | export const useAppDispatch: () => AppDispatch = useDispatch; 5 | export const useAppSelector: TypedUseSelectorHook = useSelector; -------------------------------------------------------------------------------- /src/navigation/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {NavigationContainer} from '@react-navigation/native'; 3 | import {createNativeStackNavigator} from '@react-navigation/native-stack'; 4 | import {RedditLogin} from '../screens/Reddit'; 5 | import {AccountDetailCard} from '../screens/AccountDetails/AccountDetailCard'; 6 | import {Start} from '../screens/Start/Start'; 7 | import {useAppSelector} from '../hooks/store'; 8 | import {hasApiKeySelector} from '../state/selectors'; 9 | import {Platforms} from '../screens/Platforms'; 10 | import {Resources} from '../screens/Resources'; 11 | import {Details} from '../screens/Details'; 12 | 13 | export type MainStackParams = { 14 | RedditLogin: undefined; 15 | AccountDetails: undefined; 16 | Start: undefined; 17 | Platforms: undefined; 18 | Resources: { 19 | platformId: string; 20 | }; 21 | Details: { 22 | platformId: string; 23 | resourceId: string; 24 | payload: any; 25 | }; 26 | }; 27 | 28 | const Stack = createNativeStackNavigator(); 29 | 30 | export const Navigation = () => { 31 | const hasApiKey = useAppSelector(hasApiKeySelector); 32 | 33 | return ( 34 | 35 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | ); 49 | }; 50 | -------------------------------------------------------------------------------- /src/screens/AccountDetails/AccountDetailCard.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {Text, View} from 'react-native'; 3 | import { SafeAreaView } from 'react-native-safe-area-context'; 4 | import tw from 'twrnc'; 5 | import { useAppSelector } from '../../hooks/store'; 6 | import { connectionDataSelector } from '../../state/selectors'; 7 | import { BackButtonHeader } from '../../components/BackButtonHeader'; 8 | 9 | export const AccountDetailCard = () => { 10 | const connectionData = useAppSelector(connectionDataSelector); 11 | 12 | return ( 13 | 14 | 15 | 17 | 18 | 19 | {connectionData?.username} 20 | 21 | 22 | {connectionData?.email} 23 | 24 | 25 | 26 | 27 | ); 28 | }; -------------------------------------------------------------------------------- /src/screens/Details/Details.tsx: -------------------------------------------------------------------------------- 1 | import {NavigationProp, RouteProp} from '@react-navigation/native'; 2 | import React from 'react'; 3 | import { 4 | Image, 5 | Pressable, 6 | SafeAreaView, 7 | ScrollView, 8 | Text, 9 | View, 10 | } from 'react-native'; 11 | import tw from 'twrnc'; 12 | import {MainStackParams} from '../../navigation'; 13 | import {useAppSelector} from '../../hooks/store'; 14 | import {isEqual, partialRight} from 'lodash'; 15 | import {platformSelector, resourceSelector} from '../../state/selectors'; 16 | import JSONTree from 'react-native-json-tree'; 17 | 18 | const theme = { 19 | scheme: 'Gray', 20 | author: 'Claude', 21 | base00: '#06091C', 22 | base01: '#585858', 23 | base02: '#626262', 24 | base03: '#6C6C6C', 25 | base04: '#7A7A7A', 26 | base05: '#8E8E8E', 27 | base06: '#A2A2A2', 28 | base07: '#BABABA', 29 | base08: '#D0D0D0', 30 | base09: '#C2C2C2', 31 | base0A: '#D6D6D6', 32 | base0B: '#E0E0E0', 33 | base0C: '#EAEAEA', 34 | base0D: '#F0F0F0', 35 | base0E: '#F6F6F6', 36 | base0F: '#FFFFFF', 37 | }; 38 | 39 | interface Props { 40 | navigation: NavigationProp; 41 | route: RouteProp; 42 | } 43 | 44 | export const Details = ({navigation, route}: Props) => { 45 | const {platformId, resourceId, payload} = route.params; 46 | 47 | const platform = useAppSelector( 48 | partialRight(platformSelector, platformId), 49 | isEqual, 50 | ); 51 | const resource = useAppSelector( 52 | partialRight(resourceSelector, platformId, resourceId), 53 | isEqual, 54 | ); 55 | 56 | if (!platform || !resource) { 57 | return null; 58 | } 59 | 60 | return ( 61 | 62 | 63 | 64 | 65 | 68 | 72 | 73 | 74 | 75 | Details 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | {platform.name} 84 | 85 | 86 | 87 | 88 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | ); 99 | }; 100 | -------------------------------------------------------------------------------- /src/screens/Details/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Details'; 2 | -------------------------------------------------------------------------------- /src/screens/Platforms/Platforms.tsx: -------------------------------------------------------------------------------- 1 | import React, {useEffect} from 'react'; 2 | import {init, OpacityEnvironment} from '@opacity-labs/react-native-opacity'; 3 | import {useAppDispatch, useAppSelector} from '../../hooks/store'; 4 | import {apiKeySelector, platformsSelector} from '../../state/selectors'; 5 | import {OPACITY_PLATFORMS_URL} from '../../constants'; 6 | import {Image, Pressable, ScrollView, Text, View} from 'react-native'; 7 | import tw from 'twrnc'; 8 | import {SafeAreaView} from 'react-native-safe-area-context'; 9 | import {sortBy} from 'lodash'; 10 | import {setPlatforms} from '../../state/reducer'; 11 | import {NavigationProp} from '@react-navigation/native'; 12 | import {MainStackParams} from '../../navigation'; 13 | 14 | interface Props { 15 | navigation: NavigationProp; 16 | } 17 | 18 | export const Platforms = ({navigation}: Props) => { 19 | const dispatch = useAppDispatch(); 20 | const apiKey = useAppSelector(apiKeySelector); 21 | const platforms = useAppSelector(platformsSelector); 22 | 23 | useEffect(() => { 24 | if (!apiKey) { 25 | console.error('Missing API key'); 26 | return; 27 | } 28 | 29 | init({ 30 | apiKey, 31 | environment: OpacityEnvironment.Production, 32 | shouldShowErrorsInWebView: true, 33 | }).catch(() => { 34 | console.error(`Failed to Initialize SDK`); 35 | }); 36 | }, [apiKey]); 37 | 38 | useEffect(() => { 39 | (async () => { 40 | const sessionIdResponse = await fetch( 41 | `https://api.opacity.network/sessions`, 42 | { 43 | method: 'POST', 44 | headers: { 45 | 'Authorization-Provider': 'opacity', 46 | Authorization: `Bearer ${apiKey}`, 47 | 'Content-Type': 'application/json', 48 | }, 49 | }, 50 | ); 51 | 52 | const sessionId = await sessionIdResponse.json(); 53 | 54 | const response = await fetch( 55 | `https://api.opacity.network/platforms?all=true`, 56 | { 57 | method: 'GET', 58 | headers: { 59 | 'Authorization-Provider': 'opacity', 60 | Authorization: `Bearer ${apiKey}`, 61 | 'Content-Type': 'application/json', 62 | 'session-id': sessionId?.id, 63 | }, 64 | }, 65 | ); 66 | 67 | if (!response.ok) { 68 | throw new Error('GET platforms failed'); 69 | } 70 | 71 | dispatch(setPlatforms(sortBy(await response.json(), 'name'))); 72 | })(); 73 | }, [apiKey]); 74 | 75 | return ( 76 | 77 | 78 | 82 | 83 | Available Platforms 84 | 85 | 86 | You can bridge any account with Opacity using your login credentials. 87 | 88 | 89 | 90 | 91 | {platforms.map(platform => ( 92 | 96 | navigation.navigate('Resources', {platformId: platform.id}) 97 | }> 98 | 99 | 100 | 104 | 105 | 106 | {platform.name} 107 | 108 | 109 | {platform.description} 110 | 111 | 112 | 113 | 117 | 118 | 119 | ))} 120 | 121 | 122 | 123 | 124 | ); 125 | }; 126 | -------------------------------------------------------------------------------- /src/screens/Platforms/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Platforms'; 2 | -------------------------------------------------------------------------------- /src/screens/Reddit/RedditLogin.tsx: -------------------------------------------------------------------------------- 1 | import React, {useEffect} from 'react'; 2 | import { 3 | SafeAreaView, 4 | Text, 5 | View, 6 | FlatList, 7 | TouchableOpacity, 8 | useWindowDimensions, 9 | Image, 10 | } from 'react-native'; 11 | import tw from 'twrnc'; 12 | import {NavigationProp, useNavigation} from '@react-navigation/native'; 13 | import {getResource, init} from '@opacity-labs/react-native-opacity'; 14 | import {useDispatch} from 'react-redux'; 15 | import {MOCK_CONNECTOR_LIST} from '../../utils/mockData'; 16 | import {setConnectionData} from '../../state/reducer'; 17 | import {MainStackParams} from '../../navigation'; 18 | import {apiKeySelector} from '../../state/selectors'; 19 | import {useAppSelector} from '../../hooks/store'; 20 | 21 | export const RedditLogin = () => { 22 | const {height} = useWindowDimensions(); 23 | const navigation = 24 | useNavigation>(); 25 | const apiKey = useAppSelector(apiKeySelector); 26 | const dispatch = useDispatch(); 27 | 28 | // @TODO: change reddit login to abstract the list and fetch the actual workflow id 29 | 30 | useEffect(() => { 31 | console.log('apiKey', apiKey); 32 | if (!apiKey) return; 33 | 34 | init(apiKey, false).catch(() => { 35 | console.error(`FAILED TO INITIALIZE SDK`); 36 | }); 37 | }, []); 38 | 39 | const handleNavigation = async () => { 40 | try { 41 | // trigger sdk 42 | console.log('starting reddit login'); 43 | const result = await getResource('reddit:read:account'); 44 | 45 | console.log('finished reddit login'); 46 | 47 | const parsedResult = JSON.parse(result.data); 48 | console.log({parsedResult}); 49 | // dispatch to global state 50 | dispatch( 51 | setConnectionData({ 52 | email: parsedResult.data.identity.email, 53 | username: parsedResult.data.identity.redditor.name, 54 | }), 55 | ); 56 | navigation.navigate('AccountDetails'); 57 | } catch (error) { 58 | console.log('Reddit account error:' + error); 59 | } 60 | }; 61 | 62 | const connectorList = MOCK_CONNECTOR_LIST; 63 | 64 | return ( 65 | 66 | 67 | 68 | Add a new account 69 | 70 | 71 | You can add any account to Opacity using your login credentials. 72 | 73 | ( 77 | 80 | 81 | 82 | 83 | 84 | 85 | {item.name} 86 | 87 | 88 | {item.slogan} 89 | 90 | 91 | 92 | 96 | 97 | 98 | )} 99 | snapToAlignment="start" 100 | decelerationRate={'fast'} 101 | keyExtractor={item => item.id} 102 | snapToInterval={height} 103 | /> 104 | 105 | 106 | ); 107 | }; 108 | -------------------------------------------------------------------------------- /src/screens/Reddit/index.ts: -------------------------------------------------------------------------------- 1 | export * from './RedditLogin'; 2 | -------------------------------------------------------------------------------- /src/screens/Resources/Resources.tsx: -------------------------------------------------------------------------------- 1 | import {NavigationProp, RouteProp} from '@react-navigation/native'; 2 | import React, {useEffect, useState} from 'react'; 3 | import {MainStackParams} from '../../navigation'; 4 | import {useAppSelector} from '../../hooks/store'; 5 | import {delay, isEqual, partialRight, sortBy} from 'lodash'; 6 | import {platformSelector} from '../../state/selectors'; 7 | import {Image, Pressable, ScrollView, Text, View} from 'react-native'; 8 | import tw from 'twrnc'; 9 | import {SafeAreaView} from 'react-native-safe-area-context'; 10 | import {get} from '@opacity-labs/react-native-opacity'; 11 | import {Swing} from 'react-native-animated-spinkit'; 12 | import {getArgs} from '../../utils/helpers'; 13 | 14 | interface Props { 15 | navigation: NavigationProp; 16 | route: RouteProp; 17 | } 18 | 19 | export const Resources = ({navigation, route}: Props) => { 20 | const {platformId} = route.params; 21 | const platform = useAppSelector( 22 | partialRight(platformSelector, platformId), 23 | isEqual, 24 | ); 25 | 26 | const [isLoading, setIsLoading] = useState(false); 27 | const [isError, setIsError] = useState(false); 28 | 29 | const handleGetResources = async (resource: Resource) => { 30 | try { 31 | setIsLoading(true); 32 | const args = getArgs(resource.alias); 33 | 34 | // Add or edit second argument needed for flows 35 | 36 | const result = await get(resource.alias as any, args); 37 | 38 | // @TODO: add validation check 39 | 40 | navigation.navigate('Details', { 41 | platformId, 42 | resourceId: resource.id, 43 | payload: result, 44 | }); 45 | } catch (error) { 46 | console.error(error); 47 | setIsError(true); 48 | } finally { 49 | setIsLoading(false); 50 | } 51 | }; 52 | 53 | useEffect(() => { 54 | if (platform) return; 55 | navigation.goBack(); 56 | }, [platform]); 57 | 58 | useEffect(() => { 59 | if (!isError) return; 60 | 61 | delay(() => setIsError(false), 3 * 1000); 62 | }, [isError]); 63 | 64 | if (!platform) { 65 | return null; 66 | } 67 | 68 | return ( 69 | <> 70 | 71 | 72 | 73 | 76 | 80 | 81 | 82 | 83 | 84 | 85 | {platform.name} 86 | 87 | 88 | 89 | 90 | Sample resources 91 | 92 | 93 | Select a resource to view a sample response. You'll need to log 94 | into the platform to view the response. 95 | 96 | 97 | 98 | 99 | {sortBy(platform.flows, 'name').map(flow => ( 100 | handleGetResources(flow)} 103 | style={tw`flex-row items-center justify-between`}> 104 | 105 | {flow.name} 106 | 107 | {flow.alias} 108 | 109 | 110 | 111 | 115 | 116 | ))} 117 | 118 | 119 | 120 | 121 | 122 | {isLoading ? ( 123 | 125 | 126 | 127 | ) : null} 128 | 129 | {isError ? ( 130 | 132 | setIsError(false)}> 135 | 139 | 140 | An error occurred. Unable to fetch data. 141 | 142 | 143 | 144 | ) : null} 145 | 146 | ); 147 | }; 148 | -------------------------------------------------------------------------------- /src/screens/Resources/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Resources'; 2 | -------------------------------------------------------------------------------- /src/screens/Start/Start.tsx: -------------------------------------------------------------------------------- 1 | import React, {useState} from 'react'; 2 | import { 3 | TextInput, 4 | TouchableOpacity, 5 | View, 6 | Text, 7 | SafeAreaView, 8 | ImageBackground, 9 | Image, 10 | Pressable, 11 | } from 'react-native'; 12 | import tw from 'twrnc'; 13 | import {NavigationProp, useNavigation} from '@react-navigation/native'; 14 | import {MainStackParams} from '../../navigation'; 15 | import {useAppDispatch} from '../../hooks/store'; 16 | import {setApiKeyState} from '../../state/reducer'; 17 | 18 | export const Start = () => { 19 | const navigation = 20 | useNavigation>(); 21 | const [apiKey, setApiKey] = useState(''); 22 | const dispatch = useAppDispatch(); 23 | 24 | const handleNavigation = async () => { 25 | dispatch(setApiKeyState(apiKey)); 26 | navigation.navigate('Platforms'); 27 | }; 28 | 29 | return ( 30 | 33 | 34 | 35 | 39 | 40 | Lorem ipsum 41 | 42 | 43 | 45 | 52 | 53 | 60 | 61 | Next 62 | 63 | 64 | 65 | 66 | 67 | This sample app requires an API key.{' '} 68 | 69 | Get one here 70 | 71 | 72 | 73 | 74 | 75 | 76 | ); 77 | }; 78 | -------------------------------------------------------------------------------- /src/state/reducer.ts: -------------------------------------------------------------------------------- 1 | import {PayloadAction, createSlice} from '@reduxjs/toolkit'; 2 | import {OPACITY_API_KEY} from '../constants'; 3 | 4 | export interface ConnectionDataState { 5 | apiKey: string; 6 | platforms: Platforms; 7 | } 8 | 9 | const initialState: ConnectionDataState = { 10 | apiKey: OPACITY_API_KEY, 11 | platforms: [], 12 | }; 13 | 14 | export const connectionDataSlice = createSlice({ 15 | name: 'connectionData', 16 | initialState, 17 | reducers: { 18 | setApiKeyState(state, action: PayloadAction) { 19 | state.apiKey = action.payload; 20 | }, 21 | setPlatforms(state, action: PayloadAction) { 22 | state.platforms = action.payload; 23 | }, 24 | }, 25 | }); 26 | 27 | // Action creators are generated for each case reducer function 28 | export const {setApiKeyState, setPlatforms} = connectionDataSlice.actions; 29 | 30 | export default connectionDataSlice.reducer; 31 | -------------------------------------------------------------------------------- /src/state/selectors.ts: -------------------------------------------------------------------------------- 1 | import {RootState} from '../store'; 2 | 3 | export const apiKeySelector = (state: RootState) => state.connectionData.apiKey; 4 | export const hasApiKeySelector = (state: RootState) => 5 | !!state.connectionData.apiKey; 6 | export const platformsSelector = (state: RootState) => 7 | state.connectionData.platforms; 8 | 9 | export const platformSelector = (state: RootState, id: string) => 10 | state.connectionData.platforms.find(platform => platform.id === id); 11 | export const resourceSelector = ( 12 | state: RootState, 13 | platformId: string, 14 | resourceId: string, 15 | ) => 16 | state.connectionData.platforms 17 | .find(platform => platform.id === platformId) 18 | ?.flows.find(resource => resource.id === resourceId); 19 | -------------------------------------------------------------------------------- /src/store.ts: -------------------------------------------------------------------------------- 1 | import { configureStore } from '@reduxjs/toolkit' 2 | import connectionDataReducer from './state/reducer'; 3 | 4 | export type RootState = ReturnType; 5 | 6 | export const store = configureStore({ 7 | reducer: { 8 | connectionData: connectionDataReducer 9 | } 10 | }); 11 | 12 | export type AppDispatch = typeof store.dispatch; 13 | export type AppStore = typeof store; -------------------------------------------------------------------------------- /src/types/platforms.d.ts: -------------------------------------------------------------------------------- 1 | interface Resource { 2 | id: string; 3 | alias: string; 4 | name: string; 5 | description: string; 6 | minSDKVersion: string; 7 | retrieves: string[]; 8 | enabled: boolean; 9 | } 10 | 11 | interface Platform { 12 | id: string; 13 | name: string; 14 | description: string; 15 | logoUrl: string; 16 | resources: Resource[]; 17 | } 18 | 19 | type Platforms = Platform[]; 20 | -------------------------------------------------------------------------------- /src/utils/helpers.ts: -------------------------------------------------------------------------------- 1 | const UBER_FLOW_COORD_REQUIRED = [ 2 | 'uber_rider:fare_estimate', 3 | 'uber_rider:ucomponent_api_checkout', 4 | 'uber_rider:status', 5 | ]; 6 | 7 | export const getArgs = (alias: string) => { 8 | if (UBER_FLOW_COORD_REQUIRED.includes(alias)) { 9 | return { 10 | pickup_latitude: 40.33276382356346, 11 | pickup_longitude: -3.8580982818840535, 12 | destination_latitude: 40.36560098237766, 13 | destination_longitude: -3.5985462938409354, 14 | }; 15 | } 16 | return null; 17 | }; 18 | -------------------------------------------------------------------------------- /src/utils/mockData.ts: -------------------------------------------------------------------------------- 1 | export type SuperConnectorItem = { 2 | id: string; 3 | name: string; 4 | icon: HTMLImageElement; 5 | slogan: string; 6 | }; 7 | 8 | export const MOCK_CONNECTOR_LIST = [ 9 | { 10 | id: '1', 11 | name: 'Reddit', 12 | icon: require('../../assets/icons/reddit-icon.png'), 13 | slogan: 'Dive into anything', 14 | }, 15 | ] as SuperConnectorItem[]; 16 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@react-native/typescript-config/tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react", 5 | "moduleResolution": "node" 6 | } 7 | } --------------------------------------------------------------------------------