As of #13631, statically defined live preview URLs become corrupt after the first save. For example, if you define your URL as a string like this: ```ts import type { CollectionConfig } from 'payload' const MyCollection: CollectionConfig = { // ... admin: { livePreview: { url: '/hello-world' } } } ``` On initial load, the iframe's src will evaluate to `.../hello-world` as expected, but from the first save onward, the url becomes `.../undefined`. This is because for statically defined URLs, the `livePreviewURL` property does not exist on the response. Despite this, we set it into state as undefined. This is true for both collections and globals. Initially reported on Discord here: https://discord.com/channels/967097582721572934/967097582721572937/1421166976113442847 --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1211478736160152
69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
import { fileURLToPath } from 'node:url'
|
|
import path from 'path'
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
|
|
import { MediaBlock } from './blocks/MediaBlock/index.js'
|
|
import { Categories } from './collections/Categories.js'
|
|
import { CollectionLevelConfig } from './collections/CollectionLevelConfig.js'
|
|
import { Media } from './collections/Media.js'
|
|
import { Pages } from './collections/Pages.js'
|
|
import { Posts } from './collections/Posts.js'
|
|
import { SSR } from './collections/SSR.js'
|
|
import { SSRAutosave } from './collections/SSRAutosave.js'
|
|
import { StaticURLCollection } from './collections/StaticURL.js'
|
|
import { Tenants } from './collections/Tenants.js'
|
|
import { Users } from './collections/Users.js'
|
|
import { Footer } from './globals/Footer.js'
|
|
import { Header } from './globals/Header.js'
|
|
import { seed } from './seed/index.js'
|
|
import {
|
|
desktopBreakpoint,
|
|
mobileBreakpoint,
|
|
pagesSlug,
|
|
postsSlug,
|
|
ssrAutosavePagesSlug,
|
|
ssrPagesSlug,
|
|
} from './shared.js'
|
|
import { formatLivePreviewURL } from './utilities/formatLivePreviewURL.js'
|
|
|
|
export default buildConfigWithDefaults({
|
|
localization: {
|
|
defaultLocale: 'en',
|
|
locales: ['en', 'es'],
|
|
},
|
|
admin: {
|
|
importMap: {
|
|
baseDir: path.resolve(dirname),
|
|
},
|
|
livePreview: {
|
|
// You can define any of these properties on a per collection or global basis
|
|
// The Live Preview config cascades from the top down, properties are inherited from here
|
|
url: formatLivePreviewURL,
|
|
breakpoints: [mobileBreakpoint, desktopBreakpoint],
|
|
collections: [pagesSlug, postsSlug, ssrPagesSlug, ssrAutosavePagesSlug],
|
|
globals: ['header', 'footer'],
|
|
},
|
|
},
|
|
cors: ['http://localhost:3000', 'http://localhost:3001'],
|
|
csrf: ['http://localhost:3000', 'http://localhost:3001'],
|
|
collections: [
|
|
Users,
|
|
Pages,
|
|
Posts,
|
|
SSR,
|
|
SSRAutosave,
|
|
Tenants,
|
|
Categories,
|
|
Media,
|
|
CollectionLevelConfig,
|
|
StaticURLCollection,
|
|
],
|
|
globals: [Header, Footer],
|
|
onInit: seed,
|
|
typescript: {
|
|
outputFile: path.resolve(dirname, 'payload-types.ts'),
|
|
},
|
|
blocks: [MediaBlock],
|
|
})
|