Commit Graph

198 Commits

Author SHA1 Message Date
Johannes Klein
2027d77ac7 772 zoom button (#796)
* Refactor prop name

* Use Text component with Whitney Medium for zoom text

* Use multiplication sign in zoom button

* Update snapshots to new prop handling

* Refactor device and other props into a container component

* Use neutral zoom position as starting point

* Show zoom button not for single lens devices

* Cycle through neutralZoom maxZoom and minZoom

* when the device has only one physical lens it should start in the min zoom
2023-09-25 21:00:47 +02:00
Amanda Bullington
9ada594505 Show taxon pins on Explore Map (#778)
* Show taxon pins on Explore Map; allow navigation; closes #750

* Add test coverage for Map component

* Calculations for UTF position

* Map tiles pressable with UTF Grid overlay

* Fix tests

* Clean up tests
2023-09-21 16:08:39 -07:00
Amanda Bullington
5647e3a902 Show icon in DisplayTaxon if no photo (#775)
* 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
2023-09-11 09:57:27 -07:00
Amanda Bullington
4942664432 Replace IconButton with INatIconButton (#749)
* Replace IconButton with INatIconButton

* Fix tests
2023-08-28 13:01:48 -07:00
Amanda Bullington
e26db07cf4 Make INatIconButton throw when no accessibilityLabel and fix errors (#748) 2023-08-25 08:46:32 -07:00
Amanda Bullington
0d203dfce0 Update activity list with suggested IDs (#740)
* Pass non-serialized values to AddID; handle id creation before nav; closes #721

* Fix tests
2023-08-17 19:27:49 -07:00
Amanda Bullington
dceccaece4 Add tests to DisplayTaxon; closes #726 (#735) 2023-08-14 17:04:01 -07:00
Amanda Bullington
85f11fdf69 Add IconicTaxonChooser to ObsEdit (#733) 2023-08-10 18:01:24 -07:00
Amanda Bullington
5b913ad1a7 Create IconicTaxonChooser, add to UI library, and write tests (#732) 2023-08-09 10:04:21 -07:00
Amanda Bullington
20d8308e5f Explore UI (#731)
* 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
2023-08-08 12:29:17 -07:00
Ken-ichi Ueda
af2a5fbcb8 Replace current loc button w/ loading; make lower right interactive 2023-07-31 13:19:32 -07:00
Ken-ichi
7ae95519ea Iconic taxa icons (#723)
* Added iconic taxa icons; cleaned up some other icon files
* Updated snapshots
* Renamed ban icon to match fontawesome convention we use on the web
2023-07-28 10:22:34 -07:00
Ken-ichi Ueda
5717b84718 Minor test updates 2023-07-13 16:20:41 -07:00
Angie Ta
ee1f1bb555 temporary ignore photoscroll accessibility test 2023-07-11 17:38:05 -07:00
Johannes Klein
7d0f011340 Do not log error o console when it is expected to be thrown in icon button test
Fixes #674
2023-07-07 12:35:29 +02:00
Amanda Bullington
9c6106f5d0 Refactor tests to use minimum viable test factories (#681)
* Make minimum viable RemoteComment

* Minimum vialbe RemoteIdentification

* Minimum viable remote project, place, and messages

* Create minimum viable records for all remote factories

* Remove factories for local device data

* Minimum viable local taxon, comment, id

* Minimum viable for local observation photo (photo has no primary key)

* Minimum viable LocalUser

* Minimum viable record for LocalObservation
2023-06-27 17:06:01 -07:00
Amanda Bullington
d58415dd27 UI for side menu (#668)
* 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>
2023-06-26 10:34:51 -07:00
Ken-ichi Ueda
b2d7f0aff4 Remove slivers of white around check button on StandardCamera 2023-06-02 12:07:46 -07:00
Amanda Bullington
f742aec7fd Tappable areas bigger in camera on phones (#652)
* Expand tappable areas in camera on handsets; closes #624

* Fix tests
2023-05-31 11:55:48 -07:00
Angie
64808d7191 543 upload status UI is not updating while uploading (#573)
Replaced old rotate animation code to use Reanimated2 library, added cancel animation call
2023-05-25 14:13:05 -07:00
Ken-ichi Ueda
772c99a33e Added active opacity to Button; use solid colors for disabled buttons 2023-05-22 16:15:13 -07:00
Ken-ichi
00ae38ddda Standard camera photo delete (#615)
* Ensure layout of the PhotoCarousel photos doesn't change in delete mode
* Stop conflating screen-size layout differences with tablet layout differences
* Bugfix: deleting one photo in the StandardCamera removed all photos
* Animated rotation of rotatable elements on StandardCamera
* Ensure loading status shows while first photo is being taken
* Tried to remove some open handles and shore up some unhappy tests
2023-05-19 13:16:32 -07:00
Angie
b7553e852a Obs detail: Details Tab and Activity Tab styling (#605)
* PhotoScroll styling and header styling
* Data Tab renamed to Details Tab, styling to match designs, changed text strings,
* Fixed failing tests for ObservationLocation, dividers added for activity item
* Moved geoprivacy to ObservationLocation, removed console logs
* Moved suggest id and add comment buttons out of activity tab, added stickybar, PhotoScroll buttons, back button
* Show headerbackbutton when no image
* Bugfix: coordinates didn't have enough fractional digits

---------

Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
2023-05-11 16:35:49 -07:00
Ken-ichi Ueda
62e6868937 Minor fixes
* Show remark in Add ID
* Lock screen orientation in StandardCamera for phones
* Stop crosshairs from blocking gestures in LocationPicker
* Changed thresholds for optimal accuracy in LocationPicker
* Tried to improve key for DisplayTaxonName
* Added stub content for Data tab on TaxonDetails
* Added delimiters and pluralization for counts on UserProfile
2023-05-02 18:34:50 -07:00
Johannes Klein
1896ba558e 398 inline user component (#442)
* Use Body3 for username

* Add a11y role to user icon

* Add a11y matcher to tests

* Add snapshot test for normal state

* Fix mock user

* Rearrange test

* Update InlineUser.test.js.snap

* Update InlineUser test with i18n init

* Update UserIcon.test.js

* Replace icon components

* Update InlineUser.test.js.snap

* Different icon

* Update UserIcon.test.js

* Update snapshot tests for InlineUser

* Update InlineUser.test.js.snap
2023-04-26 11:30:52 -07:00
Johannes Klein
1439c40c6a Upgrading the app to react-native 0.71.7 (#592)
* Changes in the unproblematic files

* Remove manually linked react-native-config

* Updates to files because of upgrade

* RN 71 and dependencies packages

* Update snapshot tests

* RN 71.1

* Fix missing jest mock

* RN 71.7

* Missing mock

* Fix errors with apisauce and axios

* Remove react-native-codegen direct dependency

* Code style
2023-04-25 17:18:24 +02:00
Johannes Klein
376144b750 Upgrade to Jest 28, breaking changes 2023-04-24 17:24:52 +02:00
Johannes Klein
11bf277200 Upgrade RNTL, breaking changes 2023-04-24 13:25:38 +02:00
Johannes Klein
15b0fac720 SVG snapshot test changes 2023-04-20 19:20:23 +02:00
Ken-ichi
5747d4d1d9 Several minor UI fixes (#572)
* use `shrink` tailwind class instead of hard-coded max widths to control
  overflow in a few situations
* fixed some spacing issues with the Toolbar during upload
* center text in buttons by default
* export KebabMenu from SharedComponents (how was it working without this?)
* added some extra colors for debugging purposes
2023-04-17 15:50:39 -07:00
Amanda Bullington
bf2aa516c3 UI updates for Obs Edit (#565)
* Styling updates to ObsEdit screen

* Fix padding/margins and font style in TextInput

* Styling updates for identification section

* UI changes; add checkmarks for evidence

* Only show arrows for multiple observations
2023-04-04 11:37:05 -07:00
Chris
5385c5404b Implement forced state update to rerender svg content (#550)
* Implement forced state update to rerender svg content

* Fix tests
2023-03-20 15:26:56 -07:00
Johannes Klein
868c95ee13 494 activity count (#495)
* Refactor to boolean prop for white or gray

* Rename prop

* Add component for comments count

* Reorder strings

* Use CommentsCount

* Add identifications count component

* Add snapshot test for ActivityCount

* Add tests TODO for component

* Updated with new icons

* Add snapshot tests

* Update ActivityCount.test.js.snap

* Unit test for count text

* Remove testing comments count in ObsList test

* Update with changes from main

* Update IdentificationsCount.test.js.snap

* Remove components from ObsStatus
2023-03-17 11:55:29 -07:00
Amanda Bullington
bbc5b9d67d MyObservations refactor (#510)
* 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>
2023-03-14 10:54:33 -07:00
Ken-ichi
3320aec7f6 Add icons to repo & use script to generate font (#518)
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>
2023-03-10 12:21:09 -08:00
Angie
fb23d925c4 400 uploadstatus component (#488)
* UploadStatus component

* Added UploadStatus to SharedComponents/index.js

* Change upload complete icon and color

* QualityGradeStatus accessibility labels

* Saved Observation Animation for UploadStatus

* Changed widths of component

* Unit test for UploadStatus

* Unit test and snapshot for UploadStatus

* Update snapshot tests

* Changes requested, accessibility labels for UploadStatus progress, accessibility tests

* Update snapshot tests

* Testing updated snapshot test

* Fix style

* And again

---------

Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
2023-03-09 17:49:32 +01:00
Yahia Jabeur
3342dfa9e2 483 create PhotoCount component (#497)
* 483 create PhotoCount component

* 483 PhotoCount refinement

* 483 add PhotoCount component unit test

* 483 add shadow to PhotoCount component

* Use Body3 component instead of SVG text

* 483 fix unit tests

* Find component by text rather than by ID

* Remove unused test id

---------

Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
2023-03-09 16:44:45 +01:00
Angie
c3ad393a0d 455 update colors and unify usage in the app (#505)
* Update tailwind colors to match current designs, update PaperProviderColors, unify usage

* Change snapshot test colors to match current design colors

* Added accessibility labels

* Edited accessibility labels

* Remove surface color, unify usage

* Update colors
2023-03-06 11:43:42 -08:00
Chris
4d4ad83e64 432 obs list item 2 (#486)
* 432 obs list item

* Fix gradient

* Merge conflict essential change

* Merge conflict change required

* Fix tests

* Lint

* Make requested changes

* Space params

* Fix projects ui

* lint

* Use it.each

* lint

---------

Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
2023-02-17 14:10:33 +01:00
Johannes Klein
621c39dfda 415 snapshot testing for UI buttons (#458)
* Add font weight to Typography elements

* Add Heading5

* Typography snapshot tests

* Add letterSpacing to Heading 4 and 5

* Update Button padding

* Update Button styling

* Add rounded-lg

* Code style and comments

* Add button tests

* Added loading state color to buttons

* Add default color to text

* Use text class name instead

* Change text

* Add non default color text

* Snapshot for icon

* Default text color into button snap

* Update INatIcon.js

* Add Divider component

* Updates to Tabs UI

* Update color

* Add Divider test

* Show underline only when active

* Tabs snapshot

* Update Button UI

* Revert "Update Button UI"

This reverts commit 5361f57dac.

* Update ActivityCount.js

* Get color from theme in buttons

* Use translated string for hints in Tabs snapshots

* Refactor fct args

* Update Tabs

* Remove async

* Use .each in Button test

* Remove comment

* Structuring

* Remove duplicate application of style defaults

* Remove async from Typography
2023-02-15 11:31:16 +01:00
Amanda Bullington
7a98b6faf1 Timeless dates (#457)
* Add DateDisplay to ObsCard and make first pass at translation strings

* Add failing tests (due to lack of localization) for timeless dates

* WIP: trying to ensure i18next gets initialized before tests run

The remaining test failures might be legit. This probably breaks the actual
app, though.

* Got the rest of the tests working

* Updated tests to assume UTC
* Updated README to advise against using `npx jest` so test runs always have
  the env vars we specify in our `npm test` script
* Moved i18next initialization to an explicitly-named file
* Use i18next init function in app
* Fixed up remaining tests

* Added test for non-English localization of date format

* Cleanup

* Made DateDisplay explicitly handle strings not Dates

* Restore skipped localization tests for MyObservations

* Remove duplicative tests from DateDisplay unit test

* Added note to the README about initializing i18next

* Updated change to DateDisplay in main

---------

Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
2023-02-14 22:14:38 +01:00
Ken-ichi Ueda
3bc52a3e7f Minor touch-ups for unique keys and tests not wrapped in act 2023-02-07 23:41:56 -05:00
Chris
885f2e72d8 Location display component (#446)
Closes #438
2023-02-07 23:19:50 -05:00
Chris
dc53c47a2a Date display component (#445)
Closes #437
2023-02-07 20:54:59 -05:00
Johannes Klein
e57aac93f6 418 create an index.js file for importing shared components (#427)
* Update .eslintrc.js

* Create index.js

* Change Button usage in GridItem

* Replace imports

* Add strings

* Add hint prop to button

* Add a11y hint prop to EvidenceButton

* Add EvidenceButton to index

* Add a11y props to EvidenceButton

* Update UiLibrary.js

* Add a11y props to CloseButton

* Add CloseButton to index and UiLib

* Rename function

* Update string

* Add a11y props to AddObsButton

* Add Tabs to index

* Linebreak

* Add Typography to index

* Remove unused text

* Refactor UserIcon test coverage in it's own test

* Add UserIcon to index

* Add UserIcon to UiLib

* Add InlineUser to index

* Add Quality badge to index

* Update UiLibrary.js

* Remove unused component

* Change AddObsButton a11y label

* Change hint

* Use consistent uri in snapshots

* Add snapshot to InlineUser

* Fix wrong user key

* Update Tabs.test.js

* Snapshot TODO

* Update NavButton.js

* Update snapshot

* Add snapshot for active user icon

* Remove snapshot result

* Add ActivityCount to index

* Update UiLibrary.js
2023-02-04 15:18:42 +01:00
Chris
4e99ee3526 create view hider component (#412)
* Create view hider component

* Fix logic to be easier to use on consumer side

* Add tests

* Fix errors and tests

---------

Co-authored-by: Amanda Bullington <35536439+albullington@users.noreply.github.com>
Co-authored-by: Amanda Bullington <albullington@gmail.com>
2023-02-01 15:23:16 -08:00
Chris
959a61316e Create base inline user component (#410)
* Create base inline user component

* make icon closer to spec

* use premade func

* Add unit tests

* Add unsaved changes

* Add unsaved changes

* Change a11y role to get branch to run without errors

* Fix comments

* Lint

* Add nav to user profile

* Move InlineUser in UiLib and use currentUser if true

* Add a11y label and testID

* Add currentUser to UiLib

* Reorder tests

* Rename mock

* Await photos in tests

* Fix order

* Refactor Inline to use UserIcon and add no internet icon

* Update UiLibrary.js

* Test also that unwanted images are not present

* Use InlineUser component in ObsDetail and ActivityItem

* Update UserIcon.js

---------

Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
2023-01-31 21:41:26 +01:00
Johannes Klein
14d0239468 308 accessibility tests (#393)
* Regroup accessibility label strings at end of strings file
* Add accessibility test to AddID
* Add a11y labels to AddID
* Add a11y test to StandardCamera
* Add a11y props to StandardCamera
* Remove unit test with only todos
* Add a11y test to Messages
* Refactor PhotoScroll test into own file
* Add a11y test to ObsDetails
* Add a11y test to ObsList
* Add a11y matcher to PhotoGallery test
* Add a11y matcher to ProjectDetails test
* Add a11y matcher to ProjectObservations test
* Add a11y matcher to Projects test
* Add a11y props to ProjectList
* Add a11y props to ProjectTabs
* Add a11y matcher to Search
* Add a11y matcher to UserProfile test
* Add a11y test matcher to UserText test
* Update react-native-accessibility-engine
* Add a11y matcher to Tabs test
* Add a11y label to a selectable photo
* Refactor DataTab tests into separate file
* Refactor ActivityTab test out into own file
* Added a test how to check if a component uses a mocked container
* Add wrong a11y props to TextInput left icon
* Enable a11y test with actual BottomSheet because mock does not pass a11y props down
* Add a11y default props to Button
2023-01-27 12:30:57 -08:00