PhaseWeb3-Vue/.laravel-guide/resources/js/Pages/Auth/UserLogin.vue
Auron 564087f658
Some checks are pending
Build / build (push) Waiting to run
Update dependancies, move tailwind to V4 (SoftieTechCat)
Initial move to tailwind V4. breaks a couple things visually, a few animations are off, mostly working though.
2025-07-29 20:46:12 -04:00

116 lines
3.1 KiB
Vue

<script setup>
import { useForm, Head, Link } from "@inertiajs/vue3";
import { mdiAccount, mdiAsterisk } from "@mdi/js";
import LayoutGuest from "@/layouts/LayoutGuest.vue";
import SectionFullScreen from "@/components/SectionFullScreen.vue";
import CardBox from "@/components/CardBox.vue";
import FormCheckRadioGroup from "@/components/FormCheckRadioGroup.vue";
import FormField from "@/components/FormField.vue";
import FormControl from "@/components/FormControl.vue";
import BaseDivider from "@/components/BaseDivider.vue";
import BaseButton from "@/components/BaseButton.vue";
import BaseButtons from "@/components/BaseButtons.vue";
import FormValidationErrors from "@/components/FormValidationErrors.vue";
import NotificationBarInCard from "@/components/NotificationBarInCard.vue";
import BaseLevel from "@/components/BaseLevel.vue";
const props = defineProps({
canResetPassword: Boolean,
status: {
type: String,
default: null,
},
});
const form = useForm({
email: "",
password: "",
remember: [],
});
const submit = () => {
form
.transform((data) => ({
...data,
remember: form.remember && form.remember.length ? "on" : "",
}))
.post(route("login"), {
onFinish: () => form.reset("password"),
});
};
</script>
<template>
<LayoutGuest>
<Head title="Login" />
<SectionFullScreen v-slot="{ cardClass }" bg="purplePink">
<CardBox :class="cardClass" is-form @submit.prevent="submit">
<FormValidationErrors />
<NotificationBarInCard v-if="status" color="info">
{{ status }}
</NotificationBarInCard>
<FormField
label="Email"
label-for="email"
help="Please enter your email"
>
<FormControl
id="email"
v-model="form.email"
:icon="mdiAccount"
autocomplete="email"
type="email"
required
/>
</FormField>
<FormField
label="Password"
label-for="password"
help="Please enter your password"
>
<FormControl
id="password"
v-model="form.password"
:icon="mdiAsterisk"
type="password"
autocomplete="current-password"
required
/>
</FormField>
<FormCheckRadioGroup
v-model="form.remember"
name="remember"
:options="{ remember: 'Remember' }"
/>
<BaseDivider />
<BaseLevel>
<BaseButtons>
<BaseButton
type="submit"
color="info"
label="Login"
:class="{ 'opacity-25': form.processing }"
:disabled="form.processing"
/>
<BaseButton
v-if="canResetPassword"
route-name="password.request"
color="info"
outline
label="Remind"
/>
</BaseButtons>
<Link :href="route('register')"> Register </Link>
</BaseLevel>
</CardBox>
</SectionFullScreen>
</LayoutGuest>
</template>