Home

>

Tools

>

Payload CMS

>

Releases

>

3.0.0-beta.26

Payload CMS Release: 3.0.0-beta.26

Pre Release

Tag Name: 3.0.0-beta.26

Release Date: 5/7/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.26 Release

This beta release introduces significant improvements to the rich text editor with Lexical, adds SSR live preview functionality, enhances image crop rendering in thumbnails, and fixes numerous UX issues. Notable breaking changes include refined type definitions for Lexical plugins and disabling the Stripe REST proxy by default.

Highlight of the Release

    • SSR live preview functionality for more accurate content previews
    • Improved crop rendering in thumbnails for better image management
    • Enhanced Lexical rich text editor with better UX and toolbar positioning
    • Strongly typed plugin components for better developer experience
    • Added maxDepth property to various Lexical features for more control

Migration Guide

Breaking Changes Migration

Lexical Rich Text Editor

  1. Update plugin component types:

    • Use PluginComponent or PluginComponentWithAnchor types for your plugins
    • Client props are now automatically provided to plugin components
  2. Rename BlockQuoteFeature to BlockquoteFeature in your imports and usage

  3. Update imports:

    • createClientComponent is now exported only from /components
    • Replace LexicalBlocks and FieldWithRichTextRequiredEditor types with Blocks & Fields

Stripe Plugin

  • The REST proxy is now disabled by default. If your application relies on this functionality, you need to explicitly enable it in your Stripe plugin configuration.

Upgrade Recommendations

This beta release contains important improvements and bug fixes for the rich text editor and introduces SSR live preview functionality. Developers using the Lexical rich text editor should upgrade but be prepared to make the necessary changes to accommodate the breaking changes in type definitions.

If you're using the Stripe plugin, be aware that the REST proxy is now disabled by default and will need to be explicitly enabled if required.

To upgrade:

  1. Update your Payload CMS dependency to version 3.0.0-beta.26
  2. Review and update any Lexical plugin implementations according to the migration guide
  3. Check your Stripe plugin configuration if applicable
  4. Test thoroughly, especially rich text editing functionality and any SSR preview implementations

Bug Fixes

Rich Text Editor Fixes

  • Fixed various UX issues in the Lexical rich text editor
  • Ensured toolbar actions properly focus the editor when needed
  • Fixed link editor selection issues
  • Improved toolbar wrapping on small screen sizes
  • Fixed positioning of inline toolbar between link editor and fixed toolbar
  • Fixed text selection issues within relationship and upload node components
  • Corrected overlapping inline editor and clickable link editor in the first line
  • Fixed floating link editor visibility when selection is not a range selection

Other Fixes

  • Properly extracts fallbackLang for better language handling

New Features

SSR Live Preview

Added server-side rendering support for live preview functionality, allowing content editors to see a more accurate representation of how their content will appear on the frontend.

Improved Crop Rendering in Thumbnails

Enhanced the rendering of cropped images in thumbnails, providing a better visual representation of the actual crop that will be applied.

Rich Text Editor Enhancements

  • Added strongly typed PluginComponent types for better developer experience
  • Improved draggable block indicator styling and animations for better visual feedback
  • Added maxDepth property to various Lexical features for more control over content structure
  • Improved exports and type definitions for better TypeScript support

Security Updates

No specific security fixes were mentioned in this release.

Performance Improvements

Rich Text Editor Performance

The improvements to the Lexical rich text editor, including better handling of selections and toolbar positioning, contribute to a smoother editing experience with less UI jank and more responsive interactions.

Impact Summary

This beta release significantly improves the rich text editing experience with numerous UX enhancements and bug fixes to the Lexical editor. The addition of SSR live preview functionality provides content editors with a more accurate representation of how their content will appear on the frontend.

The breaking changes to the Lexical plugin system require developers to update their implementations, but result in better type safety and a more consistent API. The disabling of the Stripe REST proxy by default is a security-focused change that requires explicit opt-in for this functionality.

Overall, this release enhances both developer and content editor experiences with better TypeScript support, improved UI interactions, and more accurate content previewing capabilities.

Full Release Notes

3.0.0-beta.26 (2024-05-08)

Features

  • ssr live preview (#6239) (731f023)
  • improves crop rendering in thumbnail (#6260) (a7ac5ef)
  • richtext-lexical: strongly typed PluginComponent types, remove LexicalBlocks, improve exports, fix e2e (#6255) (8e55a2a)
  • richtext-lexical: improve draggable block indicator style and animations (f5fb095)
  • richtext-lexical: add maxDepth property to various lexical features (#6242) (721919f)

Bug Fixes

  • richtext-lexical: various UX improvements (#6241) (0f306da)
  • richtext-lexical: fixed toolbar actions not ensuring editor focus, various link editor selection issues (ba9ea5c)
  • richtext-lexical: fixed toolbar not wrapping correctly on small screen sizes (53b7d6f)
  • properly extracts fallbackLang (#6237) (ac5d744)
  • richtext-lexical: ensure inline toolbar is positioned between link editor and fixed toolbar (b94a265)
  • richtext-lexical: text within relationship and upload node components was not able to be selected without selection resetting immediately (1ba3a92)
  • richtext-lexical: inline editor is overlapping the clickable link editor for the first line (9814fd7)
  • richtext-lexical: floating link editor did not properly hide if selection is not a range selection (20455f4)

BREAKING CHANGES

  • richtext-lexical: strongly typed PluginComponent types, remove LexicalBlocks, improve exports, fix e2e (#6255) (8e55a2a)

BREAKING:

  • Narrows the type of the plugins prop of lexical features. Client props are now also automatically provided to the plugin components. To migrate, type your plugin as either PluginComponent or PluginComponentWithAnchor.
  • BlockQuoteFeature has been renamed to BlockquoteFeature
  • createClientComponent is now exported only from /components
  • The LexicalBlocks and FieldWithRichTextRequiredEditor types have been removed in favor of just Blocks & Fields, as well as improved validation.
  • plugin-stripe: disables rest proxy by default (#6230) (e1ff92e)

Contributors

Statistics:

User Affected:

  • Need to update Lexical plugin implementations due to breaking changes in type definitions
  • Can now implement SSR live preview functionality
  • Need to be aware that the Stripe REST proxy is now disabled by default
  • Benefit from improved TypeScript definitions and exports in the rich text editor

Contributors: