* feat(mobile): shared album activities
* add like buttons and fix behavior of unliking
* fix: conditionally show activity button and fix title truncations
* fix(mobile): newest/oldest album sort (#20743)
* fix(mobile): newest/oldest album sort
* chore: use sqlite to determine album asset timestamps
* Fix missing future
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: async handling of sort
* chore: tests
* chore: code review changes
* fix: use created at for newest asset
* fix: use localDateTime for sorting
* chore: cleanup
* chore: use final
* feat: loading indicator
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix(mobile): newest/oldest album sort
* chore: use sqlite to determine album asset timestamps
* Fix missing future
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: async handling of sort
* chore: tests
* chore: code review changes
* fix: use created at for newest asset
* fix: use localDateTime for sorting
* chore: cleanup
* chore: use final
* feat: loading indicator
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
The height of the search results element was unrestricted, which meant that the
asset visibility calculations were completely incorrect. The consequence of
this is that assets which should not have been visible, were. In practical
terms, all assets below the viewport were rendered when they shouldn't have
been which is terrible for performance. Limiting the height of the viewport
fixes that calculation and assets are correctly hidden.
The consequence of limiting the height of the viewport is that the intersector
then incorrectly thought the scroll position was always at the end. This has
been fixed by calculating the position of sliding window against the calculated
asset layout container height.
Co-authored-by: Alex <alex.tran1502@gmail.com>
The thumbhash had a z-index setting which meant it would cover the search bar,
and would always cause weird animations when scrolling up in search results.
This is fixable by removing the z-index and moving it in front the other
elements to get a naturally higher higher z-index preference.
The contents of search results are slightly offset by the search bar, search
terms and spacing (margins/padding), and needs to be factored in when
calculating whether an asset is visible or not. The offset was 0, which
meant that assets were removed from view too early.