Files
iNaturalistReactNative/babel.config.js
Johannes Klein 49091f8fc4 Enable React Compiler (#3082)
* Update package.json

* Update package-lock.json

* Enable plugin

* Update package.json

* Update package-lock.json

* Update .eslintrc.js

* Create a new object instead of mutating the existing one

* Update SoundRecorder.js

* Do not mutate prop directly

* Do not mutate store value directly

* Disable compiler for zoom hook

Because it uses reanimated logic, and previous work laid out we should specifically disregard a rule of react here, unsure what to do here for now.

* Move array for tracking results into component

* Disable compiler for StandardCamera

* Do not mutate store value directly

* Disable compiler for FullPageWebView

* Do not mutate route param

* Remove unnecessary check if state is true before setting it to false

* Fix: user might be undefined

* Update reanimated usage with new compiler compliant API

* Fix: taxon might be undefined

* Fix: taxon might be undefined

* Fix: common pitfall of trying to render text outside of Text component

* Update interface

* Add package override

* Update package-lock.json

* Refactor updating of user preferences into User model

* Remove no memo directive from zoom

* Update file imports

* Migrate safeRealmWrite to TS

* Update interface and import path

* Update interface

* Refactor useLocaalObservation hook to not mutate return value of a function that should not be mutated

* Update tests to new return structure

* Remove useSafeRoute hook

We get the same information from error contexts and surrounding documents, and this hook was violating the rules of react by conditionally calling another hook.

* Use optional chaining

* Update TaxonNamesSetting.test.js

* Fix: use optional chaining

* Extend on RNTLs renderHook instead of re-implementing

* Remove unnecessary mock

* Remove unnecessary mock

* Remove unecessary mock

* Remove trailing spaces
2025-09-01 17:06:51 +02:00

43 lines
1.4 KiB
JavaScript

module.exports = {
presets: ["module:@react-native/babel-preset"],
plugins: [
"babel-plugin-react-compiler", // must run first!
"react-native-worklets-core/plugin",
"transform-inline-environment-variables",
"nativewind/babel",
["module-resolver", {
alias: {
// constants is a reserved word, so jest won't run if we name the alias constants
appConstants: "./src/appConstants",
api: "./src/api",
components: "./src/components",
dictionaries: "./src/dictionaries",
i18n: "./src/i18n",
images: "./src/images",
// for some reason, this doesn't seem to work for models, so I'm leaving that directory out
navigation: "./src/navigation",
providers: "./src/providers",
realmModels: "./src/realmModels",
sharedHelpers: "./src/sharedHelpers",
sharedHooks: "./src/sharedHooks",
stores: "./src/stores",
styles: "./src/styles",
tests: "./tests",
uploaders: "./src/uploaders"
}
}],
// Reanimated plugin has to be listed last https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/
[
"react-native-reanimated/plugin",
{
processNestedWorklets: true
}
]
],
env: {
production: {
plugins: ["react-native-paper/babel", "transform-remove-console"]
}
}
};