Commit Graph

4088 Commits

Author SHA1 Message Date
sepeterson
14ad4daf2f Use only the chevron back button, have only 1 set of imgs 2026-05-28 16:59:50 -05:00
Seth Peterson
a85de3eea0 Merge pull request #3657 from inaturalist/mob-882-explore-swiping-back-after-adding-id-from-taxon-page-not
MOB-882: popto when selecting taxon from taxon details
2026-05-27 07:47:54 -05:00
iNaturalist Crowdin Sync
fb70e4f0f9 Merge pull request #3658 from inaturalist/l10n_main
New Crowdin Translations
2026-05-27 12:34:39 +02:00
Johannes Klein
15ce33b209 Merge pull request #3650 from inaturalist/node-24
Use node 24
2026-05-27 12:27:51 +02:00
Johannes Klein
198c977e70 Specify node 24 in GitHubActions 2026-05-27 10:09:33 +02:00
Johannes Klein
58d74b6843 Update .nvmrc 2026-05-27 10:08:17 +02:00
Johannes Klein
e6196ba748 Fix: Media deletion was operating with stale data (#3656)
* Fix: Media deletion was operating with stale data

`mediaUris` is referencing the state before the media was deleted, so we have to select the new state after deletion based on mediaUris filtered by the just deleted uri.
Or we could update the callback to work with non-stale data, but I don't think a callback is needed here anyway. We are just calling a function in the media viewer modal.

* Jump through a hoop to trigger PR checks

* Revert "Jump through a hoop to trigger PR checks"

This reverts commit d15640a760.
2026-05-26 22:37:44 +02:00
Johannes Klein
26ff426a3f Merge pull request #3647 from inaturalist/mob-1395-potential-disagreement-not-allowing-you-to-choose-first
PotentialDisagreementSheet not allowing you to choose first value
2026-05-26 19:56:39 +02:00
Johannes Klein
9eb7b6eba7 Merge pull request #3648 from inaturalist/macos-26-runner
Update iOS e2e tests to macos-26 runner
2026-05-26 19:41:11 +02:00
Ryan Stelly
a0d631164e Replace android e2e file (#3641)
* remove old android e2e file

* git mv .new.yml to .yml
2026-05-26 13:30:37 -04:00
Ryan Stelly
b484aa0ee7 set listener on filtered 'desired' realm collection (#3637) 2026-05-26 13:28:58 -04:00
sepeterson
9100e4ffb2 MOB-882: popto when selecting taxon from taxon details 2026-05-26 11:20:30 -05:00
Johannes Klein
ea5e4bb20b MOB-1328: location permissions for ExploreV2 (#3623)
* MOB-1328: add NEEDS_PERMISSION place mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* MOB-1328: wire up location permissions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* MOB-1328: omit low value tests

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
2026-05-26 13:09:48 +02:00
dependabot[bot]
20062e8fcb Bump qs and body-parser (#3655)
Bumps [qs](https://github.com/ljharb/qs) and [body-parser](https://github.com/expressjs/body-parser). These dependencies needed to be updated together.

Updates `qs` from 6.14.2 to 6.15.2
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.14.2...v6.15.2)

Updates `body-parser` from 1.20.4 to 1.20.5
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/1.20.5/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.20.4...1.20.5)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.15.2
  dependency-type: indirect
- dependency-name: body-parser
  dependency-version: 1.20.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 08:01:00 +02:00
iNaturalist Crowdin Sync
193a40a1f9 New Crowdin translations by GitHub Action (#3644)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-25 22:54:06 +02:00
Johannes Klein
520322baad Revert "Update .detoxrc.js"
This reverts commit ee6bcbf77c.
2026-05-24 11:09:44 +02:00
Johannes Klein
3ca823ee9b Revert "Update .detoxrc.js"
This reverts commit 07ed0a817b.
2026-05-24 11:09:39 +02:00
Johannes Klein
83f91802b7 Update e2e_ios.yml 2026-05-24 11:08:13 +02:00
Johannes Klein
07ed0a817b Update .detoxrc.js 2026-05-24 09:41:42 +02:00
Johannes Klein
ee6bcbf77c Update .detoxrc.js 2026-05-24 00:26:40 +02:00
Johannes Klein
476e83ccba Update e2e_ios.yml 2026-05-23 23:07:04 +02:00
Johannes Klein
5086db09cc Update .detoxrc.js 2026-05-23 23:00:01 +02:00
Ryan Stelly
1f69e6076d initialize useCurrentUser useState value (#3631)
* simplify useCurrentUser's Realm listener

* initialize useCurrentUser's useState

* Apply suggestion from @FLGMwt

* resync currentUser on effect setup
2026-05-22 08:39:01 -05:00
dependabot[bot]
c1b90e6f3f Bump sanitize-html from 2.17.3 to 2.17.4 (#3646)
Bumps [sanitize-html](https://github.com/apostrophecms/apostrophe/tree/HEAD/packages/sanitize-html) from 2.17.3 to 2.17.4.
- [Changelog](https://github.com/apostrophecms/apostrophe/blob/main/packages/sanitize-html/CHANGELOG.md)
- [Commits](https://github.com/apostrophecms/apostrophe/commits/HEAD/packages/sanitize-html)

---
updated-dependencies:
- dependency-name: sanitize-html
  dependency-version: 2.17.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-21 23:32:52 +02:00
Johannes Klein
df056f530a Two small changes (#3645)
* Update text

* Update strings.ftl

* Description italic and centered if multiline
2026-05-21 21:50:06 +02:00
Johannes Klein
5ccd48858d Small ts migrations (#3643)
* Update HeaderUser.tsx

* Migrate InlineUser

* Update UploadProgressBar.tsx
2026-05-21 21:49:41 +02:00
Johannes Klein
d221714f56 Type ObsDetails nav params (#3642)
* Add route params to ObsDetails

* Remove a LogBox ignore

This should not be required anymore. We are not sending an entire observation over params.

* Type route params

* Update ObsDetailsContainer.js

* Type route params in IdSheets

Note: identAt is now types as number as it is set by using Date.now( ) on the screens routing to ObsDetails.

* Type navigation prop

* Update DQAButton.tsx

* Type navigation in useObsDetailsSharedLogic and route from it

* Update route param type from DQAButton

* Type navigation prop

* Type navigation prop

* Update DataQualityAssessment.tsx
2026-05-21 21:47:26 +02:00
Johannes Klein
2c0cbd572b Merge beta into main (#3636)
* Update version to 1.0.22

* Bundle update fastlane

* v1.0.22+213
2026-05-21 21:28:19 +02:00
Johannes Klein
fab478db7a Add some radio button sheet unit tests 2026-05-21 17:28:07 +02:00
Johannes Klein
372326dbb0 Update radio values mock as to current prop structure 2026-05-21 17:14:49 +02:00
Johannes Klein
6e974eabed Migrate WildStatusSheet to TS 2026-05-21 17:09:24 +02:00
Johannes Klein
1daf470099 Remove internally unused prop 2026-05-21 17:04:34 +02:00
Johannes Klein
1a57b992c3 Sort alphabetical 2026-05-21 17:02:55 +02:00
Johannes Klein
0a3cc744b0 Sort alphabetical 2026-05-21 16:57:42 +02:00
Johannes Klein
aed8b01d52 This value is used as a prop to a third party RadioButton
So, I would say we stay in what they have typed this prop as: as string
2026-05-21 16:06:38 +02:00
Johannes Klein
f795e12aa6 Update RadioButtonSheet.tsx 2026-05-21 16:05:14 +02:00
Johannes Klein
488bb52257 Add a new prop that enables Confirming the first radio value in PotentialDisagreementSheet 2026-05-21 11:10:10 +02:00
Johannes Klein
8df438d08b Update config object type based on what is prop in DisagreeSheet 2026-05-21 11:09:25 +02:00
Johannes Klein
4646269c94 Add type of what a value can be 2026-05-21 11:08:53 +02:00
Johannes Klein
e29b201edd Update callback param type 2026-05-21 11:05:47 +02:00
Ryan Stelly
dcb71cc616 log realm obs count in feedback (#3634)
* log count of Observations stored in Realm on user feedback

* remote intermediate var for consistency
2026-05-20 09:44:26 -05:00
Johannes Klein
f8c2e55007 Add fetchPlaceName mock (#3640)
* WIP: fetchPlaceName mock to workaround issue on Android phones without Play Services

* Update vision-camera.js

* Fixes an error while rendering this mock
2026-05-20 15:18:46 +02:00
Ryan Stelly
c90057f6e7 Observation flash list render defined component (#3629)
* ObservationsFlashList.js => ObservationsFlashList.tsx

Obs typing and file-external fixes deferred

* use void for callback props

* file local component for separator prop

* memoize elements instead of components defined in render

* replace render-defined component with element, obslistheader

* remove reference to Flow
2026-05-20 07:52:38 -05:00
Johannes Klein
0871f8f029 Updating copy for app store description (#3638)
* Update ios default description

* Copy description to Android
2026-05-20 10:56:54 +02:00
iNaturalist Crowdin Sync
219aa14174 New Crowdin translations by GitHub Action (#3639)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-20 10:56:24 +02:00
Johannes Klein
4ccf8e6cae Fallback UI for hidden content (#3628)
* Do not filter out hidden comments and IDs when getting an obs from server

* Do not add a filtered set of comments and IDs to local obs

Searching for visibleComments and visibleIdentifications anyways gives 0 results outside this file.

* Move file

* Remove flow

* Type fcts

* Add a type to item

* More types

* Add field to RealmTaxon

* Type navigation as used in ObsDetails

* Update ActivityItem.tsx

* Migrate FloatingButtons to TS

* Change prop type

* Rename ActivityHeader

* Migrate ActivityHeaderKebabMenu to TS

* Type functions

* Add undefined as possibility from TextInputSheet callback

* Revert "Add undefined as possibility from TextInputSheet callback"

This reverts commit 95b5fef2b9.

* Revert "Type functions"

This reverts commit 6997f195ce.

* Revert "Rename ActivityHeader"

This reverts commit e384c1f5a5.

* Revert "Update ActivityItem.tsx"

This reverts commit c1dc151b9a.

* Revert "Add field to RealmTaxon"

This reverts commit 965af041c0.

* Revert "More types"

This reverts commit 73af10bfcd.

* Revert "Add a type to item"

This reverts commit 5e5bf0ebae.

* Revert "Type fcts"

This reverts commit 84cac53e33.

* Revert "Type navigation as used in ObsDetails"

This reverts commit 9febf9ea30.

* Revert "Remove flow"

This reverts commit dca054c212.

* Revert "Move file"

This reverts commit bf62c0db95.

* Add UI for a hidden comment/ID

* Rename export like file name

* Update ID category text in tests

* Ask for hidden status from API and persist in realm

* Show fallback UI for hidden photos in PhotoContainer

* Update strings.ftl

* Show fallback UI for hidden sounds in SoundContainer

* Change mock to remoteObservation

Previously, this test file was relying on a faulty remoteObservation. The passed in remoteObservation was {} and because of the now removed filter code in useRemoteObservation what was passes into the test was {comments:[], identifications:[]} which made this test pass without ever using the useLocalObervation mock.

* Add eye icon to photo

* Add eye icon to sound

* Add eye icon to comments/IDs
2026-05-20 00:47:34 +02:00
Johannes Klein
626b25314f Update existing android detox tests (#3632)
* Remove android specific launch and early return

* Remove no longer needed other launchApp command

* Update installData e2e mock

* Tap container to dismiss keyboard

* Add testID to login container

* Push a test image into the app's external files directory

* Mock camer takePhoto on Android

* Use a jpg that results in suggestions

* Update e2e camera mock to not use frameProcessor when not active

* Change vision camera mock to create a destination path with additional /

* To remove possibility for flakiness prescribe an emulator

* Add a geocoder wrapper file

* Revert "Add a geocoder wrapper file"

This reverts commit 6c7b6c61a5.
2026-05-19 20:35:38 +02:00
Ryan Stelly
c32a5571ba reduce rework in use local observations, improve locking UI thread (#3609)
* with performance.mark

* remove performance.mark

* use Set and remove unused arg

* finish arg refactor, switch to state for default, remove old comment
2026-05-19 12:59:17 -05:00
Johannes Klein
de13c8da32 Refactor zustand mmkv direct access mapType (#3630) 2026-05-18 16:07:20 +02:00
Johannes Klein
2c282cf54c Only send id and login via route params (#3626)
We do not need anything else from `user` on the other side.
2026-05-18 15:47:01 +02:00