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:
2025-11-06 09:12:11 -05:00
parent c7dc88cdf6
commit a8673fa255

View File

@@ -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 || '/')
} }