fix(calendar): remove setState call from render in isFormValid
validateUrl() calls setUrlError() — calling it during render triggers React error #301 (cannot update component while rendering). Remove it from the isFormValid computation; onChange/onBlur already keep urlError in sync so !urlError is sufficient. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -94,13 +94,14 @@ export function CalendarSourceForm({
|
||||
}
|
||||
}, [t]);
|
||||
|
||||
// Form is valid when name, type, and url are filled and url is https
|
||||
// Form is valid when name, type, and url are filled and url passed validation.
|
||||
// Do NOT call validateUrl here — it calls setUrlError which is a state update
|
||||
// during render (React error #301). onChange/onBlur already set urlError.
|
||||
const isFormValid =
|
||||
name.trim() !== '' &&
|
||||
type !== '' &&
|
||||
url.trim() !== '' &&
|
||||
!urlError &&
|
||||
validateUrl(url);
|
||||
!urlError;
|
||||
|
||||
const handleSubmit = useCallback(
|
||||
async (e: React.FormEvent) => {
|
||||
|
||||
Reference in New Issue
Block a user