Commit Graph
3213 Commits
Author SHA1 Message Date
Abbey Campbell 5062231888 remove hook that sets observations to viewed on foreground 2026-07-02 16:54:37 -07:00
Seth Peterson 92491d93bb Merge pull request #3789 from inaturalist/mob-1164-locality-note-first-line-extends-to-screen-edge
MOB-1164: contain observation location
2026-07-01 16:09:35 -05:00
Seth Peterson 61eaeb7b4e Merge pull request #3783 from inaturalist/taxon-mapper
Taxon mapper
2026-07-01 16:08:09 -05:00
Seth Peterson e40bbc08ef Merge pull request #3787 from inaturalist/mob-1341-search-state-hook
MOB-1341: extract search-field state into useSearchField hook
2026-07-01 16:07:47 -05:00
iNaturalist Crowdin SyncandCrowdin Bot 6930676045 New Crowdin translations by GitHub Action (#3776)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-01 22:51:29 +02:00
Johannes Klein b5460dab47 Merge pull request #3786 from inaturalist/mob-1502-tpod-b2-project-chooser-screen
Traditional projects: Project chooser screen
2026-07-01 20:37:30 +02:00
sepeterson 4fee60082b Merge branch 'main' into taxon-mapper 2026-07-01 12:48:31 -05:00
sepeterson a03794a3e8 rename to mapRealmToPojo 2026-07-01 12:48:06 -05:00
Seth Peterson 3ee373e2f1 Merge pull request #3782 from inaturalist/mob-1540-deleting-photo-from-unsynced-obs-causes-crash
MOB-1540: two fixes for the media viewer
2026-07-01 12:14:04 -05:00
sepeterson 3f5ec8ac30 MOB-1164: contain observation location 2026-07-01 12:00:14 -05:00
Johannes Klein a9c20224ed Update ObservationField.ts 2026-07-01 17:53:45 +02:00
Johannes Klein e240c80a6b Fix crash for undefined POs 2026-07-01 16:15:50 +02:00
Johannes Klein 937a7bd396 Remove comment 2026-07-01 14:08:44 +02:00
Johannes Klein 2cc28e27c0 Do not map rule_preferences that we didn't persist 2026-07-01 14:01:35 +02:00
Johannes Klein a08be64e7c Refactor should-date-format-check into an early return 2026-07-01 14:01:05 +02:00
Johannes Klein f430643e7a Update Project.ts 2026-07-01 13:52:59 +02:00
Johannes Klein 2796f543a9 Show checkmark icon based on zustand state
The designs are yet unclear how to "uncheckmark" a created PO. So, the checkmark state currently trumps the selected state.
2026-07-01 13:47:18 +02:00
Johannes Klein f320d7946a Add button bar UI without any logic 2026-07-01 12:54:40 +02:00
Johannes Klein 7adfdaa3e6 Add View and indent 2026-07-01 12:13:42 +02:00
Johannes Klein 5c0496bcf0 Render right icon based on selection 2026-07-01 12:05:55 +02:00
Johannes Klein b1963dcc9d Add new icons 2026-07-01 11:45:05 +02:00
Johannes Klein c132be9daa Merge branch 'main' into mob-1502-tpod-b2-project-chooser-screen 2026-07-01 11:17:22 +02:00
Johannes Klein 9cc3e0ff5a Change list to be a set of Pressable with each row being selectable 2026-07-01 11:00:58 +02:00
Johannes Klein 1ddd418075 Map joined projects to pojos for UI 2026-07-01 10:29:49 +02:00
Johannes Klein 2f2af1e4db Mapping functions to get pojo from project realm 2026-07-01 10:26:56 +02:00
sepetersonandClaude Opus 4.8 a9f6324e00 MOB-1341: extract search-field state into useSearchField hook
Pull the debounced-autocomplete state machine behind the Universal Search
subject input (text + debounced query + fill-on-select / clear-on-refocus)
into a reusable useSearchField hook. Pure refactor with no behavior change;
sets up the location field to reuse the same hook.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 17:28:34 -05:00
sepeterson d61c735e86 MOB-1540: two fixes for the media viewer 2026-06-30 15:23:45 -05:00
sepeterson 9f86ca1d42 Merge branch 'main' into taxon-mapper 2026-06-30 14:53:14 -05:00
sepeterson 9884facdd2 MOB-1339: no conditional rendering of list 2026-06-30 14:02:57 -05:00
sepeterson 56315a9c45 Merge branch 'main' into mob-1339-search-autocomplete 2026-06-30 13:00:46 -05:00
Johannes KleinandJohannes Klein 0fdf31fba8 Query for project summary fields; missing project requirements will crash the date format function (#3780)
Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com>
2026-06-30 19:37:37 +02:00
Johannes KleinandJohannes Klein 653a8878d6 Remove double padding in ProjectListItem (#3778)
Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com>
2026-06-30 19:36:58 +02:00
sepeterson 4e2b40c9d0 MOB-1339: result pressable and info icon sibling hierarchy 2026-06-30 12:28:13 -05:00
sepeterson f1ec83e1b9 MOB-1339: handle default cases as errors in search subject helpers 2026-06-30 12:28:13 -05:00
Ryan Stelly 277816b0e0 MOB-1458 use local observation ids (#3763)
* only return observations from useLocalObs

* remove unnecessary var

* export unsync'd filter

* remove obsoleted numUnuploadedObservations zustand state

* tests, typo

* fix tests

* add sync fields to keypaths & depp array

* consistent naming

* handle only ids downstream

* switch over to useIds

* restore ids return

* memoize realm mapping result

* extract realm hooks mocks into factory-available helper

* reapply to myobsresults

* reapply to myobsresults

* go back to wrapped ids for list parity

* fix test

* restrict mocked prop for more accurate MyObsSimple test

* comment cleanup

* fix fake timer flake w/ corrected setup

Claude:

1. withAnimatedTimeTravelEnabled({ skipFakeTimers: true }) does NOT call jest.useFakeTimers(), but still calls jest.setSystemTime(new Date(0)) in beforeEach — which requires fake timers.
2. Both SoundRecorder.test.js and PhotoDeletionExisting.test.js (and ObsEdit.test.js) call global.timeTravel(300) inside waitFor, which also requires fake timers.
3. Tests pass flakily when fake timers accidentally leak from another test file running in the same Jest worker. When they don't leak, timeTravel throws.
4. FadeInView is fully mocked to a plain View (instant) and Reanimated uses setUpTests(), so the 300ms timeTravel isn't actually advancing any real animation — it's just broken.

The fix: guard setSystemTime with the same check, and remove the timeTravel(300) calls from waitFor in tests that use skipFakeTimers: true.

* fix remaining time travel uses

* reset / restore timers to fix leaking fake timers
2026-06-30 11:48:47 -05:00
Seth Peterson bbd08c7c2b Merge pull request #3770 from inaturalist/mob-1339-universal-search-hook
MOB-1339 Hooks to support search autocomplete
2026-06-30 09:34:30 -05:00
Johannes Klein ddff74d31a Move hook directly inline and use as data 2026-06-30 16:10:39 +02:00
Johannes Klein 64ef745dd2 Simple list item 2026-06-30 16:04:38 +02:00
Johannes Klein 880e2dbc81 Add hook to get all persisted traditional projects 2026-06-30 14:59:56 +02:00
Johannes Klein 06dee97dcc Update SharedStackScreens.tsx 2026-06-30 14:17:59 +02:00
Johannes Klein 208847e666 Add new view wrapper for shared stack screens that do not need top inset 2026-06-30 14:17:31 +02:00
Johannes Klein 96affe6d06 Increase empty list padding 2026-06-30 13:53:01 +02:00
Johannes Klein d7b858893d Add item separator 2026-06-30 13:51:48 +02:00
Johannes Klein 2422debdbb Add stable empty list component 2026-06-30 13:49:34 +02:00
Johannes Klein c4019bfdc7 Fix autocorrected strings 2026-06-30 13:46:03 +02:00
Johannes Klein 220b2f41b9 Add stable footer component 2026-06-30 13:39:52 +02:00
Johannes Klein adab4521a3 Should be Body2 2026-06-30 13:29:00 +02:00
Johannes Klein c4a43c66d4 Add a CustomFlashList with stable header component 2026-06-30 13:24:24 +02:00
iNaturalist Crowdin SyncandCrowdin Bot d28d705671 New Crowdin translations by GitHub Action (#3772)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-06-30 09:13:17 +02:00
sepeterson 87d2711399 merge main 2026-06-29 17:10:17 -05:00