|
1 | 1 | import { findNavigationDoc } from '@codeware/shared/util/payload-api'; |
| 2 | +import { resolveMeta } from '@codeware/shared/util/payload-utils'; |
2 | 3 | import type { LoaderFunctionArgs, MetaFunction } from '@remix-run/node'; |
3 | 4 | import { json, useLoaderData, useRouteError } from '@remix-run/react'; |
4 | 5 |
|
5 | 6 | import { Container } from '../components/container'; |
6 | 7 | import { ErrorContainer } from '../components/error-container'; |
7 | 8 | import { RenderPagesDoc } from '../components/render-pages-doc'; |
8 | 9 | import { RenderPostsDoc } from '../components/render-posts-doc'; |
| 10 | +import { defaultAppName } from '../utils/default-app-name'; |
9 | 11 | import { getPayloadRequestOptions } from '../utils/get-payload-request-options'; |
| 12 | +import { getSiteSettingsFromRoot } from '../utils/get-site-settings-from-root'; |
10 | 13 |
|
11 | 14 | type LoaderError = { |
12 | 15 | message: string; |
13 | 16 | status: number; |
14 | 17 | }; |
15 | 18 |
|
16 | | -// TODO: How to use it properly? |
17 | | -export const meta: MetaFunction<typeof loader> = ({ data }) => { |
18 | | - if (data?.doc.collection === 'pages') { |
19 | | - return [{ title: data.doc.name }]; |
20 | | - } |
21 | | - if (data?.doc.collection === 'posts') { |
22 | | - return [{ title: data.doc.title }]; |
23 | | - } |
24 | | - return [{ title: 'Page Not Found' }]; |
| 19 | +export const meta: MetaFunction<typeof loader> = ({ data, matches }) => { |
| 20 | + // Get site settings from root loader data |
| 21 | + const siteSettings = getSiteSettingsFromRoot(matches); |
| 22 | + const appName = siteSettings?.general?.appName ?? defaultAppName; |
| 23 | + |
| 24 | + const meta = resolveMeta(data?.doc); |
| 25 | + |
| 26 | + return [{ title: `${appName} - ${meta?.title ?? 'Page'}` }]; |
25 | 27 | }; |
26 | 28 |
|
27 | 29 | /** |
|
0 commit comments