171 lines
6.9 KiB
PHP
171 lines
6.9 KiB
PHP
<section>
|
|
<header>
|
|
<h2 class="text-lg font-medium text-gray-900">
|
|
{{ __('Profile Information') }}
|
|
</h2>
|
|
|
|
<p class="mt-1 text-sm text-gray-600">
|
|
{{ __("Update your account's profile information and email address.") }}
|
|
</p>
|
|
</header>
|
|
|
|
<form id="send-verification" method="post" action="{{ route('verification.send') }}">
|
|
@csrf
|
|
</form>
|
|
|
|
<form method="post" action="{{ route('profile.update') }}" class="mt-6 space-y-6" enctype="multipart/form-data">
|
|
@if ($user->profilePhotoUrl())
|
|
<div class="flex items-center space-x-4">
|
|
<img src="{{ $user->profilePhotoUrl() }}" alt="{{ __('Profile photo for :name', ['name' => $user->name]) }}" class="h-16 w-16 rounded-full object-cover">
|
|
<p class="text-sm text-gray-600">{{ __('This is your current profile photo.') }}</p>
|
|
</div>
|
|
@endif
|
|
|
|
<div>
|
|
<x-input-label for="profile_photo" :value="__('Profile Photo')" />
|
|
<input
|
|
id="profile_photo"
|
|
name="profile_photo"
|
|
type="file"
|
|
class="mt-1 block w-full text-sm text-gray-900 file:mr-4 file:rounded-md file:border-0 file:bg-indigo-50 file:px-4 file:py-2 file:text-sm file:font-semibold file:text-indigo-700 hover:file:bg-indigo-100"
|
|
accept="image/*"
|
|
/>
|
|
<x-input-error class="mt-2" :messages="$errors->get('profile_photo')" />
|
|
</div>
|
|
|
|
@csrf
|
|
@method('patch')
|
|
|
|
<div>
|
|
<x-input-label for="name" :value="__('Name')" />
|
|
<x-text-input id="name" name="name" type="text" class="mt-1 block w-full" :value="old('name', $user->name)" required autofocus autocomplete="name" />
|
|
<x-input-error class="mt-2" :messages="$errors->get('name')" />
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="email" :value="__('Email')" />
|
|
<x-text-input id="email" name="email" type="email" class="mt-1 block w-full" :value="old('email', $user->email)" required autocomplete="username" />
|
|
<x-input-error class="mt-2" :messages="$errors->get('email')" />
|
|
|
|
@if ($user instanceof \Illuminate\Contracts\Auth\MustVerifyEmail && ! $user->hasVerifiedEmail())
|
|
<div>
|
|
<p class="text-sm mt-2 text-gray-800">
|
|
{{ __('Your email address is unverified.') }}
|
|
|
|
<button form="send-verification" class="underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
|
{{ __('Click here to re-send the verification email.') }}
|
|
</button>
|
|
</p>
|
|
|
|
@if (session('status') === 'verification-link-sent')
|
|
<p class="mt-2 font-medium text-sm text-green-600">
|
|
{{ __('A new verification link has been sent to your email address.') }}
|
|
</p>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="phone" :value="__('Phone')" />
|
|
<x-text-input
|
|
id="phone"
|
|
name="phone"
|
|
type="text"
|
|
class="mt-1 block w-full"
|
|
:value="old('phone', optional($member)->phone)"
|
|
autocomplete="tel"
|
|
/>
|
|
<x-input-error class="mt-2" :messages="$errors->get('phone')" />
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="address_line_1" :value="__('Address Line 1')" />
|
|
<x-text-input
|
|
id="address_line_1"
|
|
name="address_line_1"
|
|
type="text"
|
|
class="mt-1 block w-full"
|
|
:value="old('address_line_1', optional($member)->address_line_1)"
|
|
/>
|
|
<x-input-error class="mt-2" :messages="$errors->get('address_line_1')" />
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="address_line_2" :value="__('Address Line 2')" />
|
|
<x-text-input
|
|
id="address_line_2"
|
|
name="address_line_2"
|
|
type="text"
|
|
class="mt-1 block w-full"
|
|
:value="old('address_line_2', optional($member)->address_line_2)"
|
|
/>
|
|
<x-input-error class="mt-2" :messages="$errors->get('address_line_2')" />
|
|
</div>
|
|
|
|
<div class="grid gap-4 sm:grid-cols-2">
|
|
<div>
|
|
<x-input-label for="city" :value="__('City')" />
|
|
<x-text-input
|
|
id="city"
|
|
name="city"
|
|
type="text"
|
|
class="mt-1 block w-full"
|
|
:value="old('city', optional($member)->city)"
|
|
/>
|
|
<x-input-error class="mt-2" :messages="$errors->get('city')" />
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="postal_code" :value="__('Postal Code')" />
|
|
<x-text-input
|
|
id="postal_code"
|
|
name="postal_code"
|
|
type="text"
|
|
class="mt-1 block w-full"
|
|
:value="old('postal_code', optional($member)->postal_code)"
|
|
/>
|
|
<x-input-error class="mt-2" :messages="$errors->get('postal_code')" />
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="emergency_contact_name" :value="__('Emergency Contact Name')" />
|
|
<x-text-input
|
|
id="emergency_contact_name"
|
|
name="emergency_contact_name"
|
|
type="text"
|
|
class="mt-1 block w-full"
|
|
:value="old('emergency_contact_name', optional($member)->emergency_contact_name)"
|
|
/>
|
|
<x-input-error class="mt-2" :messages="$errors->get('emergency_contact_name')" />
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="emergency_contact_phone" :value="__('Emergency Contact Phone')" />
|
|
<x-text-input
|
|
id="emergency_contact_phone"
|
|
name="emergency_contact_phone"
|
|
type="text"
|
|
class="mt-1 block w-full"
|
|
:value="old('emergency_contact_phone', optional($member)->emergency_contact_phone)"
|
|
/>
|
|
<x-input-error class="mt-2" :messages="$errors->get('emergency_contact_phone')" />
|
|
</div>
|
|
|
|
<div class="flex items-center gap-4">
|
|
<x-primary-button>{{ __('Save') }}</x-primary-button>
|
|
|
|
@if (session('status') === 'profile-updated')
|
|
<p
|
|
x-data="{ show: true }"
|
|
x-show="show"
|
|
x-transition
|
|
x-init="setTimeout(() => show = false, 2000)"
|
|
class="text-sm text-gray-600"
|
|
>{{ __('Saved.') }}</p>
|
|
@endif
|
|
</div>
|
|
</form>
|
|
</section>
|