TL;DR
PayloadCMS v3.0.0-beta.35: Enhanced Media Management, UI Fixes, and Breaking Changes
This beta release introduces focal point storage for uploads, addressing a long-standing feature request. It also fixes critical issues with user verification emails, relationship field handling, and rich text validation. A breaking change renames view components for better developer experience. This release improves stability and usability of the beta branch as it moves toward the final 3.0 release.
Highlight of the Release
- Added focal point storage for uploads with
focalX and focalY properties
- Fixed critical user verification email functionality
- Improved relationship field handling for search and sort operations
- Breaking change: renamed view components for better developer experience
- Fixed rich text validation for required fields
- Resolved UI issues with tooltips and browser save dialogs
Migration Guide
Breaking Changes: View Component Renaming
The exports of DefaultListView and DefaultEditView have been renamed to remove the "Default" prefix, becoming simply ListView and EditView. This change affects import statements in your code.
Before:
import { DefaultEditView } from '@payloadcms/next/views'
import { DefaultListView } from '@payloadcms/next/views'
After:
import { EditView } from '@payloadcms/next/views'
import { ListView } from '@payloadcms/next/views'
To migrate, search your codebase for imports of these components and update them to use the new names. This is a straightforward find-and-replace operation that should not affect the functionality of your application.
Upgrade Recommendations
This release contains important bug fixes and a new feature for focal point storage on uploads, making it a recommended upgrade for most users of the beta branch. However, be aware of the breaking change to view component names.
For developers using DefaultListView or DefaultEditView:
- Update your import statements as described in the migration guide before upgrading.
For all other users:
- This is a recommended upgrade, especially if you've encountered any of the fixed issues like broken user verification emails or relationship field problems.
To upgrade, update your package.json to reference v3.0.0-beta.35 and run your package manager's install command:
npm install @payloadcms/[email protected]
# or
yarn add @payloadcms/[email protected]
# or
pnpm add @payloadcms/[email protected]
Bug Fixes
User Verification
- Fixed broken user verification emails that were causing a 422 validation error due to incorrect email formatting in the
from field. The issue was resolved by updating the from property to use the correct defaultFromAddress instead of incorrectly using defaultFromName for both the name and address parts.
UI Improvements
- Fixed tooltip positioning issues that were causing display problems in the admin interface
- Prevented the browser's save dialog from appearing when using save hotkeys with no actual changes to save
- Fixed relationship cell formatted values not updating when search parameters change
- Resolved SEO plugin "white screen of death" when choosing existing media for meta images
Rich Text Editor
- Fixed required field validation for Lexical rich text editor when content was manually removed
- Improved node validation messages for better user feedback
- Fixed rich text container elements direction in Slate editor
Relationship Fields
- Separated sort and search fields when looking up relationships, fixing unexpected behavior described in issues #4815 and #5222
- Fixed relationship cell formatted values not updating when search, sort, limit, or where filters change
Other Fixes
- Fixed page metadata generation not working in Turbopack
- Added ESM import paths for GraphQL packages
- Fixed attributes for GraphQL packages
New Features
Focal Point Storage for Uploads
The ability to store focal points on uploaded images has been added, addressing a long-standing feature request (Discussion #4082). Images now store focalX and focalY properties, allowing developers to implement more intelligent image cropping based on the most important part of an image. This feature mirrors PR #6364 from the main branch and brings it to the beta branch.
Improved Component Exports
The DefaultListView component is now exported, allowing developers to reuse it in custom implementations or plugins. This provides greater flexibility when extending the admin UI.
Security Updates
No security fixes were explicitly mentioned in this release.
Performance Improvements
No specific performance improvements were mentioned in this release. The focus appears to be on feature additions, bug fixes, and breaking changes rather than performance optimizations.
Impact Summary
This release brings significant improvements to PayloadCMS beta branch with a focus on stability and usability. The addition of focal point storage for uploads enhances media management capabilities, allowing for more intelligent image cropping - a feature many users have requested. Critical bugs have been fixed, particularly the user verification email system which was completely broken in previous versions.
The UI experience has been improved with fixes to tooltips, relationship fields, and browser save dialogs. Rich text editing is more reliable with proper validation for required fields. The breaking change to view component naming improves API consistency but requires code updates.
Overall, this release represents an important step toward stabilizing the 3.0 beta branch, addressing key issues while adding valuable features. The changes primarily affect developers who need to update import statements and content editors who will benefit from improved UI reliability and new focal point functionality.
Full Release Notes
Features
Bug Fixes
- user verification email broken (#6442) (23f9a32)
- ui: blocks browser save dialog from opening when hotkey used with no changes (#6366) (0190eb8)
- separate sort and search fields when looking up relationship. (#6440) (f482fdc)
- ui: tooltip positioning issues (#6439) (ed47661)
- ui: update relationship cell formatted value when when search changes (#6208) (e682cb1)
- richtext-lexical: field required validation not working if content was removed manually (#6435) (fa7cc37)
- attributes graphql packages, adds esm import path (#6431) (1d81eef)
- plugin-seo: white screen of death on choosing an existing media for meta image (#6424) (8fcfac6)
BREAKING CHANGES
Change the exports of DefaultListView and DefaultEditView to be renamed
without "Default" as ListView
// before
import { DefaultEditView } from '@payloadcms/next/views'
import { DefaultListView } from '@payloadcms/next/views'
// after
import { EditView } from '@payloadcms/next/views'
import { ListView } from '@payloadcms/next/views'
Contributors