nimuli/app/Livewire/Modals/DeleteAccount.php

48 lines
1.0 KiB
PHP

<?php
namespace App\Livewire\Modals;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;
use Illuminate\View\View;
use Livewire\Attributes\Validate;
use LivewireUI\Modal\ModalComponent;
class DeleteAccount extends ModalComponent
{
#[Validate('required')]
public string $password = '';
public function delete(): void
{
$this->validate();
$user = Auth::user();
if (! Hash::check($this->password, $user->password)) {
throw ValidationException::withMessages([
'password' => __('auth.password'),
]);
}
Auth::logout();
$user->delete();
session()->invalidate();
session()->regenerateToken();
$this->redirect('/', navigate: false);
}
public static function modalMaxWidth(): string
{
return 'sm';
}
public function render(): View
{
return view('livewire.modals.delete-account');
}
}