[useFormState] Allow sync actions (#27571)

Updates useFormState to allow a sync function to be passed as an action.

A form action is almost always async, because it needs to talk to the
server. But since we support client-side actions, too, there's no reason
we can't allow sync actions, too.

I originally chose not to allow them to keep the implementation simpler
but it's not really that much more complicated because we already
support this for actions passed to startTransition. So now it's
consistent: anywhere an action is accepted, a sync client function is a
valid input.
This commit is contained in:
Andrew Clark authored and GitHub committed 2023-10-31 23:32:31 -04:00
1 parent 08a39539fc
commit 77c4ac2ce8
31 files changed
+668 -472

No files matched your search

+1 -1
View File
@@ -13,7 +13,7 @@
* { 0: 'MUCH ERROR', 1: 'SUCH WRONG' }
*/
function invertObject(targetObj) {
const result /*: {[string]: string} */ = {};
const result = {};
const mapKeys = Object.keys(targetObj);
// eslint-disable-next-line no-for-of-loops/no-for-of-loops