Difficulty
intermediate
Average duration
2 hrs
Technologies
Typescript
react native
React Navigation
zustand
Difficulty
intermediate
Average duration
2 hrs
Technologies
Typescript
react native
React Navigation
zustand
For this project, we will expand the movie catalog using Zustand to manage simple global states: favorites, category filter, and title search.
movies.ts with local data.The store should expose at least:
favorites: number[]selectedCategory: string | nullsearch: stringtoggleFavorite(id), clearFavorites(), setCategory(cat), setSearch(q)Use selectors (and
shallowwhen applicable) to avoid unnecessary re-renders.
Create the Favorites functionality
FavoritesScreen: list only movies whose IDs are in favorites.MovieCard: show a badge/icon when id is a favorite (read from the store with a selector).Category filter
CategoryMoviesScreen: display Category: <cat> and filter movies by the category from the store.Title search
title (case-insensitive).useMoviesStore((s) => s.favorites).selectedCategory first, then search.React.memo) and use stable keys.Difficulty
intermediate
Average duration
2 hrs
Technologies
Typescript
react native
React Navigation
zustand
Difficulty
intermediate
Average duration
2 hrs
Technologies
Typescript
react native
React Navigation
zustand
Difficulty
intermediate
Average duration
2 hrs
Technologies
Typescript
react native
React Navigation
zustand
Difficulty
intermediate
Average duration
2 hrs
Technologies
Typescript
react native
React Navigation
zustand
Difficulty
intermediate
Average duration
2 hrs
Technologies
Typescript
react native
React Navigation
zustand
Difficulty
intermediate
Average duration
2 hrs
Technologies
Typescript
react native
React Navigation
zustand