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-25 17:53:53 +0200
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
f375460f5ed8477d75c94f6bb502fc5f5ca2a1f2
f375460f
1 parent
6d6cc616
Ajout du template pour les têtes d'affiches.
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
7 deletions
pages/movies/[id]/index.vue
pages/movies/[id]/index.vue
View file @
f375460
...
...
@@ -2,11 +2,11 @@
//#region --import--.
import { ArrowLeftIcon, FilmIcon } from "lucide-vue-next";
import { useTMDB } from "~/composables/tMDB";
import { onMounted, ref } from "vue";
import {
computed,
onMounted, ref } from "vue";
import { Movie } from "~/models/movie";
import type { MovieInterface } from "~/interfaces/movie";
import { Credit } from "~/models/credit";
import type { Credit
Interface, Credit
sResponse } from "~/interfaces/credit";
import type { CreditsResponse } from "~/interfaces/credit";
//#endregion
//#region --Declaration--.
...
...
@@ -46,6 +46,17 @@ const movie = computed(() => {
return null;
}
});
/**
* Computed property for director
*/
const director = computed(() => {
if (unref(movie)?.credit?.crew) {
return movie.value?.credit.crew.find((person) => person.job === "Director");
} else {
return null;
}
});
//#endregion
//#region --Function--.
...
...
@@ -91,18 +102,17 @@ const formatVoteCount = (count: number) => {
return `${count} votes`;
};
async function fetchCredits(id: number
|
string) {
async function fetchCredits(id: number
|
string) {
try {
const data =
await fetchMovieCredits(id
) as CreditsResponse;
const data =
(await fetchMovieCredits(id)
) as CreditsResponse;
data.movie_id = id;
// Add to store collection.
console.log('credit response', data)
useRepo(Credit).save(data);
} catch (error) {
console.error("Error fetching movie credits:", error);
}
}
//#endregion
//#region --Global event--.
...
...
@@ -111,7 +121,7 @@ onMounted(() => {
if (unref(movieId)) {
const id = unref(movieId) as string | number;
fetchDetails(id);
fetchCredits(id)
fetchCredits(id)
;
}
// loadComments()
});
...
...
@@ -194,6 +204,18 @@ onMounted(() => {
<h2 class="text-xl font-bold mb-2">Synopsis</h2>
<p class="text-gray-300">{{ movie.overview || "Aucun synopsis disponible." }}</p>
</div>
<!-- Réalisateur et têtes d'affiche -->
<div v-if="movie.credit" class="mb-6">
<h2 class="text-xl font-bold mb-2">Équipe</h2>
<div v-if="director" class="mb-2">
<span class="font-semibold">Réalisateur:</span> {{ director.name }}
</div>
<div v-if="movie.credit.cast.length > 0">
<span class="font-semibold">Têtes d'affiche:</span>
{{ movie.credit.cast.slice(0, 5).map(person => person.name).join(', ') }}
</div>
</div>
</div>
</div>
</div>
...
...
Please
register
or
login
to post a comment