diff --git a/src/components/overlays/detailsModal/components/overlays/CollectionOverlay.tsx b/src/components/overlays/detailsModal/components/overlays/CollectionOverlay.tsx index b9ce9758..6524013a 100644 --- a/src/components/overlays/detailsModal/components/overlays/CollectionOverlay.tsx +++ b/src/components/overlays/detailsModal/components/overlays/CollectionOverlay.tsx @@ -9,6 +9,7 @@ import { MediaCard } from "@/components/media/MediaCard"; import { Flare } from "@/components/utils/Flare"; import { useIsMobile } from "@/hooks/useIsMobile"; import { CarouselNavButtons } from "@/pages/discover/components/CarouselNavButtons"; +import { useBookmarkStore } from "@/stores/bookmarks"; import { useOverlayStack } from "@/stores/interface/overlayStack"; import { MediaItem } from "@/utils/mediaTypes"; @@ -109,6 +110,9 @@ export function CollectionOverlay({ }: CollectionOverlayProps) { const { t } = useTranslation(); const { showModal } = useOverlayStack(); + const addBookmarkWithGroups = useBookmarkStore( + (s) => s.addBookmarkWithGroups, + ); const [collection, setCollection] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); @@ -161,6 +165,29 @@ export function CollectionOverlay({ }; }; + const handleBookmarkCollection = () => { + if (!collection?.parts) return; + + collection.parts.forEach((movie) => { + const year = movie.release_date + ? new Date(movie.release_date).getFullYear() + : undefined; + + // Skip movies without a release year + if (year === undefined) return; + + const meta = { + tmdbId: movie.id.toString(), + type: "movie" as const, + title: movie.title, + releaseYear: year, + poster: getMediaPoster(movie.poster_path) || "/placeholder.png", + }; + + addBookmarkWithGroups(meta, [collectionName]); + }); + }; + const handleShowDetails = (media: MediaItem) => { // Show details modal and close collection overlay showModal("details", { @@ -203,14 +230,28 @@ export function CollectionOverlay({
{collection && ( -

- - {collection.parts.length} - {" "} - {collection.parts.length > 1 - ? t("details.collection.movies") - : t("details.collection.movie")} -

+ <> +

+ + {collection.parts.length} + {" "} + {collection.parts.length > 1 + ? t("details.collection.movies") + : t("details.collection.movie")} +

+ + )} {!loading && !error && sortedMovies.length > 1 && (