Enables developers to extend the existing config and API. Initial proof
of concept and work in progress. Implementation details may change.
Feedback welcome!
Signed-off-by: Michael Mayer <michael@photoprism.app>
* virtualize mosaic-view
* start virtualizing parts of the list view
* drastically improve mosaic component updating performance by not rendering cards if not necessary
* speed up list view virtualization by preventing the rendering of vue-components
* start virtualizing cards view
* continue virtualizing card view
* finish virtualizing cards
* start moving common virtualization logic into shared file
* try speeding up access to calculated photo details
* remove console.log
* improve accuracy of cards-placeholder elements
* remove console.log
* start fixing memoized values not updating on change
* fixing memoized values not updating on change
* remove console.logs
* fix getting location info after memoizing the function
* remove obsolete comment
* start rendering of only visible icons in mosaic-view
* continue rendering of only visible icons in mosaic-view
* implement rendering of only visible icons in cards-view
* implement rendering of only visible icons in list-view
* memoize some photo-model functions that are called when rendering mosaic- or cards-view
* fix cards sometimes getting smaller when scrolling
* improve fix for cards sometimes getting smaller when scrolling
* prevent rendering of no-photos-alert if photos are present
* fix selection issues after implementing conditional button-rendering
* speedup mosaic rendering by replacing vue components with html components
* speedup cards rendering by replacing vue components with html components
* speedup list rendering by replacing vue components with html components
* fix removed elements leaving behind placeholders in view
* speedup photo view rendering by replacing vue buttons and icons with regular html components
* fix positioning of card-title in placeholder elements
* fix missing icons after multiselect or select via touch
* prevent flickering of favourite button on click
* prevent flickering of favourite button on click
* use div instead of v-flex
* replace inline styles with css classes
* re-add actually necessary css-classes
* add size-containment to mosaic-elements to reduce re-layouting costs when virtualization replaces children
* fix typo in comment
* use plain html instead of components and css-classes instead of inline styles in cards.vue
* improve list scrolling by not using v-data-table for a static table
* fix icon-color on card-details in light-theme
* fix card-details showing wrong icons with wrong height on pixel 3
* fix animated gif-previews getting out of image-bounds when hovering in firefox
* fix closing brackets in mosaic view not matching opening brackets
* fix live-photo icon in mosaic- cards and list components
* improve render performance by replacing v-hover vue-component with css-hidden button
* prevent unnecessary rerenders
* prevent unnecessary rerenders
* undo "prevent unnecessary rerender" because the real-world-effect is negligable
* load next batch earlier to reduce change of scrolling to the end before the load finished
* add explanation on why the selection-button isnt removed via v-if
* remove console.log
* speed up rendering by reducing amount of observed items
* fix favourite-buttons in non-search views
* prevent unnecessary observeItems-calls by only observing items when photos changed
Co-authored-by: Heiko Mathes <heiko@pop-os.localdomain>