From bce557cc2dc767628bed6aac87301a1be7c5431b Mon Sep 17 00:00:00 2001 From: rxliuli Date: Tue, 4 Nov 2025 05:03:50 +0800 Subject: init commit --- src/utils/video-poster.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/utils/video-poster.ts (limited to 'src/utils/video-poster.ts') diff --git a/src/utils/video-poster.ts b/src/utils/video-poster.ts new file mode 100644 index 0000000..e2e32ed --- /dev/null +++ b/src/utils/video-poster.ts @@ -0,0 +1,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 => { + 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', + }, + {}, + ); +}; -- cgit v1.2.3