├── .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 | }
--------------------------------------------------------------------------------