* perf(mobile): optimize date loading with batch loading
Introduce DateBatchLoader to reduce the number of database queries by loading dates in batches, improving performance when querying large lists.
* remove unused totalCount parameter from DateBatchLoader
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
Dont show drag scroll date in search page
* When using the drag scroll, the date of the current image is shown. This is now made toggleable.
* For the mobile search result page, the display of the date is now disabled because the results are not sorted by date and therefore a display of the date is not desirable.
It seems insta360 stores metadata in XMP GPano tags, with their own
non-standard and undocumented addition `SourceImageCreateTime`. For some
pictures this is the only EXIF tag containing a creation time.
* fix(web): search bar deactivates when focus exits
* fix: disable search bar on destroy
For example, on the search page. If the escape key is pressed while the advanced filters button is focused, the search page will close but the search bar will remain activated.
* remove face, person and face search entities
update tests and mappers
check if face relation exists
update sql
unused imports
* pr feedback
generate sql, remove unused imports
* feat: sync pictureFile with oidc if it isn't set already
fix: move picture writer to get userId
fix: move await promise to the top of the setPicure function before checking its value and automatically create the user folder
chore: code cleanup
* fix: extension double dot
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* always patch package when running npm i, install immich CLI outside of directory so post install doesnt run
* handles case where query is an object and defined but origin is not.
* move patch-package from a dev dependency to a normal dependency. Also copy the patches folder for the docker build to use and patch with
* fix Dockerfile
* use query.reject instead of throw for queryError
* package-lock to reflect the dev dependency change
* dont throw the error, just provide an empty string for query.origin if it does not exist
* remove npm link and demote patch-package back to a dev dependency
* modify patch to add defensive check to catch queries that will fail to parse and reject