From a3e9466dfeea700696211533a3570bc48d7bc3d3 Mon Sep 17 00:00:00 2001 From: Ricky Date: Wed, 30 Apr 2025 10:18:55 -0400 Subject: [PATCH 1/2] fix action pattern in useTransition / useOptimistic (#7796) * fix action pattern in useOptimistic * update useTransition too --- src/content/reference/react/useOptimistic.md | 14 +++--- src/content/reference/react/useTransition.md | 49 +++++++++++++------- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/content/reference/react/useOptimistic.md b/src/content/reference/react/useOptimistic.md index 54c3dbcd06..b69a532f05 100644 --- a/src/content/reference/react/useOptimistic.md +++ b/src/content/reference/react/useOptimistic.md @@ -74,7 +74,9 @@ function Thread({ messages, sendMessageAction }) { function formAction(formData) { addOptimisticMessage(formData.get("message")); formRef.current.reset(); - sendMessageAction(formData); + startTransition(async () => { + await sendMessageAction(formData); + }); } const [optimisticMessages, addOptimisticMessage] = useOptimistic( messages, @@ -108,12 +110,10 @@ export default function App() { const [messages, setMessages] = useState([ { text: "Hello there!", sending: false, key: 1 } ]); - function sendMessageAction(formData) { - startTransition(async () => { - const sentMessage = await deliverMessage(formData.get("message")); - startTransition(() => { - setMessages((messages) => [{ text: sentMessage }, ...messages]); - }) + async function sendMessageAction(formData) { + const sentMessage = await deliverMessage(formData.get("message")); + startTransition(() => { + setMessages((messages) => [{ text: sentMessage }, ...messages]); }) } return ; diff --git a/src/content/reference/react/useTransition.md b/src/content/reference/react/useTransition.md index 6b7c511e7c..e891466b21 100644 --- a/src/content/reference/react/useTransition.md +++ b/src/content/reference/react/useTransition.md @@ -77,8 +77,8 @@ function SubmitButton({ submitAction }) {