diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 8b79ea1..dacc501 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -19,11 +19,15 @@ class AuthController extends Controller $authUser = User::updateOrCreate( [ 'email' => $user->getEmail() ], - [ 'name' => $user->getName() ] ); if ($authUser) { + if ($authUser->name == '') + { + $authUser->name = $user->getName(); + $authUser->save(); + } Auth::login($authUser); return redirect('/'); } diff --git a/app/Livewire/App/Icon.php b/app/Livewire/App/Icon.php index 1b48b52..452a538 100644 --- a/app/Livewire/App/Icon.php +++ b/app/Livewire/App/Icon.php @@ -6,6 +6,8 @@ use Livewire\Component; class Icon extends Component { + public string $family = 'classic'; + public string $variant = 'light'; public string $name = 'paw-simple'; public string $label = ''; public string $style = ''; diff --git a/app/Livewire/Pages/Profile.php b/app/Livewire/Pages/Profile.php index cb3d29a..3bda18d 100644 --- a/app/Livewire/Pages/Profile.php +++ b/app/Livewire/Pages/Profile.php @@ -4,6 +4,7 @@ namespace App\Livewire\Pages; use App\Models\User; use Illuminate\Support\Facades\Auth; +use Illuminate\Validation\Rule; use Livewire\Attributes\Validate; use Livewire\Component; use Livewire\WithFileUploads; @@ -14,15 +15,39 @@ class Profile extends Component public User $user; - #[Validate('image|max:10240')] public $avatar = null; + public string $name = ''; + + public function mount(User $user) + { + $this->user = $user; + $this->name = $user->name; + } public function render() { return view('livewire.pages.profile')->title($this->user->name); } - public function updated() + public function rules() + { + return [ + 'avatar' => [ + 'nullable', + 'image', + 'max:10240', + ], + 'name' => [ + 'required', + 'string', + 'min:2', + 'max:40', + Rule::unique('users', 'name')->ignore($this->user), + ], + ]; + } + + public function updated($name, $value) { if (Auth::id() != $this->user->id) { @@ -31,10 +56,16 @@ class Profile extends Component $this->validate(); - $this->user->avatarExt = $this->avatar->getClientOriginalExtension(); - $this->user->save(); + $this->user->update([ $name => $value ]); + + if (isset($this->avatar)) + { + $this->user->avatarExt = $this->avatar->getClientOriginalExtension(); + $this->user->save(); + + $this->avatar->storeAs('avatars', $this->user->id); + return $this->redirect("/profiles/{$this->user->id}"); + } - $this->avatar->storeAs('avatars', $this->user->id); - return $this->redirect("/profiles/{$this->user->id}"); } } diff --git a/package-lock.json b/package-lock.json index 6b923e4..0cd0e05 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "photos", + "name": "nyaabooru", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/resources/views/livewire/app/footer.blade.php b/resources/views/livewire/app/footer.blade.php index 37e07d3..5805df4 100644 --- a/resources/views/livewire/app/footer.blade.php +++ b/resources/views/livewire/app/footer.blade.php @@ -7,6 +7,8 @@ © 2025 NyaaStudios; All rights reserved.
- + + +
diff --git a/resources/views/livewire/app/icon.blade.php b/resources/views/livewire/app/icon.blade.php index cb598a6..8851daa 100644 --- a/resources/views/livewire/app/icon.blade.php +++ b/resources/views/livewire/app/icon.blade.php @@ -1,6 +1,7 @@ +> + + diff --git a/resources/views/livewire/app/user-card.blade.php b/resources/views/livewire/app/user-card.blade.php index f2cb83e..faea6e0 100644 --- a/resources/views/livewire/app/user-card.blade.php +++ b/resources/views/livewire/app/user-card.blade.php @@ -1,13 +1,11 @@ - + diff --git a/resources/views/livewire/pages/profile.blade.php b/resources/views/livewire/pages/profile.blade.php index 7b1e67e..a325a43 100644 --- a/resources/views/livewire/pages/profile.blade.php +++ b/resources/views/livewire/pages/profile.blade.php @@ -23,10 +23,21 @@

User settings

-