* Rename GroupPhotos to tsx file
* Type functions
* Type onLayout prop
* Remove flow
* Rename GroupPhotoImage to tsx
* Remove flow
* Preliminary type for function prop
* Item interface as is consumed here
* Add type for style
* Type props passed in to GroupPhotoImage
* This is not exported from the hook
* Pass 0 as fallback
Adding ?? 0 passes always a number. Before onLayout height is unknown but since show is false this fallback here should not change anything, only make TS happy because it can't infer from the above check of === number.
* Type list data
* Type data that is propped in
* Type function params
* Helper to check for empty item that solves TS errors
* Fix No inline style
* Reorder
* Wrap header component in useMemo
* use bottom sheet api instead of returning null when hidden
* dedupe inside modal dismiss logic
* rename handleSnapPress -> openSheet
* ts fixes and split render into two branches
* fix integration test so we check for BottomSheet behavior rather than child absence
* snapshot updates + comments
* prevent hidden-state BottomSheet dismiss from triggering onPressClose
* port changes from BottomSheet to BottomSheetV2
* Refactor dismiss button into own component
* Add an active opacity
* First iteration of the advanced mode banner
* Add dismiss state to layout slice
* Use layout slice state to dismiss banner
* Rename header file
* Refactor header to control wether to show error state
* Add Advanced mode banner to header
If a user is logged in AND has 100+ obs uploaded AND is in default mode, show a new banner that appears above observations and beneath announcements
* Reuse banner dismiss button in Login banner
* Remove function wrapper
* Forgot to prop in number of observations
* Import layout slice properties directly
* Import directly from layout slice
* Keep AdvancedModeBanner purely presentational
* Update AdvancedModeBanner.tsx
* Text buttons use the actual text as label I think
* Update AdvancedModeBanner.tsx
* retrigger notification query on effect rather than new query
* move unviewedObs refetch to effect
* fix test
* Remove trailing whitespaces
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* Mark API calls that do not use the fields param
* Add more TODOs to api calls
* Remove TODO
* Remove some TODOs
* Update task
* Add tickets
* Not required
* Add tickets
* Update ProjectDetailsContainer.js
* Type navigation
* Refactor return type of authenticate user to be an object
* Update AuthenticationService.test.js
* Also return number of uploaded observations from user authentication
* Type navigation
* Update types.ts
* Update types.ts
* We do check if this is defined above
* If a user has more than 100 uploaded obs switch them to advanced mode
* Update LoginForm.tsx
* Add test coverage for remote user with observations
* add debugMode layout state and use for hook
* don't return toggle from GP hook
* fix four bad isDebugMode calls
* fix 6 more bad isDebugMode calls
* move non-hook debugMode check to local where it's needed