You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
112 lines
3.5 KiB
112 lines
3.5 KiB
<script setup> |
|
import InputError from '@/Components/InputError.vue'; |
|
import InputLabel from '@/Components/InputLabel.vue'; |
|
import PrimaryButton from '@/Components/PrimaryButton.vue'; |
|
import TextInput from '@/Components/TextInput.vue'; |
|
import { Link, useForm, usePage } from '@inertiajs/vue3'; |
|
|
|
defineProps({ |
|
mustVerifyEmail: { |
|
type: Boolean, |
|
}, |
|
status: { |
|
type: String, |
|
}, |
|
}); |
|
|
|
const user = usePage().props.auth.user; |
|
|
|
const form = useForm({ |
|
name: user.name, |
|
email: user.email, |
|
}); |
|
</script> |
|
|
|
<template> |
|
<section> |
|
<header> |
|
<h2 class="text-lg font-medium text-textColor-900"> |
|
Profile Information |
|
</h2> |
|
|
|
<p class="mt-1 text-sm text-textColor-600"> |
|
Update your account's profile information and email address. |
|
</p> |
|
</header> |
|
|
|
<form |
|
@submit.prevent="form.patch(route('profile.update'))" |
|
class="mt-6 space-y-6" |
|
> |
|
<div> |
|
<InputLabel for="name" value="Name" /> |
|
|
|
<TextInput |
|
id="name" |
|
type="text" |
|
class="mt-1 block w-full" |
|
v-model="form.name" |
|
required |
|
autofocus |
|
autocomplete="name" |
|
/> |
|
|
|
<InputError class="mt-2" :message="form.errors.name" /> |
|
</div> |
|
|
|
<div> |
|
<InputLabel for="email" value="Email" /> |
|
|
|
<TextInput |
|
id="email" |
|
type="email" |
|
class="mt-1 block w-full" |
|
v-model="form.email" |
|
required |
|
autocomplete="username" |
|
/> |
|
|
|
<InputError class="mt-2" :message="form.errors.email" /> |
|
</div> |
|
|
|
<div v-if="mustVerifyEmail && user.email_verified_at === null"> |
|
<p class="mt-2 text-sm text-textColor-800"> |
|
Your email address is unverified. |
|
<Link |
|
:href="route('verification.send')" |
|
method="post" |
|
as="button" |
|
class="rounded-md text-sm text-textColor-600 underline hover:text-textColor-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" |
|
> |
|
Click here to re-send the verification email. |
|
</Link> |
|
</p> |
|
|
|
<div |
|
v-show="status === 'verification-link-sent'" |
|
class="mt-2 text-sm font-medium text-green-600" |
|
> |
|
A new verification link has been sent to your email address. |
|
</div> |
|
</div> |
|
|
|
<div class="flex items-center gap-4"> |
|
<PrimaryButton :disabled="form.processing">Save</PrimaryButton> |
|
|
|
<Transition |
|
enter-active-class="transition ease-in-out" |
|
enter-from-class="opacity-0" |
|
leave-active-class="transition ease-in-out" |
|
leave-to-class="opacity-0" |
|
> |
|
<p |
|
v-if="form.recentlySuccessful" |
|
class="text-sm text-textColor-600" |
|
> |
|
Saved. |
|
</p> |
|
</Transition> |
|
</div> |
|
</form> |
|
</section> |
|
</template>
|
|
|