Files
Igor StuevandGitHub c3c18f74ae SEO Tweaks for Gas Tracker Page (#2344)
ETH - SEO Tweaks for Gas Tracker Page
2024-12-09 20:10:17 +01:00

40 lines
1.3 KiB
TypeScript

import type { ApiData, Metadata } from './types';
import type { RouteParams } from 'nextjs/types';
import type { Route } from 'nextjs-routes';
import config from 'configs/app';
import getNetworkTitle from 'lib/networks/getNetworkTitle';
import { currencyUnits } from 'lib/units';
import compileValue from './compileValue';
import getCanonicalUrl from './getCanonicalUrl';
import getPageOgType from './getPageOgType';
import * as templates from './templates';
export default function generate<Pathname extends Route['pathname']>(route: RouteParams<Pathname>, apiData: ApiData<Pathname> = null): Metadata {
const params = {
...route.query,
...apiData,
network_name: config.chain.name,
network_title: getNetworkTitle(),
network_gwei: currencyUnits.gwei,
};
const title = compileValue(templates.title.make(route.pathname, Boolean(apiData)), params);
const description = compileValue(templates.description.make(route.pathname, Boolean(apiData)), params);
const pageOgType = getPageOgType(route.pathname);
return {
title: title,
description,
opengraph: {
title: title,
description: pageOgType !== 'Regular page' ? config.meta.og.description : '',
imageUrl: pageOgType !== 'Regular page' ? config.meta.og.imageUrl : '',
},
canonical: getCanonicalUrl(route.pathname),
};
}