From 0eda36ef4a79c29035f6b625a2d18e6ead4ca577 Mon Sep 17 00:00:00 2001 From: Vlad Jerca Date: Fri, 15 Nov 2024 20:34:42 +0100 Subject: [PATCH] feat(profile): add cover image on main page background --- .../background/BackgroundCoverImage.svelte | 83 +++++++++++++++++++ .../image/components/CrossOriginImage.svelte | 8 +- .../src/lib/requests/users/currentUser.ts | 29 ++++--- .../profile-banner/ProfileBanner.svelte | 14 +++- 4 files changed, 117 insertions(+), 17 deletions(-) create mode 100644 projects/client/src/lib/components/background/BackgroundCoverImage.svelte diff --git a/projects/client/src/lib/components/background/BackgroundCoverImage.svelte b/projects/client/src/lib/components/background/BackgroundCoverImage.svelte new file mode 100644 index 000000000..96c405dd7 --- /dev/null +++ b/projects/client/src/lib/components/background/BackgroundCoverImage.svelte @@ -0,0 +1,83 @@ + + +
+ +
+ + diff --git a/projects/client/src/lib/features/image/components/CrossOriginImage.svelte b/projects/client/src/lib/features/image/components/CrossOriginImage.svelte index 436f0bfc8..03e51ad6c 100644 --- a/projects/client/src/lib/features/image/components/CrossOriginImage.svelte +++ b/projects/client/src/lib/features/image/components/CrossOriginImage.svelte @@ -1,10 +1,10 @@ - +{#if $response.uri} + +{/if} diff --git a/projects/client/src/lib/requests/users/currentUser.ts b/projects/client/src/lib/requests/users/currentUser.ts index 78897d713..de8555caa 100644 --- a/projects/client/src/lib/requests/users/currentUser.ts +++ b/projects/client/src/lib/requests/users/currentUser.ts @@ -11,15 +11,17 @@ export type User = { avatar: { url: string; }; + cover: { + url: string; + }; isVip: boolean; }; +const ALIEN_ISOLATION_COVER = + 'https://walter-r2.trakt.tv/images/movies/000/759/944/fanarts/full/a12a59d031.jpg.webp'; + export function currentUser(): Promise { - return api.users.profile({ - params: { id: 'me' }, - query: { - extended: 'full', - }, + return api.users.settings({ extraHeaders: { ...authHeader(), }, @@ -32,20 +34,25 @@ export function currentUser(): Promise { throw new Error('Error fetching current user.'); } - const { body } = response; - const fullName = body.name; - const [firstName = '', lastName = ''] = body.name.split(' '); + const { body: { user, account } } = response; + const fullName = user.name; + const [firstName = '', lastName = ''] = user.name.split(' '); + const isCoverEmpty = !account.cover_image.trim(); + return { name: { full: fullName, first: firstName, last: lastName, }, - location: body.location, + location: user.location, avatar: { - url: body.images!.avatar.full, + url: user.images!.avatar.full, + }, + cover: { + url: isCoverEmpty ? account.cover_image : ALIEN_ISOLATION_COVER, }, - isVip: body.vip || body.vip_ep, + isVip: user.vip || user.vip_ep, }; }); } diff --git a/projects/client/src/lib/sections/profile-banner/ProfileBanner.svelte b/projects/client/src/lib/sections/profile-banner/ProfileBanner.svelte index 689c80eb8..18411fc98 100644 --- a/projects/client/src/lib/sections/profile-banner/ProfileBanner.svelte +++ b/projects/client/src/lib/sections/profile-banner/ProfileBanner.svelte @@ -1,11 +1,12 @@ +{#if $user.cover.url} + +{/if} +