Files
klz-cables.com/.pnpm-store/v10/files/39/34fcf00c14c11910b4f294e7c7e6627e88e3d5a3315e86a83c56253b142294740cea7414e75e9a5e5df3cc2f0c248be77a0b9e1485f1d8eeb048e1a6c6c9b5
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

169 lines
6.1 KiB
Plaintext

import { ViewDescription } from '@payloadcms/ui';
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
import { hasDraftsEnabled } from 'payload/shared';
import { getDocumentPermissions } from './getDocumentPermissions.js';
export const renderDocumentSlots = args => {
const {
id,
collectionConfig,
globalConfig,
hasSavePermission,
locale,
permissions,
req
} = args;
const components = {};
const unsavedDraftWithValidations = undefined;
const isPreviewEnabled = collectionConfig?.admin?.preview || globalConfig?.admin?.preview;
const serverProps = {
id,
i18n: req.i18n,
locale,
payload: req.payload,
permissions,
user: req.user
};
const BeforeDocumentControls = collectionConfig?.admin?.components?.edit?.beforeDocumentControls || globalConfig?.admin?.components?.elements?.beforeDocumentControls;
if (BeforeDocumentControls) {
components.BeforeDocumentControls = RenderServerComponent({
Component: BeforeDocumentControls,
importMap: req.payload.importMap,
serverProps: serverProps
});
}
const EditMenuItems = collectionConfig?.admin?.components?.edit?.editMenuItems;
if (EditMenuItems) {
components.EditMenuItems = RenderServerComponent({
Component: EditMenuItems,
importMap: req.payload.importMap,
serverProps: serverProps
});
}
const CustomPreviewButton = collectionConfig?.admin?.components?.edit?.PreviewButton || globalConfig?.admin?.components?.elements?.PreviewButton;
if (isPreviewEnabled && CustomPreviewButton) {
components.PreviewButton = RenderServerComponent({
Component: CustomPreviewButton,
importMap: req.payload.importMap,
serverProps: serverProps
});
}
const LivePreview = collectionConfig?.admin?.components?.views?.edit?.livePreview || globalConfig?.admin?.components?.views?.edit?.livePreview;
if (LivePreview?.Component) {
components.LivePreview = RenderServerComponent({
Component: LivePreview.Component,
importMap: req.payload.importMap,
serverProps
});
}
const descriptionFromConfig = collectionConfig?.admin?.description || globalConfig?.admin?.description;
const staticDescription = typeof descriptionFromConfig === 'function' ? descriptionFromConfig({
t: req.i18n.t
}) : descriptionFromConfig;
const CustomDescription = collectionConfig?.admin?.components?.Description || globalConfig?.admin?.components?.elements?.Description;
const hasDescription = CustomDescription || staticDescription;
if (hasDescription) {
components.Description = RenderServerComponent({
clientProps: {
collectionSlug: collectionConfig?.slug,
description: staticDescription
},
Component: CustomDescription,
Fallback: ViewDescription,
importMap: req.payload.importMap,
serverProps: serverProps
});
}
if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {
const CustomStatus = collectionConfig?.admin?.components?.edit?.Status || globalConfig?.admin?.components?.elements?.Status;
if (CustomStatus) {
components.Status = RenderServerComponent({
Component: CustomStatus,
importMap: req.payload.importMap,
serverProps
});
}
}
if (hasSavePermission) {
if (hasDraftsEnabled(collectionConfig || globalConfig)) {
const CustomPublishButton = collectionConfig?.admin?.components?.edit?.PublishButton || globalConfig?.admin?.components?.elements?.PublishButton;
if (CustomPublishButton) {
components.PublishButton = RenderServerComponent({
Component: CustomPublishButton,
importMap: req.payload.importMap,
serverProps: serverProps
});
}
const CustomUnpublishButton = collectionConfig?.admin?.components?.edit?.UnpublishButton || globalConfig?.admin?.components?.elements?.UnpublishButton;
if (CustomUnpublishButton) {
components.UnpublishButton = RenderServerComponent({
Component: CustomUnpublishButton,
importMap: req.payload.importMap,
serverProps: serverProps
});
}
const CustomSaveDraftButton = collectionConfig?.admin?.components?.edit?.SaveDraftButton || globalConfig?.admin?.components?.elements?.SaveDraftButton;
const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig);
if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {
components.SaveDraftButton = RenderServerComponent({
Component: CustomSaveDraftButton,
importMap: req.payload.importMap,
serverProps: serverProps
});
}
} else {
const CustomSaveButton = collectionConfig?.admin?.components?.edit?.SaveButton || globalConfig?.admin?.components?.elements?.SaveButton;
if (CustomSaveButton) {
components.SaveButton = RenderServerComponent({
Component: CustomSaveButton,
importMap: req.payload.importMap,
serverProps: serverProps
});
}
}
}
if (collectionConfig?.upload && collectionConfig?.admin?.components?.edit?.Upload) {
components.Upload = RenderServerComponent({
Component: collectionConfig.admin.components.edit.Upload,
importMap: req.payload.importMap,
serverProps
});
}
if (collectionConfig?.upload && collectionConfig.upload.admin?.components?.controls) {
components.UploadControls = RenderServerComponent({
Component: collectionConfig.upload.admin.components.controls,
importMap: req.payload.importMap,
serverProps
});
}
return components;
};
export const renderDocumentSlotsHandler = async args => {
const {
id,
collectionSlug,
locale,
permissions,
req
} = args;
const collectionConfig = req.payload.collections[collectionSlug]?.config;
if (!collectionConfig) {
throw new Error(req.t('error:incorrectCollection'));
}
const {
hasSavePermission
} = await getDocumentPermissions({
id,
collectionConfig,
data: {},
req
});
return renderDocumentSlots({
id,
collectionConfig,
hasSavePermission,
locale,
permissions,
req
});
};
//# sourceMappingURL=renderDocumentSlots.js.map