* 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
* Only log sentinel files only if there is any data in the stages array
* Fix indentation
* Also delete sentinel files when exiting camera through Gallery button
* Update AICameraButtons.tsx
Hi! I am checking out the project and noticed there are a bunch of TypeScript errors when I open some of the files I was reading. I ran `tsc` and noticed there's an error with the current TypeScript configuration file:
```
tsconfig.json:7:23 - error TS5063: Substitutions for pattern 'appConstants' should be an array.
7 "appConstants": "src/appConstants",
~~~~~~~~~~~~~~~~~~
```
This change should resolve that error, which will allow the `tsc` linter to be executed from the terminal.
* Repair integration test
* Repair Explore.test.js
* Move no longer broken test
* Mock the fadeInView that does screen transitions in tests
* Mock another fade in view
* Start screen in a loading state for 700ms
One idea I have about the bug is that maybe it takes a few renders to initialize the device. As we are immediately backing out of the screen in case we have no device, maybe just adding a few ms to give the native side time helps.
* If no device is selected log the length of devices available
* Add missing mock
* Move interpolation function
* Export pan handler for zooming
* Prop panToZoom to camera
* Small debug menu refactor
* Extract magic numbers into const
* Reorder conditions
* This does not really do anything because the option
keys have different names
* The Add Location CTA should always ask for permission
The only state we show the Add Location CTA is if the observation does not have a location when landing on ObsEdit.
* Use an initial state wether an observation should watch users location
In this case we can override the state to true whenever we want to force the app to watch the location.
For example when the user grants location permission on the screen we want to watch no matter where the user came from.
* Remove unused or nowhere imported functions
* Use same navigation on Match as ObsEdit does
* Always ask for permission when the MyLocation button
is pressed on the map
* Add a loading state to the "Add Location button"