Skip to content

Releases: payloadcms/payload

v3.0.0-beta.110

30 Sep 17:25
96d99cb
Compare
Choose a tag to compare
v3.0.0-beta.110 Pre-release
Pre-release

v3.0.0-beta.110 (2024-09-30)

🚀 Features

  • join field on upload fields (#8379) (3f375cc)
  • richtext-lexical: export $createInlineBlockNode, $isInlineBlockNode and InlineBlockNode (#8480) (163f3c0)
  • translations: add danish translations (#7809) (22f120d)
  • richtext-lexical: upgrade lexical from 0.17.0 to 0.18.0, make tables more reliable (#8444) (8b44676)
  • templates: add search functionality to the website template (#8454) (fb60344)
  • payload, ui: add admin.allowEdit relationship field (#8398) (17e0547)

🐛 Bug Fixes

  • db-*: make db.begintransactions required (#8419) (3847428)
  • db-mongodb: duplicate versions with parent string ids (#8487) (7b6a760)
  • draft status access control checks (#8486) (0c10045)
  • reset password link extra slash and thread admin.routes.reset property (#8448) (e765a5e)
  • sorting by id incorrectly orders by version.id (#8442) (4241811)
  • db-mongodb: properly filters out number field values with the exists operator filter (#8416) (8110cb9)
  • ui: RTL not applying for localised textarea fields (#8474) (e5ca476)
  • drizzle: hasMany / poly relationships nested to localized fields / nested blocks to localized fields (#8456) (613d3b0)
  • richtext-lexical: match the indentation spacing of paragraphs and lists (#8437) (f50174f)

⚠️ BREAKING CHANGES

  • richtext-lexical: upgrade lexical from 0.17.0 to 0.18.0, make tables more reliable (#8444) (8b44676)

    This upgrades lexical from 0.17.0 to 0.18.0. If you have
    any lexical packages installed in your project, please update them
    accordingly. Additionally, if you depend on the lexical APIs, please
    consult their changelog, as lexical may introduce breaking changes:
    https://github.com/facebook/lexical/releases/tag/v0.18.0

🤝 Contributors

v2.30.0

27 Sep 16:35
d582619
Compare
Choose a tag to compare

2.30.0 (2024-09-27)

  • export toast from react toastify in payload (#8438) (17fc2d1)

v3.0.0-beta.109

26 Sep 18:08
e900e89
Compare
Choose a tag to compare
v3.0.0-beta.109 Pre-release
Pre-release

v3.0.0-beta.109 (2024-09-26)

🚀 Features

  • preselected theme (#8354) (84d2026)
  • drizzle: customize schema with before / after init hooks (#8196) (8acbda0)
  • add upsert to database interface and adapters (#8397) (82ba193)
  • improve afterError hook to accept array of functions, change to object args (#8389) (28ea0c5)
  • templates update (#8391) (e72f12a)

🐛 Bug Fixes

  • db-mongodb: docs duplicated in list view with drafts (#8435) (adc9bb5)
  • richtext-lexical: add max-width to tables (temporary fix for overflow). (#8431) (a09811f)
  • ui: autosave and preventLeaveWithoutSaving interfering with fetching form-state reliably (#8434) (c73f6c7)
  • ui: number field not being able to clear out the field's value (#8425) (5c2e39e)
  • ui: align to the top fields inside row field (#8421) (4b0351f)
  • ui: versions in documentInfo and status component reverse latest true changes (#8417) (95231da)
  • db-mongodb: add req to migration templates for transactions (#8407) (b10f61c)
  • make field property of FieldLabel optional and partial (#8409) (87360f2)
  • plugin-seo: titles being displayed twice (#8310) (8fadc33)
  • drizzle: migrate args no longer partial payload request (#8375) (c6519ab)
  • client function error on forgot password view (#8374) (06ea67a)
  • drizzle: use alias for localized field sorting (#8396) (775e6e4)
  • lock documents using the live-preview view (#8343) (57f93c9)
  • ui: published, draft and changed labels should now be correctly displayed (#8382) (a37abd1)
  • db-vercel-postgres: include needed pg dependency (#8393) (6da4f06)
  • templates: proper migration file import source for vercel-postgres (#8394) (50da212)
  • safely access user in auth operations (#8381) (a80f5b6)
  • db-mongodb: db.find default limit to 0 (#8376) (dc69e2c)
  • richtext-lexical: regression in lexical blocks (#8378) (19e2f10)
  • richtext-lexical: table dropdown menu dark mode color (#8368) (bd41b4d)
  • optional sortOptions type for SingleRelationshipFieldClient (#8340) (fbc395b)
  • next: set the user data after first user registration (#8360) (30eb1d5)
  • drizzle: sanitize query value uuid / number id NaN (#8369) (dedcff0)
  • drizzle: array/relationship/select hasMany in localized field (#8355) (338c93a)
  • cannot use join on relationships in unnamed fields (#8359) (c696728)
  • ui: inconsistent arrow dropdown on buttons, popover missing caret (#8341) (3583c45)

⚠️ BREAKING CHANGES

  • improve afterError hook to accept array of functions, change to object args (#8389) (28ea0c5)

    Changes the afterError hook structure, adds tests / more docs.
    Ensures that the req.responseHeaders property is respected in the
    error handler.

    afterError now accepts an array of functions instead of a single
    function:

    - afterError: () => {...}
    + afterError: [() => {...}]

    The args are changed to accept an object with the following properties:

    Argument Description
    error The error that occurred.
    context Custom context passed between Hooks. More details.
    graphqlResult The GraphQL result object, available if the hook is executed within a GraphQL context.
    req The Request object containing the currently authenticated user
    collection The Collection in which this Hook is running against. This will be undefined if the hook is executed from a non-collection endpoint or GraphQL.
    result The formatted error result object, available if the hook is executed from a REST context.

🤝 Contributors

v2.29.0

25 Sep 15:41
ec73b46
Compare
Choose a tag to compare

2.29.0 (2024-09-25)

Features

  • add new option to disable JOI validation (#8067) (28a0650)

Bug Fixes

  • treat empty strings as null / undefined for exists queries (#8336) (31d0b30), closes #7714
  • db-postgres: localized items in arrays with versions (#8334) (c86526b)
  • db-postgres: querying on array within a relationship field (#8153) (170ea5b)
  • db-postgres: sanitize tab/group path for table name (#8010) (ba7a043)

v3.0.0-beta.108

20 Sep 20:06
7faa625
Compare
Choose a tag to compare
v3.0.0-beta.108 Pre-release
Pre-release

v3.0.0-beta.108 (2024-09-20)

🚀 Features

  • richtext-lexical: dropdown menu disabled status (#8177) (7d2022f)
  • upgrade next, react and react-dom, move react/next dependency checker from payload to next package (#8323) (1afcaa3)
  • join field (#7518) (6ef2bde)
  • adds overrideLock flag to update & delete operations (#8294) (9c3f863)
  • ui: hides lock icon when locked by current user (#8309) (879f690)
  • ui: threads collectionSlugs through useListDrawer (#8292) (405a6c3)
  • storage-vercel-blob: threads cacheControlMaxAge through static handler (#8065) (a94e40f)
  • ui: useTableColumns add abillity to reset columns state (#8296) (72995fc)
  • plugin-form-builder: new wildcards {{}} and {{:table}} are now supported in email bodies and emails fall back to a global configuration value in addition to base email configuration (#8271) (9821aeb)
  • lock documents while being edited (#7970) (f98d032)
  • plugin-seo: add vietnamese translation (#8179) (89601f1)
  • add virtual property to the fields config (#7621) (bf48af4)
  • add publish specific locale (#7669) (b7a0b15)

⚡ Performance

  • disable router cache refresh that occurs after every page transition or page load (#8318) (0cdd5b6)
  • optimizes admin ui loading by using react cache to memoize req / auth (#8315) (c6a7ad2)

🐛 Bug Fixes

  • ui: hide dot menu in read-only mode for locked documents (#8342) (493b121)
  • db-mongodb: treat empty strings as null / undefined for exists queries (#8337) (e916512)
  • ui: client side error when passing labels as functions for custom view tabs (#8339) (1f7d47a)
  • add logger to serverOnlyConfigProperties (#8325) (afb8805)
  • plugin-form-builder: emails array field has read access by authenticated users only by default now (#8338) (0789f4d)
  • drizzle: equals polymorphic querying with object notation (#8316) (265d7fa)
  • drizzle: nested arrays with localized items and versions (#8331) (2596b85)
  • ui: adjust list view table alignment (#8330) (b51d2bc)
  • only add snapshot to versions query when localization is enabled (#8293) (2d29b7e)
  • findByID adjust type to null if disableErrors: true is passed (#8282) (37e1adf)
  • richtext-slate: fix issue with richText field cell not being a link when used as a useAsTitle (#8272) (dd96f9a)
  • templates: optional chaining bug (#8268) (4d54cc6)
  • ui: code field adjusts its height to its content dynamically. Scrolling over the container is not prevented. (#8209) (f011e4f)
  • strongly types field validation args (#8263) (c0aad3c)
  • ui: mobile menu button sizing (#8264) (110fda7)
  • drizzle: in query on polymorphic relations across ID types (#8240) (31ffc57)
  • ui: filter collection crashes when navigating away (#8260) (9035467)
  • properly infers field validation args (#8243) (029eba5)
  • richtext-lexical: dropdown item disabled status (#8159) (67cd3b3)
  • ui: pass label as prop through to the textarea input (#8248) (a06458d)
  • ui: field alignment when labels overflow inside rows (#8246) (149b7cb)
  • ui: draft docs are now correctly provided in preview URL (#8245) (ccd0b1e)
  • error on forgot-password route (#8244) (d2eafdf)
  • ui: nav button height being stretched and navWrapper border on RTL (#8242) (a68f0ce)
  • drizzle: optimize count querying when no joins (#7749) (8520fd9)
  • plugin-seo: threads entity slug and document config through generation fn args (#8238) (aee76cb)
  • drizzle: localized fields uniqueness per locale (#8230) (b7db53c)

⚠️ BREAKING CHANGES

  • richtext-lexical: dropdown menu disabled status (#8177) (7d2022f)

    ToolbarDropdown no longer receives
    groupKey={group.key} and items={group.items} as props, but instead
    group={group}

  • plugin-form-builder: emails array field has read access by authenticated users only by default now (#8338) (0789f4d)

  • upgrade next, react and react-dom, move react/next dependency checker from payload to next package (#8323) (1afcaa3)

    • Upgrades minimum supported @types/react version from
      npm:[email protected] to npm:[email protected]
    • Upgrades minimum supported @types/react-dom version from
      npm:[email protected] to npm:[email protected]
    • Upgrades minimum supported react and react-dom version from
      19.0.0-rc-06d0b89e-20240801 to 19.0.0-rc-5dcb0097-20240918
    • Upgrades minimum supported Next.js version from 15.0.0-canary.104 to
      15.0.0-canary.160
  • join field (#7518) (6ef2bde)

    • Adds a new "join" field type to Payload and is supported by all database adapters
    • The UI uses a table view for the new field
    • db-mongodb changes relationships to be stored as ObjectIDs instead of strings (for now querying works using both types internally to the DB so no data migration should be necessary unless you're querying directly, see breaking changes for details
    • Adds a reusable traverseFields utility to Payload...
Read more

v3.0.0-beta.107

16 Sep 15:57
a198fe0
Compare
Choose a tag to compare
v3.0.0-beta.107 Pre-release
Pre-release

v3.0.0-beta.107 (2024-09-16)

🚀 Features

⚡ Performance

  • remove find-up dependency, upgrade file-type dependency (#8195) (6d1a287)

🐛 Bug Fixes

  • duplication with localized arrays in unnamed tabs (#8236) (c460868)
  • drizzle: polymorphic querying of different ID types (#8191) (a0a1e20)

🤝 Contributors

v3.0.0-beta.106

15 Sep 13:13
bb2dd5f
Compare
Choose a tag to compare
v3.0.0-beta.106 Pre-release
Pre-release

v3.0.0-beta.106 (2024-09-15)

🐛 Bug Fixes

🤝 Contributors

v3.0.0-beta.105

15 Sep 02:45
8fc2c43
Compare
Choose a tag to compare
v3.0.0-beta.105 Pre-release
Pre-release

v3.0.0-beta.105 (2024-09-15)

⚡ Performance

  • upgrade ajv, and upgrade typescript to 5.6.2 in monorepo (#8204) (fbc28b0)
  • upgrade jsonwebtoken from 9.0.1 to 9.0.2 (#8202) (ec624bd)

🐛 Bug Fixes

  • plugin-seo: removes duplicative json translations (#8206) (64f2395)
  • error when viewing versions if plural label is set as a function (#8213) (ff1c1e0)
  • richtext-lexical: default Cell not being a link when used as the primary column in lists (#8212) (d0bb1c9)
  • ui: field type being overridden when providing a Cell component (#8211) (1608150)
  • db-postgres: preserve parent createdAt when creating a new version (#8160) (43a9109)
  • richtext-lexical: unnecessary isEnabled computations on toolbar items (#8176) (334f940)
  • graphql: id field non null (#8169) (db29e1e)
  • ui: bulk selection and useSelection hook losing types of the IDs its returning (#8194) (d28d40c)
  • ui: properly extracts label from field in FieldLabel component (#8190) (a6f13f7)
  • requires client field prop in server field components (#8188) (c28618b)

⚠️ BREAKING CHANGES

  • ui: bulk selection and useSelection hook losing types of the IDs its returning (#8194) (d28d40c)

This PR changes the type of selected returned from the useSelection
hook from the SelectionProvider from an object to a Map.

This fixes a bug where in some situations we lose the type of the ID
which can break data entry when using postgres, due to keys being cast
to strings inside of objects which doesn't happen when using a Map.

This PR also fixes a CSS bug with the checkbox when it should be
partially selected.

// before
selected: Record<number | string, boolean>

// after
selected: Map<number | string, boolean>

This means you now need to read the data differently than before.

// before
Object.entries(selected).forEach(([key, value]) => {
  // do something
})

// after
for (const [key, value] of selected) {
  // do something
}

🤝 Contributors

v3.0.0-beta.104

12 Sep 13:10
dbf2301
Compare
Choose a tag to compare
v3.0.0-beta.104 Pre-release
Pre-release

v3.0.0-beta.104 (2024-09-12)

🚀 Features

  • passes client field config to server components (#8166) (8b30701)
  • document drawer controls (#7679) (51bc8b4)
  • drizzle: add support for in and not_in operators on json field (#8148) (ec37307)

🐛 Bug Fixes

  • ui: properly retrieves singular labels for array field rows (#8171) (6e94884)
  • templates: website media staticDir to public folder (#8175) (9561aa3)
  • properly names BlocksField and related types (#8174) (465e47a)
  • cpa: match vercel postgres db type with package name (#8141) (043bf95)
  • ui: fix row width bug (#7940) (cd734b0)
  • ui: set max-width for row (efe17ff)

⚠️ BREAKING CHANGES

  • properly names BlocksField and related types (#8174) (465e47a)

    The BlockField type is not representative of the underlying "blocks"
    field type, which is plural, i.e. BlocksField. This is a semantic
    change that will better align the type with the field.

    Breaking Changes

    Types related to the blocks field have change names. If you were using
    the BlockField or related types in your own applications, simply
    change the import name to be plural and instead of singular.

    Old (singular):

    import type {
      BlockField,
      BlockFieldClient,
      BlockFieldValidation,
      BlockFieldDescriptionClientComponent,
      BlockFieldDescriptionServerComponent,
      BlockFieldErrorClientComponent,
      BlocksFieldErrorServerComponent,
      BlockFieldLabelClientComponent,
      BlockFieldLabelServerComponent,
    } from 'payload'

    New (plural):

    import type {
      BlocksField,
      BlocksFieldClient,
      BlocksFieldValidation,
      BlocksFieldDescriptionClientComponent,
      BlocksFieldDescriptionServerComponent,
      BlocksFieldErrorClientComponent,
      BlocksFieldErrorServerComponent,
      BlocksFieldLabelClientComponent,
      BlocksFieldLabelServerComponent,
    } from 'payload'

🤝 Contributors

v3.0.0-beta.103

11 Sep 13:10
6e61431
Compare
Choose a tag to compare
v3.0.0-beta.103 Pre-release
Pre-release

v3.0.0-beta.103 (2024-09-11)

🚀 Features

  • examples: adds custom components example (#8162) (8fe6ffd)

🐛 Bug Fixes

  • useAsTitle validation now accounts for default and base fields (#8165) (663e511)
  • next: set the user data before redirect after login (#8135) (0118bce)
  • upload.defParamCharset: utf8 by default (#8157) (a234092)
  • richtext-lexical: hover style of the button to remove blocks (#8154) (281c80d)
  • extends server props onto field component types (#8155) (12a30a0)
  • db-postgres: querying on array wtihin a relationship field (#8152) (0c563eb)

🤝 Contributors