* Build UI for loading state between AI->Match
* Make designs for AI loading screen match Figma
* Selective changes from bf872e2d4f
* Selective changes from 9ed81f99c7
* Selective changes from 4bc7c3474f
* Selective changes from 4916cf70fb
* Replace loading state from store with props
* Add some types
* Make component agnostic of what skipping does
* Remove debug info
* Add more debug data
* Elongate loading state if online errors out and offline is still loading in sequence
* Remove underline
This classname had no effect as far as I can tell.
* Hide skip button when it has no function
* Remove a comment that slipped through partial cherry-picking
* Split apart online and offline fetch status
Weird but even though they start in sequence it happened to me that online error was received after offline was fetched successfully. So, Let's split apart online and offline loading state.
---------
Co-authored-by: Amanda Bullington <albullington@gmail.com>
* Do not show double gap for when no zoom button to show
* Add location-off icon
* Basic location button for camera
* Do not show new button in default mode
* In advanced mode using geomodel is opt-in with the button state
* Basic info box layout
* Add opacity
* Update strings.ftl
* Use location if present
* If no location permission given, show permission gate on pressing use location
* Minor restyle for offline text
* Refactor LocationStatus and add animation
* Update snapshot tests
* 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
Adds internal feedback form that posts to our logging infrastructure.
Also,
* Adds maxLength prop to TextInputSheet w/ UI to show characters remaining
* Adds optional description to TextInputSheet
* Adjusts TextInputSheet input height to fit area left by the keyboard
Closes#1844
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* 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
* Added font files for Book and Semibold, Added MediumText component.
* Update snaopshots for font changes
* Body1 and Body3 changed to Whitney Medium, changes to italic fonts weights on ObsListItem, seperate component for ScientificName
* Added basic navigation test for StandardCamera & SoundRecorder
* Abstracted camera nav buttons and used in SoundRecorder
* Show sounds in the MediaViewer
* Added sounds to ObsEdit, w/ MediaViewer support
* Ensure sounds get both uploaded and added to observations
* Local sound deletion
* Remote sound deletion
* Rudimentary and deeply unperformative sound visualization
Closes#869
* Style taxonomy ancestors and current taxon
* Link to TaxonDetails pages
* Add children to TaxonDetails taxonomy
* Add children taxa toggle
* Display children after button tap
* Wrap text'
* Fix italic font size in DisplayTaxonName
* Add tests to Taxonomy component
* Change Taxonomy test
* Access MediaViewer from TaxonDetails
* Added our own presets for ActivityIndicator
* TaxonDetail should show a local taxon if one is available
* Made it a little easier to import the custom logger
* Refactored MediaViewer to accept photo-like objects instead of URIs
* Added license / attribution button to MediaViewer
* Moved delete button into MainPhotoDisplay so each photo has its own button
and it can be laid out relative to its photo
* Add custom header to MediaViewer when accessed from TaxonDetial
* Allow DisplayTaxonName to accept custom text components as props
* Added darker bg to photo on TaxonDetail to make title more legible
* Obscuration cell and accuracy circle on ObsDetail map
* DetailsMap view
* Copy and share location from DetailsMap
* Patched react-native-maps to address bug with showsUserLocation
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Show icon in DisplayTaxon if no photo; closes#769
* Update icons with correct mollusca name
* Fix tests
* Fix tests and add test for iconic taxon icon; fix API call for default photo
* Start building explore screen
* Header for Explore screen
* Fix button build
* Move ObsFlashList to shared components for use in Explore
* Fix background transparency on SegmentedButtons
* Use reusable components for map and ObservationLocation
* Use search observations API to show results in explore views
* Add infinite scroll hook to species, observers, and identifiers views
* Update snapshots and create ExploreFlashList for consistent header animation
* Float segmented buttons above observation lists in explore
* Use queryparams for API calls; add loading state to each view
* Update side menu
* UI for side menu
* Add placeholder components; adjust for small screen sizes
* Code cleanup
* Update snapshots
* Query for second username element in e2e test
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* WIP: very rough start at pulling state up into a container for MyObservations
I made a parallel MyObservations component and container so ObservationViews
can still be used as a working reference, but the ultimate goal here is to
focus MyObservations on presentation, and pull state and other business logic
up into a container component. This should make MyObservations a bit more
testable and clean up a very large and confusing file.
I'm also trying to move away from a generalized representation of observations
on all screens, which is why I want to name it MyObservations and not
ObservationViews. MyObservations has a lot of unique functionality that we
won't need elsewhere, and we can modularize stuff when we need to use it in
multiple places.
* UI updates for header, toolbar, empty component
* Add pressable component and login sheet
* UI improvements; get infinite scroll working
* UI improvements & additions for empty screen & bottom sheet
* Show login sheet when a user presses sync but is not logged in
* Fix backdrop close for AddObsModal
* Move UI elements to MyObservations
* Fix unit tests for MyObservations
* Fix for login sheet
* Set header height to a different height on Android to account for safe area
* Fix failing tests & rerender of user icon in navbar
* Remove scientific name from DisplayTaxonName to match Figma UI
* Set height above toolbar dynamically for sticky toolbar
* Add prop to display or hide second name in DisplayTaxonName
* Use RN styling to style grid view for MyObs flatlist
* Fix failing project obs test
* Create separate ToolbarContainer to separate presentation from logic; fix upload count
* Merge main and show onboarding based on user's total obs count
* Fix display taxon name styling and remove header fade on iOS
* Add header text for 0 observations, logged out state
* Update infinite scroll to 50 obs at a time; make loading wheel show faster
* Add uploaded status to toolbar
* Apply bandaid fix to stop Android from crashing on start
* Start adding new icons to MyObs
* Add circular progress; show upload icons at correct times during upload
* Add disabled props for accessibility state
* Fix tests; update snapshots
* Code cleanup
* Code cleanup & add inaturalist icon
* Fix merge conflict and add icon
* Add inaturalist icon
* Fix navigation to obs list and toolbar status when upload completes
* Move showLoginSheet code to MyObsContainer
* Fix toolbar status text
* Sync toolbar with upload status progress
* Clear toolbar after nav
* Tests passing
* Update e2e test
* Target login button in e2e tests
* Fix failing e2e tests with new testID for login button
* Update button snapshot to include new testID
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
This uses an npm package to convert SVGs into an icon font, allowing us to
not step on each others' toes when adding new icons in branches and
simplifying the icon addition process. It also allows us to track changes to
the icons, and embed them directly as SVGs if we need to.
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
Somehow many of the icon names in Fontastic were changed. This changes them
back to match what we use on the web and what we use in the main branch of
this repo, with a few exceptions to attempt to make names more consistent.
Also updated the README in the hopes of avoiding situations like this in the
future.
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* Add heading typography components
* Add typography components for body, list, and subheading
* Add font sizes/line heights to tailwind css
* Replace Text components in UI library with new typography; closes#383
* Update pixel size of fonts and use Heading2 throughout UI library
* Remove repeated logic from code
* Fix sizes for typography components
* Add custom iNat icon font to iOS and Android
* Add custom icon to iNat UI library
* Create custom iNat icons using IconButton for add obs modal & footer
* Add icon placeholders to observation edit screen
* Test fixes for accessibility
* Move paper provider into new component; fix names in UI library
* Update README with clarified directions about changing the name of the .ttf file
* Add Whitney fonts to project
* Use styled components to pass whitney as default font for all app text
* Add header component using Papyrus as default font
* Update realm and add custom font examples for Android
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>