Give each React screen its own fetch
Do not lift the whole record into context so every screen can read it.
Internal tools get slower to change when every screen reads one global object. The object becomes a cache, and nobody is responsible for it being fresh.
A list is a filter
A queue screen is a status, an assignee, and a time. Opening a row opens the record that already exists. Do not add a second "start" flow that copies the record. The list and the detail view are two queries over the same table, which only works if the list query stays small.
Do not recompute on the client
If a server already computed a score, the screen shows that score and the inputs a person may correct. It posts the correction. The server computes again. The screen reloads. The browser does not redo the math. If the two disagree, the person will trust the number on the glass.
Keep the previous payload on screen until the new one arrives. Clearing the form on save makes a successful save look like a discard.
Refetch the screen that is open
A shared client can attach the auth header and map errors. It should not store the record. When a socket event says the row changed, the screen that is open refetches. The others do not.
Use one component library for the controls. Two sources of button styles is how two actions end up with different disabled behavior.
Topics React