Files
neo/frontend/pages/login.vue

61 lines
1.7 KiB
Vue

<script setup lang="ts">
import { LayoutGrid } from 'lucide-vue-next'
import LoginForm from '@/components/LoginForm.vue'
// Skip auth middleware for login page
definePageMeta({
auth: false
})
const { toast } = useToast()
// Check for auth message from cookie
const authMessage = useCookie('authMessage')
onMounted(() => {
if (authMessage.value) {
console.log('Displaying auth message: ' + authMessage.value)
const message = authMessage.value
// Show success toast for logout, error for auth failures
if (message.toLowerCase().includes('logged out')) {
toast.success(message)
} else {
toast.error(message)
}
// Clear the message after displaying
authMessage.value = null
}
})
</script>
<template>
<div class="grid min-h-svh lg:grid-cols-2">
<div class="flex flex-col gap-4 p-6 md:p-10">
<div class="flex justify-center gap-2 md:justify-start">
<NuxtLink to="/" class="flex items-center gap-2 font-medium">
<div
class="bg-primary text-primary-foreground flex size-6 items-center justify-center rounded-md"
>
<LayoutGrid class="size-4" />
</div>
Neo Platform
</NuxtLink>
</div>
<div class="flex flex-1 items-center justify-center">
<div class="w-full max-w-xs">
<LoginForm />
</div>
</div>
</div>
<div class="bg-muted relative hidden lg:block">
<img
src="https://images.unsplash.com/photo-1486312338219-ce68d2c6f44d?w=1200&auto=format&fit=crop&q=80"
alt="Login cover"
class="absolute inset-0 h-full w-full object-cover dark:brightness-[0.2] dark:grayscale"
/>
</div>
</div>
</template>