diff --git a/.changeset/brown-pumpkins-knock.md b/.changeset/brown-pumpkins-knock.md
new file mode 100644
index 00000000000..3cfc9e06339
--- /dev/null
+++ b/.changeset/brown-pumpkins-knock.md
@@ -0,0 +1,5 @@
+---
+"@aws-amplify/ui-react": patch
+---
+
+fix(React/Authenticator): clicking on currently active tab no longer switches to the wrong tab
diff --git a/docs/next-env.d.ts b/docs/next-env.d.ts
index 4f11a03dc6c..a4a7b3f5cfa 100644
--- a/docs/next-env.d.ts
+++ b/docs/next-env.d.ts
@@ -2,4 +2,4 @@
///
// NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.
+// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.
diff --git a/packages/react/src/components/Authenticator/shared/SignInSignUpTabs.tsx b/packages/react/src/components/Authenticator/shared/SignInSignUpTabs.tsx
index 5fd7bfe1a2f..fb0f01bd559 100644
--- a/packages/react/src/components/Authenticator/shared/SignInSignUpTabs.tsx
+++ b/packages/react/src/components/Authenticator/shared/SignInSignUpTabs.tsx
@@ -32,7 +32,11 @@ export const SignInSignUpTabs = ({
(route === 'signIn' ? toSignUp() : toSignIn())}
+ onValueChange={(newRoute) => {
+ if (newRoute !== route) {
+ newRoute === 'signIn' ? toSignIn() : toSignUp();
+ }
+ }}
>
{getSignInTabText()}