v3.20.0

payloadcms/payloadv3.20.0Jan 29, 2025by denolfe

AI Summary

Enhances the version diff view with customization options, allowing fields to be collapsed and modified-only views. The UI now renders versions on the server and allows swapping publish buttons.

Key Highlights

  • Customizable version diff components.
  • Toggle to show only modified fields.
  • Render versions UI on the server.
  • Ability to swap publish and publish specific locale buttons.

New Features

  • Customize version diff components
  • Render versions UI on server
  • Toggle showing only modified fields
  • Allow collapsing fields in diff view
  • Swap publish and publish specific locale buttons

Full Release Notes

## [v3.20.0](https://github.com/payloadcms/payload/compare/v3.19.0...v3.20.0) (2025-01-29)


### 🚀 Features

* allow publish and publish specific locale buttons to be swapped ([#9438](https://github.com/payloadcms/payload/issues/9438)) ([9b49741](https://github.com/payloadcms/payload/commit/9b49741))
* allows fields to be collapsed in the version view diff ([#8054](https://github.com/payloadcms/payload/issues/8054)) ([828b3b7](https://github.com/payloadcms/payload/commit/828b3b7))
* **ui:** allows customizing version diff components, render versions ui on the server ([#10815](https://github.com/payloadcms/payload/issues/10815)) ([c562fbf](https://github.com/payloadcms/payload/commit/c562fbf))
* **ui:** toggle showing only modified fields in version diff view ([#10807](https://github.com/payloadcms/payload/issues/10807)) ([33ac13d](https://github.com/payloadcms/payload/commit/33ac13d))

### 🐛 Bug Fixes

* checks for localization to prevent publish button breaking ([#10844](https://github.com/payloadcms/payload/issues/10844)) ([9c31a52](https://github.com/payloadcms/payload/commit/9c31a52))
* field paths within hooks ([#10638](https://github.com/payloadcms/payload/issues/10638)) ([0acaf8a](https://github.com/payloadcms/payload/commit/0acaf8a))
* **next:** remove toString coercion inside getDocumentPermissions ([#10828](https://github.com/payloadcms/payload/issues/10828)) ([9f9919d](https://github.com/payloadcms/payload/commit/9f9919d))
* **plugin-form-builder:** type of MessageField to object ([#10792](https://github.com/payloadcms/payload/issues/10792)) ([92e6beb](https://github.com/payloadcms/payload/commit/92e6beb))
* **plugin-form-builder:** type of MessageField to SerializedEditorState ([#10789](https://github.com/payloadcms/payload/issues/10789)) ([5603c1c](https://github.com/payloadcms/payload/commit/5603c1c))
* **plugin-multi-tenant:** issue #10740 - "The following field is invalid: Assigned Tenant" ([#10764](https://github.com/payloadcms/payload/issues/10764)) ([c1c64a0](https://github.com/payloadcms/payload/commit/c1c64a0))
* **plugin-multi-tenant:** remove tenant cookie on logout ([#10761](https://github.com/payloadcms/payload/issues/10761)) ([22633a6](https://github.com/payloadcms/payload/commit/22633a6))
* **plugin-nested-docs:** update draft and published child docs on resave ([#10454](https://github.com/payloadcms/payload/issues/10454)) ([7a39870](https://github.com/payloadcms/payload/commit/7a39870))
* **richtext-lexical:** preserve selection in Firefox when using LexicalMenu ([#10867](https://github.com/payloadcms/payload/issues/10867)) ([0e5ff24](https://github.com/payloadcms/payload/commit/0e5ff24))
* **richtext-lexical:** afterRead hooks were not awaited ([#10747](https://github.com/payloadcms/payload/issues/10747)) ([9f2bca1](https://github.com/payloadcms/payload/commit/9f2bca1))
* **translations:** adds et to import file ([#10823](https://github.com/payloadcms/payload/issues/10823)) ([ffe8020](https://github.com/payloadcms/payload/commit/ffe8020))
* **ui:** adds title attribute to Logout button for tooltip ([#10851](https://github.com/payloadcms/payload/issues/10851)) ([989140b](https://github.com/payloadcms/payload/commit/989140b))
* **ui:** correctly reset blocksDrawer search state after close ([#10847](https://github.com/payloadcms/payload/issues/10847)) ([8a6d995](https://github.com/payloadcms/payload/commit/8a6d995))
* **ui:** adds prev value on form state validat functions ([#10832](https://github.com/payloadcms/payload/issues/10832)) ([a835518](https://github.com/payloadcms/payload/commit/a835518))
* **ui:** hide the restore button's empty submenu in a draft version ([#10756](https://github.com/payloadcms/payload/issues/10756)) ([0d81ff2](https://github.com/payloadcms/payload/commit/0d81ff2))
* **ui:** include check for parent permissions in renderField ([#10729](https://github.com/payloadcms/payload/issues/10729)) ([8289588](https://github.com/payloadcms/payload/commit/8289588))

### ⚡ Performance

* skips field validations until the form is submitted ([#10580](https://github.com/payloadcms/payload/issues/10580)) ([82f1bb9](https://github.com/payloadcms/payload/commit/82f1bb9))
* only validate filter options on submit ([#10738](https://github.com/payloadcms/payload/issues/10738)) ([a05240a](https://github.com/payloadcms/payload/commit/a05240a))

### 📚 Documentation

* add missing full stop, fix SlateNodeConverter import ([#10860](https://github.com/payloadcms/payload/issues/10860)) ([a47139a](https://github.com/payloadcms/payload/commit/a47139a))
* fix links and formatting ([#10835](https://github.com/payloadcms/payload/issues/10835)) ([8952662](https://github.com/payloadcms/payload/commit/8952662))
* fix typo ([#10824](https://github.com/payloadcms/payload/issues/10824)) ([95e81d8](https://github.com/payloadcms/payload/commit/95e81d8))
* improvements in rich text section ([#9954](https://github.com/payloadcms/payload/issues/9954)) ([6a39279](https://github.com/payloadcms/payload/commit/6a39279))
* adds limit, page, sort, where, and joins to list of rest query params ([#10751](https://github.com/payloadcms/payload/issues/10751)) ([ec1a441](https://github.com/payloadcms/payload/commit/ec1a441))

### 📝 Templates

* fix compatibility with pnpm 10 ([#10830](https://github.com/payloadcms/payload/issues/10830)) ([3094c92](https://github.com/payloadcms/payload/commit/3094c92))
* fix website template not building ([#10858](https://github.com/payloadcms/payload/issues/10858)) ([219a369](https://github.com/payloadcms/payload/commit/219a369))
* adds landing page to blank template ([#10769](https://github.com/payloadcms/payload/issues/10769)) ([e65a04a](https://github.com/payloadcms/payload/commit/e65a04a))
* ensure lexical link validation does not break for internal links ([#10771](https://github.com/payloadcms/payload/issues/10771)) ([59545b5](https://github.com/payloadcms/payload/commit/59545b5))

### ⚙️ CI

* remove docker login, not functional for external contributors ([eca4f47](https://github.com/payloadcms/payload/commit/eca4f47))
* update CODEOWNERS ([d6ae07d](https://github.com/payloadcms/payload/commit/d6ae07d))
* fix run e2e command ([#10779](https://github.com/payloadcms/payload/issues/10779)) ([344b231](https://github.com/payloadcms/payload/commit/344b231))

### 🏡 Chores

* improves routeError log safety ([#10793](https://github.com/payloadcms/payload/issues/10793)) ([ace7557](https://github.com/payloadcms/payload/commit/ace7557))
* uncomment collectionSlugs array in fields test suite, for resetDB to work properly ([#10778](https://github.com/payloadcms/payload/issues/10778)) ([72a5c02](https://github.com/payloadcms/payload/commit/72a5c02))
* migrate outdated @payloadcms/next/utilities imports ([#10777](https://github.com/payloadcms/payload/issues/10777)) ([b9d3250](https://github.com/payloadcms/payload/commit/b9d3250))
* disable bun run test buttons if bun extension is installed ([#10775](https://github.com/payloadcms/payload/issues/10775)) ([03f7bdf](https://github.com/payloadcms/payload/commit/03f7bdf))
* **cpa:** re-pin template versions ([#10857](https://github.com/payloadcms/payload/issues/10857)) ([c08f012](https://github.com/payloadcms/payload/commit/c08f012))
* **deps:** upgrades react-diff-viewer-continued to v4.0.4 to suppress react 19 warnings and use ESM imports ([#10834](https://github.com/payloadcms/payload/issues/10834)) ([57f7218](https://github.com/payloadcms/payload/commit/57f7218))
* **templates:** update missing changes in vercel website template ([#10827](https://github.com/payloadcms/payload/issues/10827)) ([c75c6ce](https://github.com/payloadcms/payload/commit/c75c6ce))
* **templates:** fix eslint errors in vercel templates ([#10768](https://github.com/payloadcms/payload/issues/10768)) ([52f86c7](https://github.com/payloadcms/payload/commit/52f86c7))
* **templates:** fix: the contact page of the website template throws an error in live preview ([#10785](https://github.com/payloadcms/payload/issues/10785)) ([d6658b5](https://github.com/payloadcms/payload/commit/d6658b5))
* **templates:** fix eslint errors in plugin template ([#10770](https://github.com/payloadcms/payload/issues/10770)) ([b76401c](https://github.com/payloadcms/payload/commit/b76401c))

### 🤝 Contributors

- Germán Jabloñski (@GermanJablo)
- Sasha (@r1tsuu)
- Elliot DeNolf (@denolfe)
- Seno (@s-en-o)
- Alessio Gravili (@AlessioGr)
- Tsemach Hadad (@tsemachh)
- Dan Ribbens (@DanRibbens)
- Patrik (@PatrikKozak)
- Said Akhrarov (@akhrarovsaid)
- Jacob Fletcher (@jacobsfletch)
- Jessica Chowdhury (@JessChowdhury)
- Jarrod Flesch (@JarrodMFlesch)
- Tib (@T1l3)
- felismargarita (@felismargarita)
- Wallerand Delevacq (@wallforfry)
- James Mikrut (@jmikrut)
- Francisco Lourenço (@franciscolourenco)