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}) Ulubione ({movies.filter((movie) => movie.favorite).length})
</Label> </Label>
<Label <Label
active={filter.seen !== undefined} active={
filter.seen !== undefined && filter.released === undefined
}
onClick={() => handleFilter("seen")} onClick={() => handleFilter("seen")}
> >
Obejrzane ({movies.filter((movie) => movie.seen).length}) Obejrzane ({movies.filter((movie) => movie.seen).length})
</Label> </Label>
<Label <Label
active={filter.released !== undefined} active={
onClick={() => handleFilter("released")} filter.released !== undefined && filter.seen !== undefined
}
onClick={() =>
setFilter({
seen: 0,
released: 1,
favorites: filterFavoritesInitial,
upcoming: filterUpcomingInitial,
})
}
> >
W kinach ( Do obejrzenia (
{ {
movies.filter( movies.filter(
(movie) => new Date(movie.release_date) < new Date() (movie) =>
new Date(movie.release_date) < new Date() && !movie.seen
).length ).length
} }
) )

View File

@ -27,9 +27,17 @@ export const TrackedMovies: FC<Props> = ({
} }
const today = new Date(); const today = new Date();
const upcoming = movies.filter( const upcoming = movies.filter((movie) => {
(movie) => new Date(movie.release_date) > today 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 inCinema = movies.filter((movie) => {
const daysSinceRelease = Math.floor( const daysSinceRelease = Math.floor(
(new Date().getTime() - new Date(movie.release_date).getTime()) / (new Date().getTime() - new Date(movie.release_date).getTime()) /