feat: refine filtering logic in MovieList and TrackedMovies components to improve movie categorization; adjust seen and released filters for better user experience

This commit is contained in:
Norbert Maciaszek 2025-08-22 19:03:35 +02:00
parent 37e0d00214
commit 50aa22ee6c
2 changed files with 28 additions and 8 deletions

View File

@ -152,19 +152,31 @@ export const MovieList: FC<Props> = ({
Ulubione ({movies.filter((movie) => movie.favorite).length})
</Label>
<Label
active={filter.seen !== undefined}
active={
filter.seen !== undefined && filter.released === undefined
}
onClick={() => handleFilter("seen")}
>
Obejrzane ({movies.filter((movie) => movie.seen).length})
</Label>
<Label
active={filter.released !== undefined}
onClick={() => handleFilter("released")}
active={
filter.released !== undefined && filter.seen !== undefined
}
onClick={() =>
setFilter({
seen: 0,
released: 1,
favorites: filterFavoritesInitial,
upcoming: filterUpcomingInitial,
})
}
>
W kinach (
Do obejrzenia (
{
movies.filter(
(movie) => new Date(movie.release_date) < new Date()
(movie) =>
new Date(movie.release_date) < new Date() && !movie.seen
).length
}
)

View File

@ -27,9 +27,17 @@ export const TrackedMovies: FC<Props> = ({
}
const today = new Date();
const upcoming = movies.filter(
(movie) => new Date(movie.release_date) > today
);
const upcoming = movies.filter((movie) => {
const daysSinceRelease = Math.abs(
Math.floor(
(new Date().getTime() - new Date(movie.release_date).getTime()) /
(1000 * 60 * 60 * 24)
)
);
return (
new Date(movie.release_date) > today && daysSinceRelease <= daysLimit
);
});
const inCinema = movies.filter((movie) => {
const daysSinceRelease = Math.floor(
(new Date().getTime() - new Date(movie.release_date).getTime()) /