Files
payloadcms/examples/form-builder/next-pages/utilities/formatSlug.js
2023-10-09 14:03:39 -04:00

30 lines
686 B
JavaScript

module.exports.formatSlug = reference => {
let slug = ''
const { relationTo, value } = reference
if (typeof value === 'object' && value !== null) {
const { slug: referenceSlug, breadcrumbs } = value
// pages could be nested, so use breadcrumbs
if (relationTo === 'pages') {
if (breadcrumbs) {
const { url: lastCrumbURL = '' } = breadcrumbs?.[breadcrumbs.length - 1] || {} // last crumb
slug = lastCrumbURL
} else {
slug = referenceSlug
}
}
if (relationTo !== 'pages') {
slug = `/${relationTo}/${referenceSlug}`
if (relationTo === 'media') {
slug = value.url
}
}
}
return slug
}