diff --git a/src/app/odkrywaj/page.tsx b/src/app/odkrywaj/page.tsx
index cdd5494..d7ac6e8 100644
--- a/src/app/odkrywaj/page.tsx
+++ b/src/app/odkrywaj/page.tsx
@@ -5,15 +5,8 @@ import {
getUpcomingMovies,
} from "@/lib/tmdb/server";
import { Hero } from "@/components/organisms/Hero";
-import { Carousel } from "@/components/molecules/Carousel";
-import { MovieCard } from "@/components/atoms/MovieCard";
-import {
- FaCalendar,
- FaChartLine,
- FaFire,
- FaPlay,
- FaStar,
-} from "react-icons/fa";
+import { FaCalendar, FaChartLine, FaFire, FaPlay } from "react-icons/fa";
+import { MovieList } from "@/components/molecules/MovieList";
// 12 hours
export const revalidate = 43200;
@@ -48,39 +41,43 @@ export default async function Home() {
- }>
- {nowPlayingMovies.map((movie) => (
-
- ))}
-
+ }
+ colors="blue"
+ />
- }
colors="blue"
- >
- {upcomingMovies.map((movie) => (
-
- ))}
-
+ />
- } colors="red">
- {popularMovies.map((movie) => (
-
- ))}
-
+ }
+ colors="red"
+ />
- } colors="green">
- {trendingMovies.map((movie) => (
-
- ))}
-
+ }
+ colors="green"
+ />
diff --git a/src/components/atoms/MovieCard/layouts/AuroraLayout.tsx b/src/components/atoms/MovieCard/layouts/AuroraLayout.tsx
index 98d3f22..941e112 100644
--- a/src/components/atoms/MovieCard/layouts/AuroraLayout.tsx
+++ b/src/components/atoms/MovieCard/layouts/AuroraLayout.tsx
@@ -49,23 +49,13 @@ export const AuroraLayout: FC
= ({
return (
- {/* Aurora background effect */}
-
-
-
{/* Main card container */}
-
{/* Image section with sophisticated overlay */}
-
+
@@ -73,7 +63,6 @@ export const AuroraLayout: FC = ({
{/* Gradient overlays for depth */}
-
{/* Floating rating badge */}
{!!vote_average && (
@@ -158,15 +147,12 @@ export const AuroraLayout: FC = ({
{/* Content section with glowing effects */}
- {/* Subtle glow effect */}
-
-
{title}
-
+
{overview}
diff --git a/src/components/effects/AuroraBackground.tsx b/src/components/effects/AuroraBackground.tsx
index dd1d9bf..234b48a 100644
--- a/src/components/effects/AuroraBackground.tsx
+++ b/src/components/effects/AuroraBackground.tsx
@@ -7,19 +7,19 @@ export const AuroraBackground = () => {
{/* Static aurora effects */}
{/* Top-left aurora glow */}
-
+
{/* Top-right aurora glow */}
-
+
{/* Center aurora wave */}
-
+
{/* Bottom aurora glow */}
-
+
{/* Right side accent */}
-
+
{/* Gradient mesh overlay for content readability */}
diff --git a/src/components/molecules/HeroMovie/index.tsx b/src/components/molecules/HeroMovie/index.tsx
index 47f32be..67570bf 100644
--- a/src/components/molecules/HeroMovie/index.tsx
+++ b/src/components/molecules/HeroMovie/index.tsx
@@ -87,12 +87,12 @@ export const HeroMovie: FC
= ({ movieDetails }) => {
{/* Movie poster */}
-
-
+
+
diff --git a/src/components/molecules/MovieCast/index.tsx b/src/components/molecules/MovieCast/index.tsx
index 75a46b0..471ba03 100644
--- a/src/components/molecules/MovieCast/index.tsx
+++ b/src/components/molecules/MovieCast/index.tsx
@@ -54,7 +54,7 @@ export const MovieCast: FC
= ({ movieDetails }) => {
{/* Hover overlay with link indication */}
-
diff --git a/src/components/molecules/MovieList/index.tsx b/src/components/molecules/MovieList/index.tsx
index 24a017c..3fe8e10 100644
--- a/src/components/molecules/MovieList/index.tsx
+++ b/src/components/molecules/MovieList/index.tsx
@@ -1,13 +1,17 @@
"use client";
-import { FC, useState } from "react";
+import { FC, ReactNode, useState } from "react";
import { MovieCard } from "@/components/atoms/MovieCard";
import { Movie } from "@/types/global";
import { useGlobalStore } from "@/app/store/globalStore";
import { Dropdown } from "@/components/atoms/Dropdown";
import { useAutoAnimate } from "@formkit/auto-animate/react";
+import { Button } from "@/components/atoms/Button";
type Props = {
heading?: string;
+ icon?: ReactNode;
+ colors?: keyof typeof colorsMap;
+
overrideMovies?: Movie[];
filterSeen?: 0 | 1;
@@ -19,10 +23,14 @@ type Props = {
showFilters?: boolean;
sort?: "title" | "releaseDate" | "popularity";
sortDirection?: "asc" | "desc";
+
+ loadMore?: boolean;
};
export const MovieList: FC
= ({
heading,
+ icon,
+ colors = "white",
overrideMovies,
filterSeen,
filterFavorites,
@@ -32,15 +40,17 @@ export const MovieList: FC = ({
showFilters = true,
sort = "releaseDate",
sortDirection = "asc",
+ loadMore = false,
}) => {
const { movies: storeMovies } = useGlobalStore();
+ const movies = overrideMovies || storeMovies;
+
const [filter, setFilter] = useState<"title" | "releaseDate" | "popularity">(
sort
);
+ const [loaded, setLoaded] = useState(loadMore ? 4 : movies.length);
const [parent] = useAutoAnimate();
- const movies = overrideMovies || storeMovies;
-
const filteredMovies = movies.filter((movie) => {
let result = true;
const today = new Date();
@@ -73,6 +83,8 @@ export const MovieList: FC = ({
return 0;
});
+ sortedMovies = sortedMovies.slice(0, loaded);
+
if (sortDirection === "desc") {
sortedMovies = sortedMovies.reverse();
}
@@ -81,21 +93,30 @@ export const MovieList: FC = ({
{heading && (
-
-
- {showFilters && (
- setFilter(value as "title")}
- />
- )}
- {heading}
-
+
+ {icon && (
+
+ {icon}
+
+ )}
+ {showFilters && !icon && (
+
setFilter(value as "title")}
+ />
+ )}
+
+ {heading}
+
)}
{filteredMovies.length === 0 && (
@@ -111,7 +132,27 @@ export const MovieList: FC
= ({
))}
)}
+ {loadMore && filteredMovies.length > loaded && (
+
+
+
+ )}
);
};
+
+const colorsMap = {
+ white: "bg-gradient-to-r from-white to-gray-300",
+ yellow: "bg-gradient-to-r from-yellow-400 to-orange-400",
+ blue: "bg-gradient-to-r from-blue-400 to-purple-400",
+ green: "bg-gradient-to-r from-green-400 to-teal-400",
+ red: "bg-gradient-to-r from-red-400 to-pink-400",
+ purple: "bg-gradient-to-r from-purple-400 to-pink-400",
+ orange: "bg-gradient-to-r from-orange-400 to-yellow-400",
+ pink: "bg-gradient-to-r from-pink-400 to-purple-400",
+ teal: "bg-gradient-to-r from-teal-400 to-green-400",
+ gray: "bg-gradient-to-r from-gray-400 to-gray-400",
+};
diff --git a/src/components/organisms/Navbar/components/Search/index.tsx b/src/components/organisms/Navbar/components/Search/index.tsx
index 07eef44..94610a5 100644
--- a/src/components/organisms/Navbar/components/Search/index.tsx
+++ b/src/components/organisms/Navbar/components/Search/index.tsx
@@ -60,9 +60,7 @@ export const Search = () => {
{isSearchOpen && (
{/* Aurora Background */}
-
-
-
+
{/* Close button */}