Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Payload requires page refresh on BeforeChange hook #9882

Closed
Sibbern opened this issue Dec 11, 2024 · 1 comment · Fixed by #10268
Closed

Payload requires page refresh on BeforeChange hook #9882

Sibbern opened this issue Dec 11, 2024 · 1 comment · Fixed by #10268

Comments

@Sibbern
Copy link

Sibbern commented Dec 11, 2024

Describe the Bug

When creating a beforeChange Collection hook and updating fields it updates them on the server side but the client side does not see the update before you do a full page refresh.

Asked in discord community help: https://discord.com/channels/967097582721572934/1315968241658494988

There's been a similiar issue as of version 3.2.2: (#9423) which should have solved in 3.2.2 but it doesn't seem so.

I've tried 3.4, 3.3, 3.2.2 - still the same outcome.

In the repository link that reproduces this issue I've used version 3.5 and it also gives the same outcome.

Link to the code that reproduces this issue

https://github.com/Sibbern/beforechange-hook-bug

Reproduction Steps

  1. Run pnpm i
  2. Run pnpm dev
  3. Go to the browser url: http://localhost:3000/admin and click on the test location (http://localhost:3000/admin/collections/test?limit=10)
  4. Create a new test record and fill out the title, test1 and test2 fields with "something something" and click save. This will update on the client side on creation and it should show "newdata".
  5. Now try and update the same record with new values "something123" and it should update the fields to "newdata" but it does not - only after a page refresh.

Which area(s) are affected? (Select all that apply)

area: ui

Environment Info

Binaries:
  Node: 20.11.1
  npm: N/A
  Yarn: N/A
  pnpm: 9.7.0
Relevant Packages:
  payload: 3.5.0
  next: 15.0.4
  @payloadcms/db-mongodb: 3.5.0
  @payloadcms/email-nodemailer: 3.5.0
  @payloadcms/graphql: 3.5.0
  @payloadcms/next/utilities: 3.5.0
  @payloadcms/payload-cloud: 3.5.0
  @payloadcms/richtext-lexical: 3.5.0
  @payloadcms/translations: 3.5.0
  @payloadcms/ui/shared: 3.5.0
  react: 19.0.0
  react-dom: 19.0.0
Operating System:
  Platform: win32
  Arch: x64
  Version: Windows 11 Home
  Available memory (MB): 65350
  Available CPU cores: 32
@Sibbern Sibbern added status: needs-triage Possible bug which hasn't been reproduced yet validate-reproduction labels Dec 11, 2024
@Sibbern
Copy link
Author

Sibbern commented Dec 11, 2024

Similar issue on this: #9691

jmikrut added a commit that referenced this issue Jan 3, 2025
Fixes #9882 and #9691

In 2.0, we would accept data coming back from an update operation and
then reflect those changes in UI.

However, in 3.0, we did not do that anymore - meaning you could change a
document with hooks in `beforeChange` or `afterChange`, but then not see
the changes made on the server.

This PR updates the way that `mergeServerFormState` works, and adds a
property to optionally allow values from server form state - which can
then be used in the `onSuccess` form handler which may need to define
new field values.
@github-actions github-actions bot removed the status: needs-triage Possible bug which hasn't been reproduced yet label Jan 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant