2023-11-16 17:09:22 +03:00

50 lines
1.5 KiB
TypeScript

import * as apiIUS from '@/api/ius/query';
import * as Form from '@/components/Form';
import type { PageProps } from '@/types/page';
import { withError } from '@/utils/error';
import { getPageUrlParams, makeCreateUrl } from '@/utils/url';
import type { Metadata } from 'next';
import { Background, Divider } from 'ui';
export async function generateMetadata(pageProps: PageProps): Promise<Metadata> {
const pageUrlParams = getPageUrlParams(pageProps);
const createUrl = makeCreateUrl(pageUrlParams);
const { title } = await apiIUS.getConfig({ createUrl });
const text = `${title} | Эволюция`;
return {
description: text,
openGraph: {
description: text,
title: text,
},
title: text,
};
}
export default async function Page(pageProps: PageProps) {
return withError({
render: async () => {
const pageUrlParams = getPageUrlParams(pageProps);
const createUrl = makeCreateUrl(pageUrlParams);
return Promise.all([
apiIUS.getData({ createUrl }),
apiIUS.getMetaData({ createUrl }),
apiIUS.getConfig({ createUrl }),
]).then(([data, metaData, { title }]) => {
const props = { data, metaData, pageUrlParams };
return (
<Background>
<Form.Header {...props} url={'/ius' + createUrl('/conditions')} title={title} />
<Form.Elements {...props} />
<Divider />
<Form.Buttons {...props} />
</Background>
);
});
},
});
}