From 32a29922da199904722ff304e4d9d3c048ca044d Mon Sep 17 00:00:00 2001 From: Jan Potoms <2109932+Janpot@users.noreply.github.com> Date: Tue, 1 Nov 2022 00:30:40 -0700 Subject: [PATCH] [base] Avoid calling setstate during renders (#34916) --- .../src/FormControlUnstyled/FormControlUnstyled.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/mui-base/src/FormControlUnstyled/FormControlUnstyled.tsx b/packages/mui-base/src/FormControlUnstyled/FormControlUnstyled.tsx index cef6cac4b0e5e1..13468bcb940ad2 100644 --- a/packages/mui-base/src/FormControlUnstyled/FormControlUnstyled.tsx +++ b/packages/mui-base/src/FormControlUnstyled/FormControlUnstyled.tsx @@ -94,10 +94,10 @@ const FormControlUnstyled = React.forwardRef(function FormControlUnstyled< const filled = hasValue(value); - const [focused, setFocused] = React.useState(false); - if (disabled && focused) { - setFocused(false); - } + const [focusedState, setFocused] = React.useState(false); + const focused = focusedState && !disabled; + + React.useEffect(() => setFocused((isFocused) => (disabled ? false : isFocused)), [disabled]); const ownerState: FormControlUnstyledOwnerState = { ...props,