From f12854ef4b22be12290f08124e6e7b7c0340270f Mon Sep 17 00:00:00 2001
From: Mergen <71030751+MergenStudios@users.noreply.github.com>
Date: Wed, 12 Feb 2025 10:51:48 +0100
Subject: [PATCH 01/12] Update Setup instructions README.md
In the curent README it was not made clear that db_host and db_port have to be added for power tools to work
---
README.md | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 92ceefe..c73171d 100644
--- a/README.md
+++ b/README.md
@@ -48,13 +48,18 @@ services:
- .env
```
-Add the Immich API Key and immich url's to the env file (which you already have for the immich)
+Add the Immich API Key and immich url's to the env file (which you already have for the immich).
+You also need to add `DB_PORT` (Default 5432) and `DB_HOST`, which has to be set to the name of the immich database
+container (Default `immich_postgres`).
```bash
IMMICH_API_KEY= # your_immich_api_key
IMMICH_URL = "http://local-ip-of-immich:port" # Your immich instace ip address and port
EXTERNAL_IMMICH_URL = "https://external-address" # External address of immich
+DB_PORT = "5432"
+DB_HOST = "immich_postgres"
+
# Optional
GOOGLE_MAPS_API_KEY= # Google Maps API Key
GEMINI_API_KEY= # Gemini API Key
@@ -149,4 +154,4 @@ Google Gemini 1.5 Flash model is used for parsing your search query in "Find" pa
## Contributing
-Feel free to contribute to this project, I'm open to any suggestions and improvements. Please read the [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.
\ No newline at end of file
+Feel free to contribute to this project, I'm open to any suggestions and improvements. Please read the [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.
From cf59b4fa3f35c3dcdddb62f07eb99d5c96471458 Mon Sep 17 00:00:00 2001
From: Varun Raj
Date: Tue, 29 Jul 2025 10:01:59 +0530
Subject: [PATCH 02/12] feat: album multi select using select
Signed-off-by: Varun Raj
---
src/components/albums/list/AlbumThumbnail.tsx | 24 +--
src/components/shared/FloatingBar.tsx | 6 +-
src/hooks/index.ts | 1 +
src/hooks/useAlbumSelection.ts | 68 +++++++++
src/pages/albums/index.tsx | 138 +++++++++++-------
5 files changed, 176 insertions(+), 61 deletions(-)
create mode 100644 src/hooks/index.ts
create mode 100644 src/hooks/useAlbumSelection.ts
diff --git a/src/components/albums/list/AlbumThumbnail.tsx b/src/components/albums/list/AlbumThumbnail.tsx
index e8019be..b2973fe 100644
--- a/src/components/albums/list/AlbumThumbnail.tsx
+++ b/src/components/albums/list/AlbumThumbnail.tsx
@@ -1,4 +1,4 @@
-import React, { useMemo, useState } from 'react'
+import React, { useMemo } from 'react'
import Link from 'next/link';
import { humanizeBytes, humanizeNumber, pluralize } from '@/helpers/string.helper';
@@ -12,16 +12,20 @@ import { Calendar, Camera } from 'lucide-react';
interface IAlbumThumbnailProps {
album: IAlbum;
- onSelect: (checked: boolean) => void;
+ onSelect: (albumId: string, isShiftClick?: boolean) => void;
selected: boolean;
}
-export default function AlbumThumbnail({ album, onSelect, selected }: IAlbumThumbnailProps) {
- const [isSelected, setIsSelected] = useState(selected);
+export default function AlbumThumbnail({ album, onSelect, selected }: IAlbumThumbnailProps) {
const numberOfDays = useMemo(() => {
return differenceInDays(album.lastPhotoDate, album.firstPhotoDate);
}, [album.firstPhotoDate, album.lastPhotoDate]);
+ const handleCheckboxChange = (event: React.MouseEvent) => {
+ const isShiftClick = event.shiftKey;
+ onSelect(album.id, isShiftClick);
+ };
+
return (