Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Bruno Predot
/
tmdb_test
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Bruno Predot
2025-04-23 22:27:23 +0200
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e8e864ba83763d6c1179385860903b628c21b6b5
e8e864ba
1 parent
e15652bf
Début de la logique, ajout de refs + interface + de la méthode fetchMovies.
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
0 deletions
components/MoviesList.vue
components/MoviesList.vue
View file @
e8e864b
...
...
@@ -2,10 +2,55 @@
//#region --import--.
import SearchBar from "~/components/SearchBar.vue";
import { ref } from "vue";
import { useTMDB } from "~/composables/tMDB";
//#endregion
//#region --Declaration--.
const { fetchPopularMovies } = useTMDB();
//#endregion
//#region --Type--.
interface Movie {
id: number;
title: string;
poster_path: string | null;
vote_average: number;
release_date: string;
}
//#endregion
//#region --Data/refs--.
const isInitialLoading = ref(true);
const isLoadingMore = ref(false);
const movies = ref<Movie[]>([]);
const currentPage = ref(1);
const totalPages = ref(0);
//#endregion
//#region --Function--.
// Fetch popular movies
const fetchMovies = async (page: number) => {
try {
isLoadingMore.value = true;
const data = await fetchPopularMovies(page);
console.log("data in fetchMovies", data);
if (page === 1) {
movies.value = data.results;
} else {
movies.value = [...movies.value, ...data.results];
}
totalPages.value = data.total_pages;
currentPage.value = page;
} catch (error) {
console.error("Error fetching popular movies:", error);
} finally {
isInitialLoading.value = false;
isLoadingMore.value = false;
}
};
fetchMovies(1)
//#endregion
</script>
...
...
@@ -16,6 +61,8 @@ const isInitialLoading = ref(true);
<search-bar placeholder="Rechercher un film..."/>
<!-- Loading Skeleton -->
<skeleton-movies-loader :is-initial-loading="isInitialLoading" :skeleton-number="20" />
<!-- Liste des films -->
<pre>{{ movies }}</pre>
</section>
</template>
...
...
Please
register
or
login
to post a comment