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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import type { GenericPage } from '@jet-app/app-store/api/models';
import type I18N from '@amp/web-apps-localization';
import type { SeoData } from '@amp/web-app-components/src/components/MetaTags/types';
import { isAppEventDetailShelf } from '~/components/jet/shelf/AppEventDetailShelf.svelte';
import { truncateAroundLimit } from '~/utils/string-formatting';
import { MAX_DESCRIPTION_LENGTH } from '~/utils/seo/common';
export function seoDataForAppEventDetailPage(
page: GenericPage,
i18n: I18N,
language: string,
): SeoData {
const appEventDetailShelf = page.shelves.find(isAppEventDetailShelf);
const { appEvent } = appEventDetailShelf?.items[0] || {};
if (!appEvent) {
return {};
}
const title = appEvent.title;
const description = truncateAroundLimit(
appEvent.detail,
MAX_DESCRIPTION_LENGTH,
language,
);
return {
pageTitle: title,
socialTitle: title,
appleTitle: title,
description,
socialDescription: description,
appleDescription: description,
crop: 'fo',
twitterCropCode: 'fo',
artworkUrl: appEvent?.moduleArtwork?.template,
imageAltTitle: i18n.t('ASE.Web.AppStore.Meta.Image.AltText', {
title: title,
}),
};
}
|