Skip to content

Commit 63c7b06

Browse files
committed
refactor(utils): move asset placeholders to a dedicated file
relocates image-related constants and placeholders from the general constants utility to a dedicated assets file for better separation of concerns and improved code organization.
1 parent 6b5664b commit 63c7b06

6 files changed

Lines changed: 45 additions & 46 deletions

File tree

projects/client/src/lib/features/image/components/CrossOriginImage.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script lang="ts">
22
import { appendClassList } from "$lib/utils/actions/appendClassList";
3-
import { PLACEHOLDERS } from "$lib/utils/constants";
3+
import { PLACEHOLDERS } from "$lib/utils/assets";
44
import { writable } from "$lib/utils/store/WritableSubject.ts";
55
import type { ImageProps } from "./ImageProps";
66
import { resolveEnvironmentUri } from "./resolveEnvironmentUri";

projects/client/src/lib/requests/_internal/mapToLogo.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {
22
MEDIA_COVER_LARGE_PLACEHOLDER,
33
MEDIA_COVER_THUMB_PLACEHOLDER,
4-
} from '$lib/utils/constants.ts';
4+
} from '$lib/utils/assets.ts';
55
import { findDefined } from '$lib/utils/string/findDefined.ts';
66
import { prependHttps } from '$lib/utils/url/prependHttps.ts';
77
import type { MovieResponse, ShowResponse } from '@trakt/api';

projects/client/src/lib/requests/_internal/mapToPoster.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { MEDIA_POSTER_PLACEHOLDER } from '$lib/utils/constants.ts';
1+
import { MEDIA_POSTER_PLACEHOLDER } from '$lib/utils/assets.ts';
22
import { findDefined } from '$lib/utils/string/findDefined.ts';
33
import { prependHttps } from '$lib/utils/url/prependHttps.ts';
44
import type { MediaEntry } from '../models/MediaEntry.ts';

projects/client/src/lib/sections/toast/_internal/ToastEpisodeCover.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import { useEpisodeSpoilerImage } from "$lib/features/spoilers/useEpisodeSpoilerImage";
66
import type { EpisodeEntry } from "$lib/requests/models/EpisodeEntry";
77
import type { ShowEntry } from "$lib/requests/models/ShowEntry";
8-
import { EPISODE_COVER_PLACEHOLDER } from "$lib/utils/constants";
8+
import { EPISODE_COVER_PLACEHOLDER } from "$lib/utils/assets";
99
import { episodeActivityTitle } from "$lib/utils/intl/episodeActivityTitle";
1010
import { UrlBuilder } from "$lib/utils/url/UrlBuilder";
1111
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { assets } from '$app/paths';
2+
import { shuffle } from '$lib/utils/array/shuffle.ts';
3+
import { assertDefined } from './assert/assertDefined.ts';
4+
5+
export const EPISODE_COVER_PLACEHOLDER =
6+
`${assets}/placeholders/landscape_placeholder.png` as HttpsUrl;
7+
8+
export const MEDIA_COVER_LARGE_PLACEHOLDER =
9+
`${assets}/placeholders/purple_placeholder.png` as HttpsUrl;
10+
11+
export const MEDIA_COVER_THUMB_PLACEHOLDER =
12+
`${assets}/placeholders/landscape_placeholder.png` as HttpsUrl;
13+
14+
export const MEDIA_POSTER_PLACEHOLDER =
15+
`${assets}/placeholders/portrait_placeholder.png` as HttpsUrl;
16+
17+
export const PLACEHOLDERS: string[] = [
18+
EPISODE_COVER_PLACEHOLDER,
19+
MEDIA_COVER_LARGE_PLACEHOLDER,
20+
MEDIA_COVER_THUMB_PLACEHOLDER,
21+
MEDIA_POSTER_PLACEHOLDER,
22+
];
23+
24+
const generateShareCover = (type: 'show' | 'movie') =>
25+
assertDefined(
26+
shuffle(
27+
[1, 2, 3, 4, 5].map((n) => `${assets}/trakt_share_${type}_${n}.webp`),
28+
).at(0),
29+
`${type} share cover is required`,
30+
);
31+
32+
export const DEFAULT_SHARE_SHOW_COVER = generateShareCover('show');
33+
export const DEFAULT_SHARE_MOVIE_COVER = generateShareCover('movie');
34+
35+
export const DEFAULT_SHARE_COVER = assertDefined(
36+
shuffle([
37+
DEFAULT_SHARE_SHOW_COVER,
38+
DEFAULT_SHARE_MOVIE_COVER,
39+
]).at(0),
40+
'Default share cover is required',
41+
);

projects/client/src/lib/utils/constants.ts

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,15 @@
1-
import { assets } from '$app/paths';
2-
import { shuffle } from '$lib/utils/array/shuffle.ts';
3-
import { assertDefined } from './assert/assertDefined.ts';
4-
51
/**
62
* This cover is the Alien Isolation cover.
73
*/
84
export const DEFAULT_COVER =
95
'https://walter-r2.trakt.tv/images/movies/000/759/944/fanarts/full/a12a59d031.jpg.webp';
106

11-
export const EPISODE_COVER_PLACEHOLDER =
12-
`${assets}/placeholders/landscape_placeholder.png` as HttpsUrl;
13-
14-
export const MEDIA_COVER_LARGE_PLACEHOLDER =
15-
`${assets}/placeholders/purple_placeholder.png` as HttpsUrl;
16-
17-
export const MEDIA_COVER_THUMB_PLACEHOLDER =
18-
`${assets}/placeholders/landscape_placeholder.png` as HttpsUrl;
19-
20-
export const MEDIA_POSTER_PLACEHOLDER =
21-
`${assets}/placeholders/portrait_placeholder.png` as HttpsUrl;
22-
23-
export const PLACEHOLDERS: string[] = [
24-
EPISODE_COVER_PLACEHOLDER,
25-
MEDIA_COVER_LARGE_PLACEHOLDER,
26-
MEDIA_COVER_THUMB_PLACEHOLDER,
27-
MEDIA_POSTER_PLACEHOLDER,
28-
];
29-
307
export const DEFAULT_AVATAR =
318
'https://walter-r2.trakt.tv/hotlink-ok/placeholders/medium/zoidberg.png' as HttpsUrl;
329

3310
export const MAX_DATE = new Date('9999-12-31T23:59:59.999Z');
3411
export const MIN_DATE = new Date('0000-01-01T00:00:00.000Z');
3512

36-
const generateShareCover = (type: 'show' | 'movie') =>
37-
assertDefined(
38-
shuffle(
39-
[1, 2, 3, 4, 5].map((n) => `${assets}/trakt_share_${type}_${n}.webp`),
40-
).at(0),
41-
`${type} share cover is required`,
42-
);
43-
44-
export const DEFAULT_SHARE_SHOW_COVER = generateShareCover('show');
45-
export const DEFAULT_SHARE_MOVIE_COVER = generateShareCover('movie');
46-
47-
export const DEFAULT_SHARE_COVER = assertDefined(
48-
shuffle([
49-
DEFAULT_SHARE_SHOW_COVER,
50-
DEFAULT_SHARE_MOVIE_COVER,
51-
]).at(0),
52-
'Default share cover is required',
53-
);
54-
5513
export const NOOP_FN = () => {
5614
// noop
5715
};

0 commit comments

Comments
 (0)