summaryrefslogtreecommitdiff
path: root/src/utils/video-poster.ts
blob: e2e32edc46c38cd780cf9b4d23855575858ca5e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import type { Artwork } from '@jet-app/app-store/api/models';
import type { Profile } from '@amp/web-app-components/src/components/Artwork/types';
import type { Size } from '@amp/web-app-components/src/types';
import type { NamedProfile } from 'src/config/components/artwork';
import { buildSrc } from '@amp/web-app-components/src/components/Artwork/utils/srcset';
import { getDataFromProfile } from '@amp/web-app-components/src/components/Artwork/utils/artProfile';

export const buildPoster = (
    preview: Artwork,
    profile: NamedProfile | Profile,
    mediaQuery: string,
): ReturnType<typeof buildSrc> => {
    const profileData = getDataFromProfile(profile);
    const imageAttributes = profileData[mediaQuery as Size] || preview;
    const dpr = typeof window !== 'undefined' ? window.devicePixelRatio : 2;

    return buildSrc(
        preview.template,
        {
            crop: 'sr',
            width: imageAttributes.width * dpr,
            height: imageAttributes.height * dpr,
            fileType: 'webp',
        },
        {},
    );
};