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)