### What? If an error occurs while unpublishing a document in the edit view UI, the toast which shows the error message now displays the actual message which is sent from the server, if available. ### Why? Only a generic error message was shown if an unpublish operation failed. Some errors might be solvable by the user, so that there is value in showing the actual, actionable error message instead of a generic one. ### How? The server response is parsed for error message if an unpublish operation fails and displayed in the toast, instead of the generic error message. 
97 lines
2.8 KiB
TypeScript
97 lines
2.8 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 AutosavePosts from './collections/Autosave.js'
|
|
import AutosaveWithDraftButtonPosts from './collections/AutosaveWithDraftButton.js'
|
|
import AutosaveWithValidate from './collections/AutosaveWithValidate.js'
|
|
import CustomIDs from './collections/CustomIDs.js'
|
|
import { Diff } from './collections/Diff/index.js'
|
|
import DisablePublish from './collections/DisablePublish.js'
|
|
import DraftPosts from './collections/Drafts.js'
|
|
import DraftWithMax from './collections/DraftsWithMax.js'
|
|
import DraftsWithValidate from './collections/DraftsWithValidate.js'
|
|
import ErrorOnUnpublish from './collections/ErrorOnUnpublish.js'
|
|
import LocalizedPosts from './collections/Localized.js'
|
|
import { Media } from './collections/Media.js'
|
|
import Posts from './collections/Posts.js'
|
|
import { TextCollection } from './collections/Text.js'
|
|
import VersionPosts from './collections/Versions.js'
|
|
import AutosaveGlobal from './globals/Autosave.js'
|
|
import AutosaveWithDraftButtonGlobal from './globals/AutosaveWithDraftButton.js'
|
|
import DisablePublishGlobal from './globals/DisablePublish.js'
|
|
import DraftGlobal from './globals/Draft.js'
|
|
import DraftWithMaxGlobal from './globals/DraftWithMax.js'
|
|
import LocalizedGlobal from './globals/LocalizedGlobal.js'
|
|
import { seed } from './seed.js'
|
|
|
|
export default buildConfigWithDefaults({
|
|
admin: {
|
|
importMap: {
|
|
baseDir: path.resolve(dirname),
|
|
},
|
|
// The autosave test uses this format in order to compare timestamps in the UI
|
|
dateFormat: 'MMMM do yyyy, h:mm:ss a',
|
|
},
|
|
collections: [
|
|
DisablePublish,
|
|
Posts,
|
|
AutosavePosts,
|
|
AutosaveWithDraftButtonPosts,
|
|
AutosaveWithValidate,
|
|
DraftPosts,
|
|
DraftWithMax,
|
|
DraftsWithValidate,
|
|
ErrorOnUnpublish,
|
|
LocalizedPosts,
|
|
VersionPosts,
|
|
CustomIDs,
|
|
Diff,
|
|
TextCollection,
|
|
Media,
|
|
],
|
|
globals: [
|
|
AutosaveGlobal,
|
|
AutosaveWithDraftButtonGlobal,
|
|
DraftGlobal,
|
|
DraftWithMaxGlobal,
|
|
DisablePublishGlobal,
|
|
LocalizedGlobal,
|
|
],
|
|
indexSortableFields: true,
|
|
localization: {
|
|
defaultLocale: 'en',
|
|
locales: [
|
|
{
|
|
code: 'en',
|
|
label: 'English',
|
|
},
|
|
{
|
|
code: 'es',
|
|
label: {
|
|
en: 'Spanish',
|
|
es: 'Español',
|
|
de: 'Spanisch',
|
|
},
|
|
},
|
|
{
|
|
code: 'de',
|
|
label: {
|
|
en: 'German',
|
|
es: 'Alemán',
|
|
de: 'Deutsch',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
onInit: async (payload) => {
|
|
if (process.env.SEED_IN_CONFIG_ONINIT !== 'false') {
|
|
await seed(payload)
|
|
}
|
|
},
|
|
typescript: {
|
|
outputFile: path.resolve(dirname, 'payload-types.ts'),
|
|
},
|
|
})
|