v3.36.0
payloadcms/payloadv3.36.0Apr 29, 2025by denolfe
AI Summary
This release introduces UI slots for custom component injection and a new draft button option. It also focuses on performance optimizations for virtual fields and joins, along with fixes for Rich Text indentation.
Key Highlights
- Add 'beforeDocumentControls' slot for custom components
- Add 'showSaveDraftButton' option
- Performance optimization for virtual fields referencing ID
- Rich text indentation and outdent fixes
New Features
- Add 'beforeDocumentControls' slot
- Add 'showSaveDraftButton' option
- Sort by distance when 'near' operator is used
- Optimize virtual fields that reference ID
- Skip count query for join field using simple pagination
Full Release Notes
## [v3.36.0](https://github.com/payloadcms/payload/compare/v3.35.1...v3.36.0) (2025-04-29) ### 🚀 Features * add `beforeDocumentControls` slot to allow custom component injection next to document controls ([#12104](https://github.com/payloadcms/payload/issues/12104)) ([d553069](https://github.com/payloadcms/payload/commit/d553069)) * add `showSaveDraftButton` option to show draft button with autosave enabled ([#12150](https://github.com/payloadcms/payload/issues/12150)) ([34ea6ec](https://github.com/payloadcms/payload/commit/34ea6ec)) ### 🐛 Bug Fixes * user validation error inside the forgotPassword operation in the cases where user had localised fields ([#12034](https://github.com/payloadcms/payload/issues/12034)) ([c85fb80](https://github.com/payloadcms/payload/commit/c85fb80)) * **db-mongodb:** fallback `version` when not selected ([#12158](https://github.com/payloadcms/payload/issues/12158)) ([6dc61ae](https://github.com/payloadcms/payload/commit/6dc61ae)) * **db-postgres:** sort by distance when the `near` operator is used ([#12185](https://github.com/payloadcms/payload/issues/12185)) ([9955818](https://github.com/payloadcms/payload/commit/9955818)) * **examples:** incorrect documentation links for Live Preview example ([#12233](https://github.com/payloadcms/payload/issues/12233)) ([ab03f4f](https://github.com/payloadcms/payload/commit/ab03f4f)) * **next:** pg-cloudflare build issue ([#12242](https://github.com/payloadcms/payload/issues/12242)) ([2157450](https://github.com/payloadcms/payload/commit/2157450)) * **plugin-search:** delete does not also delete the search doc ([#12148](https://github.com/payloadcms/payload/issues/12148)) ([df7a369](https://github.com/payloadcms/payload/commit/df7a369)) * **richtext-lexical:** prevent extra paragraph when inserting blocks or uploadNodes. Add preemptive selection normalization ([#12077](https://github.com/payloadcms/payload/issues/12077)) ([5492542](https://github.com/payloadcms/payload/commit/5492542)) * **richtext-lexical:** allow to indent and outdent if at least one selected node allows it ([#12182](https://github.com/payloadcms/payload/issues/12182)) ([9b1dd2a](https://github.com/payloadcms/payload/commit/9b1dd2a)) * **richtext-lexical:** reset indent on node transforms ([#12183](https://github.com/payloadcms/payload/issues/12183)) ([2c20051](https://github.com/payloadcms/payload/commit/2c20051)) * **ui:** copyToLocale should not pass any id's to avoid duplicates ([#11887](https://github.com/payloadcms/payload/issues/11887)) ([34ead72](https://github.com/payloadcms/payload/commit/34ead72)) * **ui:** relationship using list drawer correctly updates when hasMany is true ([#12176](https://github.com/payloadcms/payload/issues/12176)) ([5bd852c](https://github.com/payloadcms/payload/commit/5bd852c)) * **ui:** reflect default sort in join tables ([#12084](https://github.com/payloadcms/payload/issues/12084)) ([b750ba4](https://github.com/payloadcms/payload/commit/b750ba4)) ### ⚡ Performance * optimize virtual fields that reference ID ([#12159](https://github.com/payloadcms/payload/issues/12159)) ([fdff587](https://github.com/payloadcms/payload/commit/fdff587)) * **graphql:** skip count query for join field using simple pagination ([#12223](https://github.com/payloadcms/payload/issues/12223)) ([6b83086](https://github.com/payloadcms/payload/commit/6b83086)) * **plugin-nested-docs:** remove extra find call ([#12224](https://github.com/payloadcms/payload/issues/12224)) ([2f21d46](https://github.com/payloadcms/payload/commit/2f21d46)) * **plugin-search:** reduce query depth in hooks ([#12225](https://github.com/payloadcms/payload/issues/12225)) ([caae598](https://github.com/payloadcms/payload/commit/caae598)) * **ui:** only select necessary data for relationship options ([#12251](https://github.com/payloadcms/payload/issues/12251)) ([9948040](https://github.com/payloadcms/payload/commit/9948040)) ### 🛠 Refactors * **translations:** improvements for german translations ([#11807](https://github.com/payloadcms/payload/issues/11807)) ([92380bf](https://github.com/payloadcms/payload/commit/92380bf)) ### 📚 Documentation * adds warning about handling different environments with migrations ([#12249](https://github.com/payloadcms/payload/issues/12249)) ([b7ae4ee](https://github.com/payloadcms/payload/commit/b7ae4ee)) * fix query preset config link ([#12156](https://github.com/payloadcms/payload/issues/12156)) ([034a267](https://github.com/payloadcms/payload/commit/034a267)) * virtual fields linking with relationship fields ([#12145](https://github.com/payloadcms/payload/issues/12145)) ([d91478c](https://github.com/payloadcms/payload/commit/d91478c)) ### 🤝 Contributors - Germán Jabloñski (@GermanJablo) - Tobias Odendahl (@tak-amboss) - Jessica Rynkar (@jessrynkar) - Bjørn Nyborg (@Bjornnyborg) - Dan Ribbens (@DanRibbens) - Sam Wheeler (@swheeler7) - Adrian Maj (@AdrianMaj) - Tylan Davis (@tylandavis) - Elliot DeNolf (@denolfe) - Said Akhrarov (@akhrarovsaid) - Silas Krause (@krsilas) - Sasha (@r1tsuu) - Corey Larson (@coreyleelarson) - Patrik (@PatrikKozak)