fix: Make Register links properly navigate to registration form
- Initialize isRegistering state from URL query parameter (mode=register) - Update URL when toggling between login/register modes for shareable links - Remove duplicate useRoute() calls in login/register handlers - Ensures all Register buttons throughout the app show the registration form This fixes the issue where Register links navigated to /login?mode=register but the login page ignored the mode parameter and showed the login form instead. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -169,6 +169,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
const route = useRoute()
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
const username = ref('')
|
const username = ref('')
|
||||||
const password = ref('')
|
const password = ref('')
|
||||||
const confirmPassword = ref('')
|
const confirmPassword = ref('')
|
||||||
@@ -177,7 +180,9 @@ const firstName = ref('')
|
|||||||
const lastName = ref('')
|
const lastName = ref('')
|
||||||
const error = ref('')
|
const error = ref('')
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const isRegistering = ref(false)
|
|
||||||
|
// Initialize from URL query parameter
|
||||||
|
const isRegistering = ref(route.query.mode === 'register')
|
||||||
|
|
||||||
const passwordRequirements = computed(() => ({
|
const passwordRequirements = computed(() => ({
|
||||||
minLength: password.value.length >= 8,
|
minLength: password.value.length >= 8,
|
||||||
@@ -206,6 +211,15 @@ function toggleMode() {
|
|||||||
email.value = ''
|
email.value = ''
|
||||||
firstName.value = ''
|
firstName.value = ''
|
||||||
lastName.value = ''
|
lastName.value = ''
|
||||||
|
|
||||||
|
// Update URL to reflect mode
|
||||||
|
const query = { ...route.query }
|
||||||
|
if (isRegistering.value) {
|
||||||
|
query.mode = 'register'
|
||||||
|
} else {
|
||||||
|
delete query.mode
|
||||||
|
}
|
||||||
|
router.replace({ query })
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleLogin() {
|
async function handleLogin() {
|
||||||
@@ -223,7 +237,6 @@ async function handleLogin() {
|
|||||||
|
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
// Check if there's a redirect parameter
|
// Check if there's a redirect parameter
|
||||||
const route = useRoute()
|
|
||||||
const redirect = route.query.redirect as string
|
const redirect = route.query.redirect as string
|
||||||
await navigateTo(redirect || '/')
|
await navigateTo(redirect || '/')
|
||||||
}
|
}
|
||||||
@@ -265,7 +278,6 @@ async function handleRegister() {
|
|||||||
|
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
// Check if there's a redirect parameter
|
// Check if there's a redirect parameter
|
||||||
const route = useRoute()
|
|
||||||
const redirect = route.query.redirect as string
|
const redirect = route.query.redirect as string
|
||||||
await navigateTo(redirect || '/')
|
await navigateTo(redirect || '/')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user