Change8

v3.29.0

📦 payload-cmsView on GitHub →
17 features🐛 21 fixes🔧 15 symbols

Summary

This release upgrades the core lexical dependency to v0.28.0 and introduces several new features including sort support for update operations and conditional tabs. It also includes numerous bug fixes across database drivers, plugins, and the rich text editor.

Migration Steps

  1. If you installed lexical manually, update it to `0.28.0`. Installing lexical manually is not recommended, as it may break between updates, and our re-exported versions should be used. See the [yellow banner box](https://payloadcms.com/docs/rich-text/custom-features) for details.
  2. If you still encounter richtext-lexical errors, perform the following steps in order: 1. Delete `node_modules`. 2. Delete your lockfile (e.g. `pnpm-lock.json`). 3. Reinstall your dependencies (e.g. `pnpm install`).

✨ New Features

  • Pass i18n through field label and description functions.
  • Sort support for payload.update operation.
  • Add find to payloadDataLoader to cache local API queries.
  • Distinct error for unverified email login.
  • Aligns user _strategy returned from API.
  • Form state select.
  • Add `forceSelect` collection / global config property.
  • Added support for conditional tabs.
  • Support sort in db.updateMany.
  • Allow to thread `id` to create operation data without custom IDs.
  • Postgres: Add vector raw column type.
  • Plugin form-builder: Radio field support.
  • Richtext-lexical: Support escaping markdown characters.
  • Richtext-lexical: Upgrade lexical from 0.27.2 to 0.28.0.
  • Richtext-lexical: Allow disabling TabNode.
  • Richtext-lexical: Upgrade lexical from 0.27.1 to 0.27.2.
  • UI: Don't trigger preventLeave when opening a new tab.

🐛 Bug Fixes

  • Add locale support to relationship filter options in WhereBuilder (two instances reported).
  • Fix save button styles in edit-many modal.
  • Wrap login redirect routes with encodeURIComponent.
  • Fix email format validation with hyphens.
  • Improves email validation format rules.
  • Field appending on duplicate should ignore non string values.
  • Passes id and data to read access func when accessing upload URLs.
  • Fix bulk upload validation when files are missing.
  • Ensures `select` & `radio` field option labels accept JSX elements.
  • Add classes for picture tag in media component.
  • Mongodb: Spread version schema options correctly.
  • Plugin cloud-storage: S3Storage client uploads working with more than 2 instances of the plugin.
  • Plugin import-export: Export with draft true.
  • Plugin import-export: Translated preview labels.
  • Plugin multi-tenant: Ensures redirect route is correctly formatted.
  • Plugin multi-tenant: Fix missing key console message.
  • Richtext-lexical: Fix error in admin panel when block collapsed preference is not an array.
  • Richtext-lexical: Fix error in admin panel when setting a richtext field in `useAsTitle`.
  • Richtext-lexical: Make the toolbar indent button consider the disabledNodes property on IndentFeature.
  • Richtext-lexical: Unchecked list items were rendered as checked in html converter.
  • Richtext-lexical: Remove undefined rel and target attributes in link HTML converter.

🔧 Affected Symbols

payload.update operationpayloadDataLoaderWhereBuilderdb.updateManydb.create operationdb-postgresplugin-form-builderrichtext-lexicalTabNodedb-mongodbplugin-cloud-storages3Storage clientplugin-import-exportplugin-multi-tenantuseAsTitle