* Don't require TS extensions in imports
* Resolve all import extension errors
* Remove file extension from import paths used in mocks
* Remove .d of type definition file paths
* Remove .d of type definition file and import as type
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* Update TypeScript
* Fix some tests with new default MyObservationsSimple
* Show upload toolbar on MyObs advanced
* Update tests for simple mode
* Fix deletions popping back up on MyObs
* Fix e2e test, which also means fixing our deletion process
* Fix useSyncObservations test
* Requested changes to better fit latest designs
* Add tests to check for hidden upload banner
This adds pivot cards to the app.
The cards are shown only once per app install lifetime, as their state being shown is persisted in the zustand store.
The basic idea is, if the triggerCondition of the modal turns true it is shown, if dismissed it is never shown again.
* Update user-facing terminology from gallery to photo library
* Update terminology for devs to make the user-facing change easier to remember
* Update snapshots
* Add title string
* Label for icon button
* Restyle 3rd party sign in section
* Add apple svg icon
* Use apple svg
* Add google icon
* Update strings.ftl
* Partially bold string
* SignUpForm TS
* SignUpConfirmation TS
* Rename signup screens
* SignUpConfirmation TS
* Remove string
* TS fixes
* Button text change
* Remove superfluous margin
* Move two text fields to sign up confirmation
* Revert "Remove superfluous margin"
This reverts commit 6a8fe1e7cf.
* Add TODO
* Remove text under Continue button
* Reorder states
* Close button only on login
* LoginSignupWrapper TS
* SignUp TS
* Remove Learn More screen
* Update text input field label
* Remove email confirmation screen
* Disable button when inputs empty
* Navigate to main after register
* Only show one check box
* Add error component to first signup screen
* Partially italics string
* Remove previous text
* SignUpConfirmationForm TS
* Add a type
* Make exclamation mark appear white
* Example email validation
* Updated Learn More webview title
* Comment out some registration fields from previous checkboxes
* Add comment
* Update Error.tsx
* Set all previously separate checkbox consents to true if the one is checked
* Revert removal of LearnMore screen
* Navigate to Learn More screen
* Update LoginForm.tsx
* Revert "Remove email confirmation screen"
This reverts commit 52c396e411.
* Use pink_flower as background for Learn More screen
* Remove old confirmation screen
* Remove LearnMore demo
* Show translated error text for common errors
* Force dark buttons in signup/login flow screens
* Add text to forgot password page
* Change text input label
* refactor: convert UserIcon to TypeScript
* feat: show simple MyObs to signed in user; add user icon & login to header
* feat: show warning and edit button for unuploaded obs w/o basics
* refactor: consolidate ObsEdit navigation logic
* feat: show edit button with circle dots
* refactor: upload UploadQueuedRotatingIcon to the more reusable CircleDots
component
* refactor: upload icons to use more composition and fewer specialized, one-off
components
* fix: bugs in determining if an obs has date and coords
* refactor: extract MyObservationsSimple business logic into container
* refactor: get total obs count from relevant hooks
* feat: show remote species for signed in users
* fix: hide photo count icon when missing basics icon is present
* feat: show banner alerting user when missing location or date
Closes MOB-318
Simplified version of MyObs for signed out users with more than 1 obs. Currently only in debug mode.
Also:
* refactor: extract TaxonGridItem into a reusable component
* chore: TypeScript cleanup
Closes MOB-317
* Also collect altitude from geolocation calls
* Update geomodel plugin
* Prop user location down into ai camera
* Add geo model file to be linked into xcode project
* Update env.example
* Update env.example
* Add geo model to cv model info file
* Update Developer.js
* Use user location for geo model while frame processing
useGeoModel boolean signals the frame processing plugin to use the geo model as well. It is turned on when we have a location.
* Update README.md
* Geo model is optional
* Adding a dummy neural network called geomodel.placeholder
This model doesn't do anything just returns the input. This is a overhead we could justify in my view as not to spend some more time figuring out how to make a model optional in an Xcode project.
* Geo model files are optional
* Update README.md
* Fix wrong model usage
* Update README.md
* This comment is no longer true
* feat: use full-text index on new _searchableName field (#2487)
Supports searches across non-contiguous tokens, e.g. finding "Mount Diablo
fairy lantern" with a query like "diablo lantern"
Related to #2348
* feat: add pull to refresh on notifications (#2489)
Closes#2349
* feat: show notifications from others (#2491)
* split notifications into tabs
* lots of TypeScript conversion
* feat: resize Heading5 and add Heading6 (closes#2480)
* fix: mark remote observations as viewed from ObsDetails
* feat: show indicator in Notifications tabs if unviewed notifications
Closes#2451
* feat: add option to save all observations from batch obs edit (#2493)
* fix: bring KebabMenu in line with designs
Closes#2268
* Update testing instructions
* v0.55.2
* v0.55.2+129
* fix: show observation from external link when Explore filters open (#2453)
* Open observation in app when link is pressed even if modals are open
* Remove comments
* Add comment and reset obsid
* fix: show onboarding content when signed in user has 0 observations (#2510)
Closes#2508
* fix: load new Explore results when filters change (#2507)
URL params got removed from the query key as a part of pull-to-refresh, but
that's how changes to filters were triggering a new request. This restores
that behavior, adds a test to ensure changes to filters call the API again,
and fixes the prior test of pull to refresh which was not testing the
equivalent behavior when pulling to refresh (API on first load, so the mock
needed to be cleared).
* fix: restore observation fetch when focusing on myobs (#2511)
* fix: center number in photo count (#2512)
Closes#2506
* refactor: minor edits for clarity
* fix: specify CV model version in e2e test
Hoping this deflakes the e2e a bit. Not sure why the AICamera test ever worked
without this.
* v0.55.3
* v0.55.3+130
* New Crowdin translations by GitHub Action (#2481)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
* fix: get quality grade descs closer to designs; add Joanne to staff (#2517)
* fix: prevent BottomSheet title from overflowing over close button
* Update to Geomodel name
* Another name change
* Rename var and const names
* Rename const file references
* Also collect altitude from geolocation calls
* Update geomodel plugin
* Prop user location down into ai camera
* Add geo model file to be linked into xcode project
* Update env.example
* Update env.example
* Add geo model to cv model info file
* Update Developer.js
* Use user location for geo model while frame processing
useGeoModel boolean signals the frame processing plugin to use the geo model as well. It is turned on when we have a location.
* Update README.md
* Geo model is optional
* Adding a dummy neural network called geomodel.placeholder
This model doesn't do anything just returns the input. This is a overhead we could justify in my view as not to spend some more time figuring out how to make a model optional in an Xcode project.
* Geo model files are optional
* Update README.md
* Fix wrong model usage
* Update README.md
* This comment is no longer true
* refactor: minor edits for clarity
* Update to Geomodel name
* Another name change
* Rename var and const names
* Rename const file references
---------
Co-authored-by: Ken-ichi <kenichi.ueda@gmail.com>
Co-authored-by: Angie <angie@inaturalist.org>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
* split notifications into tabs
* lots of TypeScript conversion
* feat: resize Heading5 and add Heading6 (closes#2480)
* fix: mark remote observations as viewed from ObsDetails
* feat: show indicator in Notifications tabs if unviewed notifications
Closes#2451
We added the spacer in #2133 to make all of ObsEdit scrollable, but that just
creates whitespace no one can get rid of. This adjusts the button bar so it
is regularly positioned at the bottom.
* Change black text to dark gray text
* Start simplifying to a single color scheme
* Remove custom paper theme colors
* More theme cleanup
* Styling specifically for RNPaper components
* Update snapshots to use hex colors, not rbga
* chore: validate and normalize translations in addition to src strings
* fix: globalize lat/lng/acc in LocationPicker
* refactor: extract language picker into component
* refactor: globalized text
* feat: added a script to i18ncli called "checkify" that generates
localization files prepended with a checkmark to help see strings that are
not globalized
* fix: localize date formatting (closes#1622)
Closes#2102
* Implement infinite scroll in Projects
* Styling fixes for empty state in projects; add infinite loading wheel
* Resolve require cycle from ObsFlashList and FlashList shared components
* Order by distance and remove radius for nearby projects fetch
* Code cleanup
* Fix test
* Code cleanup
* Minor tweaks to search API request and results
* Use custom FlashList with auto layout disabled in GroupPhotos
* Fixes for grid view in RTL mode
* Fix styling for PhotoCount in RTL
* Standardize ExploreSearchHeader; use BackButton for RTL support
* Styling fixes for filters search header
* Add new error type for 429; remove unnecessary logs
* Batch API calls for SpeciesSeenCheckmark
* Remove SpeciesSeenCheckmark test
* Revert logging errors
* Use Set for observedTaxonIds
* Add comments around logger.info statements
* Merge linting update
* More fixes from code review
* Switch to non-authenticated useQuery for fetching taxon ids seen by X user id
* Fix tests
* realm TS
* provider/contexts TS
* todo
* useIconicTaxa TS
* Refactor taxa list into component
* Use TaxaList for taxon search screen
* Refactor render decision
* Use flex 1 container instead of footer
* Show offline notice for query without results
Refetch taxa when going back online
* Update required because of useIsConnected
* Await typing in test
* Mock useIconicTaxa
* Add tests to taxon search
* emitUploadProgress TS
* createUTFPosition TS
* convertScores TS
* Add field type
* Fix imports
* IconicTaxonChooser no longer takes a taxon or manages its own state
* Setting iconic taxon filter to Unknown is now its own action
* Unsetting a taxon can be done with the CHOOSE_TAXON action by setting taxon
to null or undefined
* Omitted some extraneous params from tile requests
When an Error object is passed to logger.error() as the last arg, this change
* extracts error_type and backtrace
* reports a shorter message that should be searchable
Also:
* Avoid double logging errors; ErrorBoundary should log errors in a way we can parse
* Added restart button to default ErrorBoundary; globalized text
* Check for CV directory
* Save original, rotated photos for processing; clear directory when user lands on MyObs
* Reset evidenceToAdd when user lands on StandardCamera
* Disable photo taking while loading so one photo doesn't overwrite another
* Refactor image-resizer into helper function for easy logging
* Create a folder for computerVisionSuggestions
* Display iNat app directories in Debug
* Delete old images from computerVisionSuggestions/ when navigating away from Suggestions
* Fix online suggestions API call
* Fix tests
* Clear computer vision directory when landing on Suggestions screen
* Report on app size via logging
* Add app size checks
* Report file sizes in debug log
* Display red for large items in directory; sort by largest first
* Display all file contents and sizes in Debug menu; closes#1182
* Replace Whitney fonts with Lato
* Escape font family names so Lato works on iOS
* Update custom fonts
* Typography file cleanup
* Rename constants to appConstants
* Fix margins in AddObsModal
* Started separating UILibrary into components
* move sound photo icons to the bottom corners
* thick border for photoless styles
* altered icon drop shadows per designs
* might have fixed missing multiple photos icon on ObsGridItem