When the edit modal was opened from /companies or /directors (the
list pages) and the user saved, the modal called
onAfterSave={() => {}} — an empty handler. The modal also fired
qc.invalidateQueries(['pb-list', collection]), but the list
page's queryKey is ['companies', ...] (or ['directors', ...]),
not ['pb-list', ...]. So the list page never re-fetched.
Result: stale row data persisted in the list state. Re-opening
the modal showed the original values, making it look like the
save hadn't taken effect (it had — the data was in PB; the list
just didn't know about it).
Fix: wire onAfterSave to the existing refreshAll() helper in
both list pages so the list refetches from PB and the local
editingCompany/editingDirector state stays in sync.