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
524bd1a3e7
Update project.pbxproj
2026-07-01 11:46:39 +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
Seth Peterson
f81c532bd6
Merge pull request #3768 from inaturalist/mob-1339-search-autocomplete
...
MOB-1339 ExploreV2 search autocomplete
2026-06-30 15:22:47 -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 Klein and Johannes 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 Klein and Johannes 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
678d85d8cd
MOB-1339: test import change
2026-06-30 12:28:13 -05: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 Sync and Crowdin 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
sepeterson
76c1601cff
MOB-1339: normal import in test and support new results type
2026-06-29 17:05:07 -05:00
Abbey Campbell
2a90146ec2
Merge pull request #3771 from inaturalist/mob-1462-search-myobs-ui-2
...
Mob 1462 search myobs UI 2
2026-06-29 15:01:41 -07:00
sepeterson
fb82af61e0
MOB-1339: select universal search results on type from API response
2026-06-29 16:49:24 -05:00
sepeterson
01a4470c6d
MOB-1339: reuse project summary field
2026-06-29 16:04:10 -05:00
Abbey Campbell
c21dadb4c4
skip gate when offline
2026-06-29 11:28:37 -07:00
Johannes Klein
480df93597
Merge pull request #3765 from inaturalist/mob-1497-tpod-a4-download-mapping-for-remote-observations
...
Traditional projects: PO and OFV download mapping for remote observations
2026-06-29 19:16:30 +02:00
Johannes Klein
a003f30283
Merge pull request #3698 from inaturalist/mob-1294-use-explicit-vision-camera-format-on-android-match-ios
...
Use our camera format filters on Android as well
2026-06-29 18:56:42 +02:00
Johannes Klein
123e4d37d9
Remove lower case tests
2026-06-29 10:04:05 +02:00
Johannes Klein
2693618a84
Remove lowercase check
2026-06-29 10:03:01 +02:00
Johannes Klein
41564a65de
Do not query for observation_field for an OFV
...
field_id should be enough
2026-06-27 22:22:54 +02:00
Johannes Klein
228059e6a9
Merge pull request #3761 from inaturalist/mob-1501-tpod-b1-obsedit-projects-row
...
ObsEdit projects row
2026-06-27 16:28:56 +02:00
Johannes Klein and Johannes Klein
4572810e66
Make ApiResponse results generic ( #3773 )
...
* Make ApiResponse type accept a generic to define the results array
* Use generic for defining results in SearchResponse
* Use generic instead of field
* Use generic object because we only care about the total_results count here
---------
Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com >
2026-06-27 00:06:30 +02:00
Johannes Klein
f94650392e
Update strings.ftl
2026-06-26 23:54:00 +02:00
Johannes Klein
cbe2499e5f
Update strings.ftl
2026-06-26 23:51:59 +02:00
Johannes Klein and Seth Peterson
43ffda53ae
Update src/i18n/strings.ftl
...
Co-authored-by: Seth Peterson <10458078+sepeterson@users.noreply.github.com >
2026-06-26 23:47:17 +02:00
Ryan Stelly
54517f6877
dedicated hook for "unsynced" and "missing basics" observations ( #3743 )
...
* 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
* reapply to myobsresults
2026-06-26 09:56:22 -05:00
Johannes Klein
73c598411c
Merge pull request #3767 from inaturalist/mob-1496-tpod-a3-joined-projects-sync-to-realm
...
Traditional projects: joined projects sync to realm
2026-06-26 15:49:43 +02:00