From e0688cb2e25f00ae0d46777e5772bd0e8425b878 Mon Sep 17 00:00:00 2001 From: chaaanuwu Date: Sat, 4 Apr 2026 21:09:16 +0530 Subject: [PATCH 1/4] feat: Refactor movie service and update related controllers; remove unused utility --- client/src/components/HistoryTab.jsx | 4 +- client/src/components/Tabs.jsx | 2 +- client/src/pages/Profile.jsx | 12 ++--- .../features/movie/popular.controller.js | 0 .../features/movie/trending.controller.js | 0 server/controllers/history.controller.js | 2 +- server/controllers/watchList.controller.js | 2 +- server/services/movie.service.js | 46 +++++++++++++++++ server/utils/movie.utils.js | 51 ------------------- server/utils/movieGenre.utils.js | 7 +++ 10 files changed, 63 insertions(+), 63 deletions(-) create mode 100644 server/controllers/features/movie/popular.controller.js create mode 100644 server/controllers/features/movie/trending.controller.js create mode 100644 server/services/movie.service.js delete mode 100644 server/utils/movie.utils.js create mode 100644 server/utils/movieGenre.utils.js diff --git a/client/src/components/HistoryTab.jsx b/client/src/components/HistoryTab.jsx index 90755cc..d874d20 100644 --- a/client/src/components/HistoryTab.jsx +++ b/client/src/components/HistoryTab.jsx @@ -83,11 +83,11 @@ export default function HistoryTab() { > {/* THE TIMELINE HEADER */}
-
+

{date}

-
+
{/* MOVIE GRID */} diff --git a/client/src/components/Tabs.jsx b/client/src/components/Tabs.jsx index d0eee77..69fc474 100644 --- a/client/src/components/Tabs.jsx +++ b/client/src/components/Tabs.jsx @@ -70,7 +70,7 @@ export default function Tabs({ profileData, isMyProfile }) {
{/* 2. CONTENT AREA */} -
+
{loading ? ( -
+
{/* Header */}
@@ -208,7 +208,6 @@ export default function Profile() {
- {/* Content Area */}
{banners.length > 0 ? (
@@ -219,11 +218,11 @@ export default function Profile() { animate={{ opacity: 1, y: 0 }} transition={{ delay: index * 0.05 }} whileHover={{ scale: 1.02 }} - className={`group relative aspect-video rounded-[2rem] overflow-hidden cursor-pointer bg-stone-200 border-4 + className={`group relative aspect-video rounded-4xl overflow-hidden cursor-pointer bg-stone-200 border-4 ${selectedBackdrop === banner?.backdropPath ? "border-amber-500/70" : "border-white"} shadow-xl transition-all hover:shadow-amber-500/20 hover:border-amber-500/40`} onClick={() => { - setSelectedBackdrop(banner?.backdropPath); // βœ… Select banner + setSelectedBackdrop(banner?.backdropPath); }} > {banner?.title} -
+
@@ -263,7 +262,6 @@ export default function Profile() { )}
- {/* βœ… Save & Cancel Buttons */} {selectedBackdrop && (
+ +
+
+ +
+ {movies.map((movie) => ( +
+ +
+ ))} +
+ + ); +} \ No newline at end of file diff --git a/client/src/pages/TmdbMovies.jsx b/client/src/pages/TmdbMovies.jsx deleted file mode 100644 index 3bb9faf..0000000 --- a/client/src/pages/TmdbMovies.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import { useEffect } from "react"; -import { getTrendingMovies } from "../api/tmdb.api"; - -export default function TmdbMovie() { - useEffect(() => { - const fetchTrending = async () => { - try { - const res = await getTrendingMovies(); - console.log("Trending movies: ", res.data); - } catch (error) { - console.error("Error fetching trending movies: ", error); - } - } - fetchTrending(); - }, []); - - return ( - <> - ); -} \ No newline at end of file From 9efd99051eaa24e9deda85455be0eedae93a3114 Mon Sep 17 00:00:00 2001 From: chaaanuwu Date: Sun, 5 Apr 2026 01:17:24 +0530 Subject: [PATCH 4/4] feat: Refactor MovieCard and MoviesPage components for improved styling and clarity --- client/src/components/ui/MovieCard.jsx | 6 +++--- client/src/pages/MoviesPage.jsx | 17 ++++++++--------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/client/src/components/ui/MovieCard.jsx b/client/src/components/ui/MovieCard.jsx index 9d9940e..c902d39 100644 --- a/client/src/components/ui/MovieCard.jsx +++ b/client/src/components/ui/MovieCard.jsx @@ -26,10 +26,10 @@ export default function MovieCard({ loading="lazy" /> - {/* Cinematic Vignette Overlay */} -
+ {/* Vignette Overlay */} +
- {/* Rating Badge - Updated to Glassmorphism */} + {/* Rating Badge */} {rating && (
diff --git a/client/src/pages/MoviesPage.jsx b/client/src/pages/MoviesPage.jsx index ce2a778..5e6095f 100644 --- a/client/src/pages/MoviesPage.jsx +++ b/client/src/pages/MoviesPage.jsx @@ -18,7 +18,6 @@ export default function MoviesPage() { setTrendingMovies(movies); if (movies.length > 0) { - // Pick a random movie for the hero spotlight const randomIndex = Math.floor(Math.random() * movies.length); setFeaturedMovie(movies[randomIndex]); } @@ -48,8 +47,8 @@ export default function MoviesPage() { alt="Featured backdrop" /> - {/* Cinematic Gradient & Content Overlay */} -
+ {/* Gradient & Content Overlay */} +
- {/* 2. TRENDING SECTION */}
+ {/* 2. TRENDING SECTION */} +
-
+
{subtitle}

{title}

@@ -134,14 +133,14 @@ function MovieSlider({ title, subtitle, movies }) { {movies.map((movie) => (
))}