create-react-native-library 0.38.3 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/index.js +9 -26
  2. package/lib/index.js.map +1 -1
  3. package/lib/utils/generateExampleApp.js +11 -4
  4. package/lib/utils/generateExampleApp.js.map +1 -1
  5. package/lib/utils/sortObjectKeys.js +13 -0
  6. package/lib/utils/sortObjectKeys.js.map +1 -0
  7. package/package.json +2 -2
  8. package/templates/common/$package.json +1 -1
  9. package/templates/common/babel.config.js +3 -1
  10. package/templates/common/lefthook.yml +1 -1
  11. package/templates/common/tsconfig.build.json +1 -1
  12. package/templates/common/tsconfig.json +1 -0
  13. package/templates/common-example/example/metro.config.js +8 -35
  14. package/templates/expo-library/example/babel.config.js +10 -16
  15. package/templates/expo-library/example/metro.config.js +7 -32
  16. package/templates/native-common/android/build.gradle +0 -10
  17. package/templates/native-common-example/example/babel.config.js +10 -15
  18. package/templates/native-common-example/example/react-native.config.js +2 -2
  19. package/templates/java-library-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java +0 -43
  20. package/templates/java-library-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java +0 -28
  21. package/templates/java-library-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java +0 -40
  22. package/templates/java-library-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java +0 -45
  23. package/templates/java-library-mixed/android/src/newarch/{%- project.name %}Spec.java +0 -9
  24. package/templates/java-library-mixed/android/src/oldarch/{%- project.name %}Spec.java +0 -13
  25. package/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java +0 -40
  26. package/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java +0 -44
  27. package/templates/java-view-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java +0 -22
  28. package/templates/java-view-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewManager.java +0 -31
  29. package/templates/java-view-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}View.java +0 -24
  30. package/templates/java-view-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewManager.java +0 -31
  31. package/templates/java-view-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewPackage.java +0 -25
  32. package/templates/java-view-mixed/android/src/newarch/{%- project.name %}ViewManagerSpec.java +0 -24
  33. package/templates/java-view-mixed/android/src/oldarch/{%- project.name %}ViewManagerSpec.java +0 -12
  34. package/templates/java-view-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}View.java +0 -24
  35. package/templates/java-view-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewManager.java +0 -47
  36. package/templates/java-view-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}ViewPackage.java +0 -25
@@ -1,11 +1,9 @@
1
- const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
2
1
  const path = require('path');
3
- const escape = require('escape-string-regexp');
4
- const exclusionList = require('metro-config/src/defaults/exclusionList');
5
- const pak = require('../package.json');
2
+ const { getDefaultConfig } = require('@react-native/metro-config');
3
+ const { getConfig } = require('react-native-builder-bob/metro-config');
4
+ const pkg = require('../package.json');
6
5
 
7
6
  const root = path.resolve(__dirname, '..');
8
- const modules = Object.keys({ ...pak.peerDependencies });
9
7
 
10
8
  /**
11
9
  * Metro configuration
@@ -13,33 +11,8 @@ const modules = Object.keys({ ...pak.peerDependencies });
13
11
  *
14
12
  * @type {import('metro-config').MetroConfig}
15
13
  */
