*/}
+
{!alreadyInStore && (
)}
{alreadyInStore && (
-
+ <>
+ {isReleased && (
+
+ )}
+
+
+
+
+ >
)}
diff --git a/src/components/molecules/MovieList/index.tsx b/src/components/molecules/MovieList/index.tsx
index ff389e4..9179e3a 100644
--- a/src/components/molecules/MovieList/index.tsx
+++ b/src/components/molecules/MovieList/index.tsx
@@ -5,10 +5,10 @@ import { useGlobalStore } from "@/app/store/globalStore";
type Props = {
heading: string;
- onlySeen?: boolean;
- onlyFavorites?: boolean;
- onlyUpcoming?: boolean;
- onlyReleased?: boolean;
+ filterSeen?: 0 | 1;
+ filterFavorites?: 0 | 1;
+ filterUpcoming?: 0 | 1;
+ filterReleased?: 0 | 1;
showFilters?: boolean;
sort?: "title" | "releaseDate" | "popularity";
@@ -17,10 +17,10 @@ type Props = {
export const MovieList: FC = ({
heading,
- onlyFavorites,
- onlySeen,
- onlyUpcoming,
- onlyReleased,
+ filterSeen,
+ filterFavorites,
+ filterUpcoming,
+ filterReleased,
showFilters = false,
sort = "title",
sortDirection = "asc",
@@ -31,11 +31,15 @@ export const MovieList: FC = ({
const { movies } = useGlobalStore();
const filteredMovies = movies.filter((movie) => {
- if (onlySeen) return movie.seen === 1;
- if (onlyFavorites) return movie.favorite === 1;
- if (onlyUpcoming) return new Date(movie.releaseDate) > new Date();
- if (onlyReleased) return new Date(movie.releaseDate) < new Date();
- return true;
+ let result = true;
+ if (typeof filterSeen === "number") result = movie.seen === filterSeen;
+ if (typeof filterFavorites === "number")
+ result = result && movie.favorite === filterFavorites;
+ if (typeof filterUpcoming === "number")
+ result = result && new Date(movie.releaseDate) > new Date();
+ if (typeof filterReleased === "number")
+ result = result && new Date(movie.releaseDate) < new Date();
+ return result;
});
let sortedMovies = filteredMovies.sort((a, b) => {
diff --git a/src/lib/db/index.ts b/src/lib/db/index.ts
index e03433b..3d57755 100644
--- a/src/lib/db/index.ts
+++ b/src/lib/db/index.ts
@@ -16,3 +16,10 @@ export const addMovie = async (movie: typeof movies.$inferInsert) => {
export const deleteMovie = async (id: number) => {
await db.delete(movies).where(eq(movies.id, id));
};
+
+export const updateMovie = async (
+ id: number,
+ movie: Partial
+) => {
+ await db.update(movies).set(movie).where(eq(movies.id, id));
+};