Home

>

Tools

>

Payload CMS

>

Releases

>

3.0.0-beta.25

Payload CMS Release: 3.0.0-beta.25

Pre Release

Tag Name: 3.0.0-beta.25

Release Date: 5/6/2024

Payload CMS LogoPayload CMS

Payload CMS is a modern, self-hosted headless content management system built with TypeScript, Node.js, and MongoDB. It's designed specifically for developers who want full control over their content management system while maintaining a powerful admin interface for content editors.

TL;DR

PayloadCMS 3.0.0-beta.25 brings significant enhancements to the rich text editor with a new fixed toolbar feature, adds Slovak language support, and introduces field customization options for admin UI. This release also fixes critical issues with GraphQL uploads, form builder hooks, and UI sorting functionality. Type renaming in the Stripe plugin and changes to the rich text editor structure introduce breaking changes that require attention during upgrade.

Highlight of the Release

    • New fixed toolbar feature for the Lexical rich text editor
    • Slovak language translation added to the admin interface
    • New field admin properties: disableListColumn and disableListFilter
    • Fixed GraphQL upload relations returning null
    • Improved form builder plugin with fixed hook overrides

Migration Guide

Stripe Plugin Type Changes

If you're using the Stripe plugin, you'll need to update your code to use the renamed types:

  • Types have been renamed to be more consistent with other plugins
  • Review the changes in PR #6216 for specific type name changes

Rich Text Editor Breaking Changes

If you're using the Lexical rich text editor with custom configurations:

  1. Inline Toolbar Changes:

    • The default inline toolbar has been extracted into an InlineToolbarFeature
    • If you're not including defaultFeatures but want to keep the floating toolbar, explicitly add InlineToolbarFeature() to your features array
  2. Type Renaming:

    • InlineToolbarGroup is now ToolbarGroup
    • InlineToolbarGroupItem is now ToolbarGroupItem
    • The displayName property of SlashMenuGroup and SlashMenuItem has been renamed to label
  3. Export Renaming:

    • inlineToolbarFeatureButtonsGroupWithItemtoolbarFeatureButtonsGroupWithItems
    • inlineToolbarFormatGroupWithItemstoolbarFormatGroupWithItems
    • inlineToolbarTextDropdownGroupWithItemstoolbarTextDropdownGroupWithItems

Upgrade Recommendations

This beta release contains breaking changes to the rich text editor and Stripe plugin types. We recommend:

  1. For Production Systems:

    • If you're using PayloadCMS in production, carefully test this beta release in a staging environment before upgrading
    • Pay special attention to rich text editor customizations and Stripe plugin integrations
  2. For Development/Testing:

    • Update to this version to test the new features and provide feedback
    • Follow the migration guide to adapt to the breaking changes
  3. Upgrade Steps:

    • Update your package.json to reference 3.0.0-beta.25
    • Run npm install or yarn to update dependencies
    • Review and apply the necessary changes from the migration guide
    • Test thoroughly, especially rich text editor functionality and form submissions

Bug Fixes

GraphQL Improvements

  • Upload Relations: Fixed an issue where GraphQL upload relations were returning null values (#6233)
  • Draft Argument Threading: Fixed a bug where the draft argument wasn't being properly passed through for child resolvers in GraphQL queries (#6196)

Plugin Fixes

  • Form Builder Hook Overrides: Resolved an issue where custom formSubmission hooks were incorrectly overriding core hooks in the form builder plugin (#6203, #6204)

UI Fixes

  • Sortable Elements: Fixed the display of drag handles when sorting is disabled via admin.isSortable: false (#6225)

New Features

Rich Text Editor Enhancements

  • Fixed Toolbar Feature: Added a new FixedToolbarFeature to the Lexical rich text editor, providing a traditional fixed-position toolbar as an alternative to the floating inline toolbar. This can be implemented with:
editor: lexicalEditor({
  features: ({ defaultFeatures }) => [
    ...defaultFeatures,
    FixedToolbarFeature(),
  ],
}),

Admin UI Improvements

  • Field Display Controls: Added new admin properties disableListColumn and disableListFilter to fields, giving developers more control over how fields appear in the admin interface
  • Drag Handle Visibility: Added functionality to hide drag handles when admin.isSortable is set to false, improving UI clarity

Internationalization

  • Slovak Translation: Added complete Slovak language support to the admin interface (#6114)

Security Updates

No security fixes were explicitly mentioned in this release.

Performance Improvements

No specific performance improvements were mentioned in this release.

Impact Summary

This beta release brings valuable improvements to PayloadCMS with a focus on enhancing the rich text editing experience and fixing critical bugs. The addition of the fixed toolbar option provides a more traditional editing interface alongside the existing floating toolbar, giving content creators more flexibility in how they work. Slovak language support expands the CMS's accessibility to more users.

The bug fixes address important issues with GraphQL uploads, form builder hooks, and UI elements, improving reliability and developer experience. The new field admin properties provide more granular control over the admin interface, allowing developers to customize the display of fields in list views.

However, the breaking changes to the rich text editor structure and Stripe plugin types require careful attention during upgrade. Developers will need to update their code if they've customized the rich text editor or are using the Stripe plugin.

Overall, this release represents continued progress toward a stable 3.0 release with meaningful improvements to both developer and content editor experiences.

Full Release Notes

3.0.0-beta.25 (2024-05-06)

Features

editor: lexicalEditor({
  features: ({ defaultFeatures }) => [
    ...defaultFeatures,
    FixedToolbarFeature(),
  ],
}),

CleanShot 2024-05-06 at 13 43 04@2x

Bug Fixes

  • threads draft arg through for child resolvers in GraphQL queries (#6196) (51149c7)
  • plugin-form-builder: custom formSubmission hooks overriding core ones (#6204) (8a452c4)

BREAKING CHANGES

  • plugin-stripe: add types exports and rename types to be more consistent with other plugins (#6216) (7f72006)

Some minor type renaming for consistency with other packages.

  • richtext-lexical: add FixedToolbarFeature (#6192) (c462bf2)

BREAKING:

  • The default inline toolbar has now been extracted into an InlineToolbarFeature. While it's part of the defaultFeatures, you might have to add it to your editor features if you are not including the defaultFeatures and still want to keep the inline toolbar (floating toolbar)
  • Some types have been renamed, e.g. InlineToolbarGroup is now ToolbarGroup, and InlineToolbarGroupItem is now ToolbarGroupItem
  • The displayName property of SlashMenuGroup and SlashMenuItem has been renamed to label to match the label prop of the toolbars
  • The inlineToolbarFeatureButtonsGroupWithItem, inlineToolbarFormatGroupWithItems and inlineToolbarTextDropdownGroupWithItems exports have been renamed to toolbarTextDropdownGroupWithItems, toolbarFormatGroupWithItems, toolbarFeatureButtonsGroupWithItems

Contributors

Statistics:

File Changed27
Line Additions268
Line Deletions54
Line Changes322
Total Commits6

User Affected:

  • Need to update code if using the Stripe plugin due to type renaming
  • Must adapt to breaking changes in the rich text editor if customizing the toolbar
  • Can now use the new `disableListColumn` and `disableListFilter` admin properties
  • Benefit from fixed GraphQL upload relations issues

Contributors:

paulpopusPatrikKozakDracoBlueJarrodMFleschfranciscolourencodenolfe