From 09ad3dd4829bcd44e17f2e50f396536d189fe6a0 Mon Sep 17 00:00:00 2001 From: AlexCode-dot Date: Wed, 4 Jun 2025 12:25:38 +0200 Subject: [PATCH] fix(screening/admin) - Filter out expired screening for detailed moviepage - Added user feedback on admin data --- src/app/admin/page.jsx | 6 +++++- src/app/movies/[id]/page.jsx | 4 ++-- src/components/MovieDetailCard.jsx | 6 +++++- src/components/admin/AdminList.jsx | 14 ++++++++++++-- src/components/admin/AdminRoomList.jsx | 11 +++++++++-- src/hooks/useAdminData.js | 8 +++++--- src/lib/db/screeningDbService.js | 6 ++++++ src/styles/admin/AdminPage.scss | 14 ++++++++++++++ 8 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/app/admin/page.jsx b/src/app/admin/page.jsx index 4f3ea63..4a61174 100644 --- a/src/app/admin/page.jsx +++ b/src/app/admin/page.jsx @@ -38,6 +38,7 @@ export default function AdminPanel() { roomError, setRoomError, confirmDeleteRoom, + loading, } = useAdminData() return ( @@ -56,12 +57,14 @@ export default function AdminPanel() { screenings={screenings} onDeleteMovie={confirmDeleteMovie} onDeleteScreening={confirmDeleteScreening} + loading={loading} /> setDeleteError(null)} />
- +

Alla salonger

+ setRoomError(null)} />
@@ -111,6 +114,7 @@ export default function AdminPanel() {
+

Alla salonger

setRoomError(null)} />
diff --git a/src/app/movies/[id]/page.jsx b/src/app/movies/[id]/page.jsx index 88ec342..17c7293 100644 --- a/src/app/movies/[id]/page.jsx +++ b/src/app/movies/[id]/page.jsx @@ -1,7 +1,7 @@ import mongoose from 'mongoose' import MovieDetailCard from '@/components/MovieDetailCard' import { findMovieById } from '@/lib/db/movieDbService' -import { getAllScreeningsWithMovieInfo } from '@/lib/db/screeningDbService' +import { getActiveScreeningsWithMovieInfo } from '@/lib/db/screeningDbService' import { notFound } from 'next/navigation' import { translatePlot } from '@/lib/services/translateApiService' @@ -25,7 +25,7 @@ export default async function MovieDetailPage({ params }) { : 'Ursäkta, ingen filmbeskrivning finns tillgänglig just nu.' //filter screenings for only one specific movie and group them by date - const allScreenings = await getAllScreeningsWithMovieInfo() + const allScreenings = await getActiveScreeningsWithMovieInfo() const screenings = allScreenings .filter((s) => s.movie._id.toString() === movieId) .reduce((acc, curr) => { diff --git a/src/components/MovieDetailCard.jsx b/src/components/MovieDetailCard.jsx index ab08efe..06fa761 100644 --- a/src/components/MovieDetailCard.jsx +++ b/src/components/MovieDetailCard.jsx @@ -51,7 +51,11 @@ export default function MovieDetailCard({ {/*Booking tickets*/}
Boka biljetter
- + {screenings.length > 0 ? ( + + ) : ( +

Inga kommande visningar tillgängliga just nu.

+ )}
diff --git a/src/components/admin/AdminList.jsx b/src/components/admin/AdminList.jsx index c25b6c4..49b830e 100644 --- a/src/components/admin/AdminList.jsx +++ b/src/components/admin/AdminList.jsx @@ -3,9 +3,17 @@ import { useAdminList } from '@/hooks/useAdminList' import { formatTime, formatDate, formatDateTime } from '@/lib/utils/formatDateTime' -export default function AdminList({ movies, screenings, onDeleteMovie, onDeleteScreening }) { +export default function AdminList({ movies, screenings, onDeleteMovie, onDeleteScreening, loading }) { const { isExpanded, toggle } = useAdminList() + if (loading) { + return

Laddar filmer...

+ } + + if (movies.length === 0) { + return

Inga filmer tillgängliga

+ } + return (