When running the Payload admin panel on a machine with a slower CPU, form state lags significantly and can become nearly unusable or even crash when interacting with the document's `useAsTitle` field. Here's an example: https://github.com/user-attachments/assets/3535fa99-1b31-4cb6-b6a8-5eb9a36b31b7 #### Why this happens The reason for this is that entire React component trees are re-rendering on every keystroke of the `useAsTitle` field, twice over. Here's a breakdown of the flow: 1. First, we dispatch form state events to the form context. Only the components that are subscribed to form state re-render when this happens (good). 2. Then, we sync the `useAsTitle` field to the document info provider, which lives outside the form. Regardless of whether its children need to be aware of the document title, all components subscribed to the document info context will re-render (there are many, including the form itself). Given how far up the rendering tree the document info provider is, its rendering footprint, and the rate of speed at which these events are dispatched, this is resource intensive. #### What is the fix The fix is to isolate the document's title into it's own context. This way only the components that are subscribed to specifically this context will re-render as the title changes. Here's the same test with the same CPU throttling, but no lag: https://github.com/user-attachments/assets/c8ced9b1-b5f0-4789-8d00-a2523d833524
Payload SEO Plugin
A plugin for Payload to manage SEO metadata from within your admin panel.
If you're using version 2.0.0 or higher of this plugin, you'll need to be using version 2.7.0 or higher of Payload.
If you're still on an older payload version, please use version 1.0.15.