1
import { Metadata } from 'next';
3
import { appEnv } from '@/config/app';
4
import { BRANDING_NAME } from '@/const/branding';
5
import { OFFICIAL_URL, OG_URL } from '@/const/url';
6
import { translation } from '@/server/translation';
8
const BASE_PATH = appEnv.NEXT_PUBLIC_BASE_PATH;
10
// if there is a base path, then we don't need the manifest
11
const noManifest = !!BASE_PATH;
13
export const generateMetadata = async (): Promise<Metadata> => {
14
const { t } = await translation('metadata');
18
canonical: OFFICIAL_URL,
21
statusBarStyle: 'black-translucent',
24
description: t('chat.description', { appName: BRANDING_NAME }),
26
apple: '/apple-touch-icon.png?v=1',
27
icon: '/favicon.ico?v=1',
28
shortcut: '/favicon-32x32.ico?v=1',
30
manifest: noManifest ? undefined : '/manifest.json',
31
metadataBase: new URL(OFFICIAL_URL),
33
description: t('chat.description', { appName: BRANDING_NAME }),
36
alt: t('chat.title', { appName: BRANDING_NAME }),
43
siteName: BRANDING_NAME,
49
default: t('chat.title', { appName: BRANDING_NAME }),
50
template: `%s · ${BRANDING_NAME}`,
53
card: 'summary_large_image',
54
description: t('chat.description', { appName: BRANDING_NAME }),
57
title: t('chat.title', { appName: BRANDING_NAME }),