Files
klz-cables.com/.pnpm-store/v10/files/d2/cb5e60e010dd0ade5edda33ede24847e875481cf86484074e8454563109409c5a5970d947b45e0c7d404f3b828dbe86a1e3d999c0aefe1f234936819f2282a
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

209 lines
7.0 KiB
Plaintext

import { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js';
import { generateAccountViewMetadata } from '../Account/metadata.js';
import { generateBrowseByFolderMetadata } from '../BrowseByFolder/metadata.js';
import { generateCollectionFolderMetadata } from '../CollectionFolders/metadata.js';
import { generateCollectionTrashMetadata } from '../CollectionTrash/metadata.js';
import { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js';
import { generateDashboardViewMetadata } from '../Dashboard/metadata.js';
import { generateDocumentViewMetadata } from '../Document/metadata.js';
import { generateForgotPasswordViewMetadata } from '../ForgotPassword/metadata.js';
import { generateListViewMetadata } from '../List/metadata.js';
import { generateLoginViewMetadata } from '../Login/metadata.js';
import { generateNotFoundViewMetadata } from '../NotFound/metadata.js';
import { generateResetPasswordViewMetadata } from '../ResetPassword/metadata.js';
import { generateUnauthorizedViewMetadata } from '../Unauthorized/metadata.js';
import { generateVerifyViewMetadata } from '../Verify/metadata.js';
import { generateCustomViewMetadata } from './generateCustomViewMetadata.js';
import { getCustomViewByRoute } from './getCustomViewByRoute.js';
const oneSegmentMeta = {
'create-first-user': generateCreateFirstUserViewMetadata,
folders: generateBrowseByFolderMetadata,
forgot: generateForgotPasswordViewMetadata,
login: generateLoginViewMetadata,
logout: generateUnauthorizedViewMetadata,
'logout-inactivity': generateUnauthorizedViewMetadata,
unauthorized: generateUnauthorizedViewMetadata
};
export const generatePageMetadata = async ({
config: configPromise,
params: paramsPromise
}) => {
const config = await configPromise;
const params = await paramsPromise;
const folderCollectionSlugs = config.collections.reduce((acc, {
slug,
folders
}) => {
if (folders) {
return [...acc, slug];
}
return acc;
}, []);
const segments = Array.isArray(params.segments) ? params.segments : [];
const currentRoute = `/${segments.join('/')}`;
const [segmentOne, segmentTwo, segmentThree] = segments;
const isGlobal = segmentOne === 'globals';
const isCollection = segmentOne === 'collections';
const i18n = await getNextRequestI18n({
config
});
let meta;
// TODO: handle custom routes
const collectionConfig = isCollection && segments.length > 1 && config?.collections?.find(collection => collection.slug === segmentTwo);
const globalConfig = isGlobal && segments.length > 1 && config?.globals?.find(global => global.slug === segmentTwo);
switch (segments.length) {
case 0:
{
meta = await generateDashboardViewMetadata({
config,
i18n
});
break;
}
case 1:
{
if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {
// --> /:folderCollectionSlug
meta = await oneSegmentMeta.folders({
config,
i18n
});
} else if (segmentOne === 'account') {
// --> /account
meta = await generateAccountViewMetadata({
config,
i18n
});
break;
} else if (oneSegmentMeta[segmentOne]) {
// --> /create-first-user
// --> /forgot
// --> /login
// --> /logout
// --> /logout-inactivity
// --> /unauthorized
meta = await oneSegmentMeta[segmentOne]({
config,
i18n
});
break;
}
break;
}
case 2:
{
if (`/${segmentOne}` === config.admin.routes.reset) {
// --> /reset/:token
meta = await generateResetPasswordViewMetadata({
config,
i18n
});
} else if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {
// --> /browse-by-folder/:folderID
meta = await generateBrowseByFolderMetadata({
config,
i18n
});
} else if (isCollection) {
// --> /collections/:collectionSlug
meta = await generateListViewMetadata({
collectionConfig,
config,
i18n
});
} else if (isGlobal) {
// --> /globals/:globalSlug
meta = await generateDocumentViewMetadata({
config,
globalConfig,
i18n,
params
});
}
break;
}
default:
{
if (segmentTwo === 'verify') {
// --> /:collectionSlug/verify/:token
meta = await generateVerifyViewMetadata({
config,
i18n
});
} else if (isCollection) {
if (segmentThree === 'trash' && segments.length === 3 && collectionConfig) {
// Collection Trash Views
// --> /collections/:collectionSlug/trash
meta = await generateCollectionTrashMetadata({
collectionConfig,
config,
i18n,
params
});
} else if (config.folders && segmentThree === config.folders.slug) {
if (folderCollectionSlugs.includes(collectionConfig.slug)) {
// Collection Folder Views
// --> /collections/:collectionSlug/:folderCollectionSlug
// --> /collections/:collectionSlug/:folderCollectionSlug/:id
meta = await generateCollectionFolderMetadata({
collectionConfig,
config,
i18n,
params
});
}
} else {
// Collection Document Views
// --> /collections/:collectionSlug/:id
// --> /collections/:collectionSlug/:id/versions
// --> /collections/:collectionSlug/:id/versions/:version
// --> /collections/:collectionSlug/:id/api
// --> /collections/:collectionSlug/trash/:id
meta = await generateDocumentViewMetadata({
collectionConfig,
config,
i18n,
params
});
}
} else if (isGlobal) {
// Global Document Views
// --> /globals/:globalSlug/versions
// --> /globals/:globalSlug/versions/:version
// --> /globals/:globalSlug/api
meta = await generateDocumentViewMetadata({
config,
globalConfig,
i18n,
params
});
}
break;
}
}
if (!meta) {
const {
viewConfig,
viewKey
} = getCustomViewByRoute({
config,
currentRoute
});
if (viewKey) {
// Custom Views
// --> /:path
meta = await generateCustomViewMetadata({
config,
i18n,
viewConfig
});
} else {
meta = await generateNotFoundViewMetadata({
config,
i18n
});
}
}
return meta;
};
//# sourceMappingURL=metadata.js.map