16
- const config = {
17
- watchFolders: [root],
18
-
19
- // We need to make sure that only one version is loaded for peerDependencies
20
- // So we block them at the root, and alias them to the versions in example's node_modules
21
- resolver: {
22
- blacklistRE: exclusionList(
23
- modules.map(
24
- (m) =>
25
- new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`)
26
- )
27
- ),
28
-
29
- extraNodeModules: modules.reduce((acc, name) => {
30
- acc[name] = path.join(__dirname, 'node_modules', name);
31
- return acc;
32
- }, {}),
33
- },
34
-
35
- transformer: {
36
- getTransformOptions: async () => ({
37
- transform: {
38
- experimentalImportSupport: false,
39
- inlineRequires: true,
40
- },
41
- }),
42
- },
43
- };
44
-
45
- module.exports = mergeConfig(getDefaultConfig(__dirname), config);
14
+ module.exports = getConfig(getDefaultConfig(__dirname), {
15
+ root,
16
+ pkg,
17
+ project: __dirname,
18
+ });
@@ -1,22 +1,16 @@
1
1
  const path = require('path');
2
- const pak = require('../package.json');
2
+ const { getConfig } = require('react-native-builder-bob/babel-config');
3
+ const pkg = require('../package.json');
4
+
5
+ const root = path.resolve(__dirname, '..');
3
6
 
4
7
  module.exports = function (api) {
5
8
  api.cache(true);
6
9
 
7
- return {
8
- presets: ['babel-preset-expo'],
9
- plugins: [
10
- [
11
- 'module-resolver',
12
- {
13
- extensions: ['.tsx', '.ts', '.js', '.json'],
14
- alias: {
15
- // For development, we want to alias the library to the source
16
- [pak.name]: path.join(__dirname, '..', pak.source),
17
- },
18
- },
19
- ],
20
- ],
21
- };
10
+ return getConfig(
11
+ {
12
+ presets: ['babel-preset-expo'],
13
+ },
14
+ { root, pkg }
15
+ );
22
16
  };
@@ -1,13 +1,9 @@
1
1
  const path = require('path');
2
- const escape = require('escape-string-regexp');
3
2
  const { getDefaultConfig } = require('@expo/metro-config');
4
- const exclusionList = require('metro-config/src/defaults/exclusionList');
5
- const pak = require('../package.json');
3
+ const { getConfig } = require('react-native-builder-bob/metro-config');
4
+ const pkg = require('../package.json');
6
5
 
7
6
  const root = path.resolve(__dirname, '..');
8
- const modules = Object.keys({ ...pak.peerDependencies });
9
-
10
- const defaultConfig = getDefaultConfig(__dirname);
11
7
 
12
8
  /**
13
9
  * Metro configuration
@@ -15,29 +11,8 @@ const defaultConfig = getDefaultConfig(__dirname);
15
11
  *
16
12
  * @type {import('metro-config').MetroConfig}
17
13
  */
18
- const config = {
19
- ...defaultConfig,
20
-
21
- projectRoot: __dirname,
22
- watchFolders: [root],
23
-
24
- // We need to make sure that only one version is loaded for peerDependencies
25
- // So we block them at the root, and alias them to the versions in example's node_modules
26
- resolver: {
27
- ...defaultConfig.resolver,
28
-
29
- blacklistRE: exclusionList(
30
- modules.map(
31
- (m) =>
32
- new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`)
33
- )
34
- ),
35
-
36
- extraNodeModules: modules.reduce((acc, name) => {
37
- acc[name] = path.join(__dirname, 'node_modules', name);
38
- return acc;
39
- }, {}),
40
- },
41
- };
42
-
43
- module.exports = config;
14
+ module.exports = getConfig(getDefaultConfig(__dirname), {
15
+ root,
16
+ pkg,
17
+ project: __dirname,
18
+ });
@@ -1,9 +1,7 @@
1
1
  buildscript {
2
- <% if (project.kotlin) { -%>
3
2
  // Buildscript is evaluated before everything else so we can't use getExtOrDefault
4
3
  def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["<%- project.name -%>_kotlinVersion"]
5
4
 
6
- <% } -%>
7
5
  repositories {
8
6
  google()
9
7
  mavenCentral()
@@ -11,10 +9,8 @@ buildscript {
11
9
 
12
10
  dependencies {
13
11
  classpath "com.android.tools.build:gradle:7.2.1"
14
- <% if (project.kotlin) { -%>
15
12
  // noinspection DifferentKotlinGradleVersion
16
13
  classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
17
- <% } -%>
18
14
  }
19
15
  }
20
16
 
@@ -28,9 +24,7 @@ def isNewArchitectureEnabled() {
28
24
  }
29
25
 
30
26
  apply plugin: "com.android.library"
31
- <% if (project.kotlin) { -%>
32
27
  apply plugin: "kotlin-android"
33
- <% } -%>
34
28
 
35
29
  if (isNewArchitectureEnabled()) {
36
30
  apply plugin: "com.facebook.react"
@@ -149,18 +143,14 @@ repositories {
149
143
  google()
150
144
  }
151
145
 
152
- <% if (project.kotlin) { -%>
153
146
  def kotlin_version = getExtOrDefault("kotlinVersion")
154
- <% } -%>
155
147
 
156
148
  dependencies {
157
149
  // For < 0.71, this will be from the local maven repo
158
150
  // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
159
151
  //noinspection GradleDynamicVersion
160
152
  implementation "com.facebook.react:react-native:+"
161
- <% if (project.kotlin) { -%>
162
153
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
163
- <% } -%>
164
154
  }
165
155
 
166
156
  <% if (project.arch === "new" || project.arch === "mixed") { -%>
@@ -1,17 +1,12 @@
1
1
  const path = require('path');
2
- const pak = require('../package.json');
2
+ const { getConfig } = require('react-native-builder-bob/babel-config');
3
+ const pkg = require('../package.json');
3
4
 
4
- module.exports = {
5
- presets: ['module:@react-native/babel-preset'],
6
- plugins: [
7
- [
8
- 'module-resolver',
9
- {
10
- extensions: ['.tsx', '.ts', '.js', '.json'],
11
- alias: {
12
- [pak.name]: path.join(__dirname, '..', pak.source),
13
- },
14
- },
15
- ],
16
- ],
17
- };
5
+ const root = path.resolve(__dirname, '..');
6
+
7
+ module.exports = getConfig(
8
+ {
9
+ presets: ['module:@react-native/babel-preset'],
10
+ },
11
+ { root, pkg }
12
+ );
@@ -1,5 +1,5 @@
1
1
  const path = require('path');
2
- const pak = require('../package.json');
2
+ const pkg = require('../package.json');
3
3
  <% if (example === 'test-app') { -%>
4
4
  const { configureProjects } = require('react-native-test-app');
5
5
  <% } -%>
@@ -23,7 +23,7 @@ module.exports = {
23
23
  },
24
24
  <% } -%>
25
25
  dependencies: {
26
- [pak.name]: {
26
+ [pkg.name]: {
27
27
  root: path.join(__dirname, '..'),
28
28
  },
29
29
  },
@@ -1,43 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import androidx.annotation.NonNull;
4
-
5
- import com.facebook.react.bridge.Promise;
6
- import com.facebook.react.bridge.ReactApplicationContext;
7
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
8
- import com.facebook.react.bridge.ReactMethod;
9
- import com.facebook.react.module.annotations.ReactModule;
10
-
11
- @ReactModule(name = <%- project.name -%>Module.NAME)
12
- public class <%- project.name -%>Module extends ReactContextBaseJavaModule {
13
- public static final String NAME = "<%- project.name -%>";
14
-
15
- public <%- project.name -%>Module(ReactApplicationContext reactContext) {
16
- super(reactContext);
17
- }
18
-
19
- @Override
20
- @NonNull
21
- public String getName() {
22
- return NAME;
23
- }
24
-
25
- <% if (project.cpp) { -%>
26
- static {
27
- System.loadLibrary("<%- project.identifier -%>");
28
- }
29
-
30
- private static native double nativeMultiply(double a, double b);
31
- <% } -%>
32
-
33
- // Example method
34
- // See https://reactnative.dev/docs/native-modules-android
35
- @ReactMethod
36
- public void multiply(double a, double b, Promise promise) {
37
- <% if (project.cpp) { -%>
38
- promise.resolve(nativeMultiply(a, b));
39
- <% } else { -%>
40
- promise.resolve(a * b);
41
- <% } -%>
42
- }
43
- }
@@ -1,28 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import androidx.annotation.NonNull;
4
-
5
- import com.facebook.react.ReactPackage;
6
- import com.facebook.react.bridge.NativeModule;
7
- import com.facebook.react.bridge.ReactApplicationContext;
8
- import com.facebook.react.uimanager.ViewManager;
9
-
10
- import java.util.ArrayList;
11
- import java.util.Collections;
12
- import java.util.List;
13
-
14
- public class <%- project.name -%>Package implements ReactPackage {
15
- @NonNull
16
- @Override
17
- public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
18
- List<NativeModule> modules = new ArrayList<>();
19
- modules.add(new <%- project.name -%>Module(reactContext));
20
- return modules;
21
- }
22
-
23
- @NonNull
24
- @Override
25
- public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactContext) {
26
- return Collections.emptyList();
27
- }
28
- }
@@ -1,40 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import androidx.annotation.NonNull;
4
-
5
- import com.facebook.react.bridge.Promise;
6
- import com.facebook.react.bridge.ReactApplicationContext;
7
- import com.facebook.react.bridge.ReactMethod;
8
-
9
- public class <%- project.name -%>Module extends <%- project.name -%>Spec {
10
- public static final String NAME = "<%- project.name -%>";
11
-
12
- <%- project.name -%>Module(ReactApplicationContext context) {
13
- super(context);
14
- }
15
-
16
- @Override
17
- @NonNull
18
- public String getName() {
19
- return NAME;
20
- }
21
-
22
- <% if (project.cpp) { -%>
23
- static {
24
- System.loadLibrary("<%- project.identifier -%>");
25
- }
26
-
27
- public static native double nativeMultiply(double a, double b);
28
- <% } -%>
29
-
30
- // Example method
31
- // See https://reactnative.dev/docs/native-modules-android
32
- @ReactMethod
33
- public void multiply(double a, double b, Promise promise) {
34
- <% if (project.cpp) { -%>
35
- promise.resolve(nativeMultiply(a, b));
36
- <% } else { -%>
37
- promise.resolve(a * b);
38
- <% } -%>
39
- }
40
- }
@@ -1,45 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import androidx.annotation.Nullable;
4
-
5
- import com.facebook.react.bridge.NativeModule;
6
- import com.facebook.react.bridge.ReactApplicationContext;
7
- import com.facebook.react.module.model.ReactModuleInfo;
8
- import com.facebook.react.module.model.ReactModuleInfoProvider;
9
- import com.facebook.react.TurboReactPackage;
10
-
11
- import java.util.HashMap;
12
- import java.util.Map;
13
-
14
- public class <%- project.name -%>Package extends TurboReactPackage {
15
-
16
- @Nullable
17
- @Override
18
- public NativeModule getModule(String name, ReactApplicationContext reactContext) {
19
- if (name.equals(<%- project.name -%>Module.NAME)) {
20
- return new <%- project.name -%>Module(reactContext);
21
- } else {
22
- return null;
23
- }
24
- }
25
-
26
- @Override
27
- public ReactModuleInfoProvider getReactModuleInfoProvider() {
28
- return () -> {
29
- final Map<String, ReactModuleInfo> moduleInfos = new HashMap<>();
30
- boolean isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
31
- moduleInfos.put(
32
- <%- project.name -%>Module.NAME,
33
- new ReactModuleInfo(
34
- <%- project.name -%>Module.NAME,
35
- <%- project.name -%>Module.NAME,
36
- false, // canOverrideExistingModule
37
- false, // needsEagerInit
38
- true, // hasConstants
39
- false, // isCxxModule
40
- isTurboModule // isTurboModule
41
- ));
42
- return moduleInfos;
43
- };
44
- }
45
- }
@@ -1,9 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import com.facebook.react.bridge.ReactApplicationContext;
4
-
5
- abstract class <%- project.name -%>Spec extends Native<%- project.name -%>Spec {
6
- <%- project.name -%>Spec(ReactApplicationContext context) {
7
- super(context);
8
- }
9
- }
@@ -1,13 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import com.facebook.react.bridge.ReactApplicationContext;
4
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
5
- import com.facebook.react.bridge.Promise;
6
-
7
- abstract class <%- project.name -%>Spec extends ReactContextBaseJavaModule {
8
- <%- project.name -%>Spec(ReactApplicationContext context) {
9
- super(context);
10
- }
11
-
12
- public abstract void multiply(double a, double b, Promise promise);
13
- }
@@ -1,40 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import androidx.annotation.NonNull;
4
-
5
- import com.facebook.react.bridge.ReactApplicationContext;
6
- import com.facebook.react.module.annotations.ReactModule;
7
-
8
- @ReactModule(name = <%- project.name -%>Module.NAME)
9
- public class <%- project.name -%>Module extends Native<%- project.name -%>Spec {
10
- public static final String NAME = "<%- project.name -%>";
11
-
12
- public <%- project.name -%>Module(ReactApplicationContext reactContext) {
13
- super(reactContext);
14
- }
15
-
16
- @Override
17
- @NonNull
18
- public String getName() {
19
- return NAME;
20
- }
21
-
22
- <% if (project.cpp) { -%>
23
- static {
24
- System.loadLibrary("<%- project.identifier -%>");
25
- }
26
-
27
- private static native double nativeMultiply(double a, double b);
28
- <% } -%>
29
-
30
- // Example method
31
- // See https://reactnative.dev/docs/native-modules-android
32
- @Override
33
- public double multiply(double a, double b) {
34
- <% if (project.cpp) { -%>
35
- return nativeMultiply(a, b);
36
- <% } else { -%>
37
- return a * b;
38
- <% } -%>
39
- }
40
- }
@@ -1,44 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import androidx.annotation.Nullable;
4
-
5
- import com.facebook.react.bridge.NativeModule;
6
- import com.facebook.react.bridge.ReactApplicationContext;
7
- import com.facebook.react.module.model.ReactModuleInfo;
8
- import com.facebook.react.module.model.ReactModuleInfoProvider;
9
- import com.facebook.react.TurboReactPackage;
10
-
11
- import java.util.HashMap;
12
- import java.util.Map;
13
-
14
- public class <%- project.name -%>Package extends TurboReactPackage {
15
-
16
- @Nullable
17
- @Override
18
- public NativeModule getModule(String name, ReactApplicationContext reactContext) {
19
- if (name.equals(<%- project.name -%>Module.NAME)) {
20
- return new <%- project.name -%>Module(reactContext);
21
- } else {
22
- return null;
23
- }
24
- }
25
-
26
- @Override
27
- public ReactModuleInfoProvider getReactModuleInfoProvider() {
28
- return () -> {
29
- final Map<String, ReactModuleInfo> moduleInfos = new HashMap<>();
30
- moduleInfos.put(
31
- <%- project.name -%>Module.NAME,
32
- new ReactModuleInfo(
33
- <%- project.name -%>Module.NAME,
34
- <%- project.name -%>Module.NAME,
35
- false, // canOverrideExistingModule
36
- false, // needsEagerInit
37
- true, // hasConstants
38
- false, // isCxxModule
39
- true // isTurboModule
40
- ));
41
- return moduleInfos;
42
- };
43
- }
44
- }
@@ -1,22 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import com.facebook.react.ReactPackage;
4
- import com.facebook.react.bridge.NativeModule;
5
- import com.facebook.react.bridge.ReactApplicationContext;
6
- import com.facebook.react.uimanager.ViewManager;
7
-
8
- import java.util.Arrays;
9
- import java.util.Collections;
10
- import java.util.List;
11
-
12
- public class <%- project.name -%>Package implements ReactPackage {
13
- @Override
14
- public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
15
- return Collections.emptyList();
16
- }
17
-
18
- @Override
19
- public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
20
- return Arrays.<ViewManager>asList(new <%- project.name -%>ViewManager());
21
- }
22
- }
@@ -1,31 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import android.graphics.Color;
4
- import android.view.View;
5
-
6
- import androidx.annotation.NonNull;
7
-
8
- import com.facebook.react.uimanager.SimpleViewManager;
9
- import com.facebook.react.uimanager.ThemedReactContext;
10
- import com.facebook.react.uimanager.annotations.ReactProp;
11
-
12
- public class <%- project.name -%>ViewManager extends SimpleViewManager<View> {
13
- public static final String REACT_CLASS = "<%- project.name -%>View";
14
-
15
- @Override
16
- @NonNull
17
- public String getName() {
18
- return REACT_CLASS;
19
- }
20
-
21
- @Override
22
- @NonNull
23
- public View createViewInstance(ThemedReactContext reactContext) {
24
- return new View(reactContext);
25
- }
26
-
27
- @ReactProp(name = "color")
28
- public void setColor(View view, String color) {
29
- view.setBackgroundColor(Color.parseColor(color));
30
- }
31
- }
@@ -1,24 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import androidx.annotation.Nullable;
4
-
5
- import android.content.Context;
6
- import android.util.AttributeSet;
7
-
8
- import android.view.View;
9
-
10
- public class <%- project.name -%>View extends View {
11
-
12
- public <%- project.name -%>View(Context context) {
13
- super(context);
14
- }
15
-
16
- public <%- project.name -%>View(Context context, @Nullable AttributeSet attrs) {
17
- super(context, attrs);
18
- }
19
-
20
- public <%- project.name -%>View(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
21
- super(context, attrs, defStyleAttr);
22
- }
23
-
24
- }
@@ -1,31 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import android.graphics.Color;
4
-
5
- import androidx.annotation.Nullable;
6
-
7
- import com.facebook.react.module.annotations.ReactModule;
8
- import com.facebook.react.uimanager.ThemedReactContext;
9
- import com.facebook.react.uimanager.annotations.ReactProp;
10
-
11
- @ReactModule(name = <%- project.name -%>ViewManager.NAME)
12
- public class <%- project.name -%>ViewManager extends <%- project.name -%>ViewManagerSpec<<%- project.name -%>View> {
13
-
14
- public static final String NAME = "<%- project.name -%>View";
15
-
16
- @Override
17
- public String getName() {
18
- return NAME;
19
- }
20
-
21
- @Override
22
- public <%- project.name -%>View createViewInstance(ThemedReactContext context) {
23
- return new <%- project.name -%>View(context);
24
- }
25
-
26
- @Override
27
- @ReactProp(name = "color")
28
- public void setColor(<%- project.name -%>View view, @Nullable String color) {
29
- view.setBackgroundColor(Color.parseColor(color));
30
- }
31
- }
@@ -1,25 +0,0 @@
1
- <% /* TODO: try to migrate it to TurboReactPackage */ %>
2
- package com.<%- project.package %>;
3
-
4
- import com.facebook.react.ReactPackage;
5
- import com.facebook.react.bridge.NativeModule;
6
- import com.facebook.react.bridge.ReactApplicationContext;
7
- import com.facebook.react.uimanager.ViewManager;
8
-
9
- import java.util.ArrayList;
10
- import java.util.Collections;
11
- import java.util.List;
12
-
13
- public class <%- project.name -%>ViewPackage implements ReactPackage {
14
- @Override
15
- public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
16
- List<ViewManager> viewManagers = new ArrayList<>();
17
- viewManagers.add(new <%- project.name -%>ViewManager());
18
- return viewManagers;
19
- }
20
-
21
- @Override
22
- public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
23
- return Collections.emptyList();
24
- }
25
- }
@@ -1,24 +0,0 @@
1
- package com.<%- project.package %>;
2
-
3
- import android.view.View;
4
-
5
- import androidx.annotation.Nullable;
6
-
7
- import com.facebook.react.uimanager.SimpleViewManager;
8
- import com.facebook.react.uimanager.ViewManagerDelegate;
9
- import com.facebook.react.viewmanagers.<%- project.name -%>ViewManagerDelegate;
10
- import com.facebook.react.viewmanagers.<%- project.name -%>ViewManagerInterface;
11
-
12
- public abstract class <%- project.name -%>ViewManagerSpec<T extends View> extends SimpleViewManager<T> implements <%- project.name -%>ViewManagerInterface<T> {
13
- private final ViewManagerDelegate<T> mDelegate;
14
-
15
- public <%- project.name -%>ViewManagerSpec() {
16
- mDelegate = new <%- project.name -%>ViewManagerDelegate(this);
17
- }
18
-
19
- @Nullable
20
- @Override
21
- protected ViewManagerDelegate<T> getDelegate() {
22
- return mDelegate;
23
- }
24
- }