diff --git a/app/Livewire/User/Profile.php b/app/Livewire/User/Profile.php new file mode 100644 index 0000000..648ef7c --- /dev/null +++ b/app/Livewire/User/Profile.php @@ -0,0 +1,26 @@ +user()->follow($user); + } + + public function unfollowUser(User $user) + { + auth()->user()->unfollow($user); + } +} diff --git a/app/Livewire/UserStack.php b/app/Livewire/UserStack.php index e0b8b46..2dbebd0 100644 --- a/app/Livewire/UserStack.php +++ b/app/Livewire/UserStack.php @@ -2,6 +2,7 @@ namespace App\Livewire; +use App\Models\User; use Illuminate\Support\Facades\Auth; use Livewire\Component; @@ -25,8 +26,13 @@ class UserStack extends Component $this->viewAll = ! $this->viewAll; } - public function followUser($user) + public function followUser(User $user) { - $user->followers->syncWithoutDetaching(Auth::id()); + Auth::user()->follow($user); + } + + public function unfollowUser(User $user) + { + Auth::user()->unfollow($user); } } diff --git a/app/Models/User.php b/app/Models/User.php index a48cd1a..2401b3a 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -69,6 +69,7 @@ class User extends Authenticatable implements MustVerifyEmail public function isFollowing(User|int $user): bool { $userId = $user instanceof User ? $user->id : $user; + return $this->following()->where('following_id', $userId)->exists(); } diff --git a/resources/views/livewire/user-stack.blade.php b/resources/views/livewire/user-stack.blade.php index 0bff890..7f4a834 100644 --- a/resources/views/livewire/user-stack.blade.php +++ b/resources/views/livewire/user-stack.blade.php @@ -33,10 +33,12 @@ @endif + {{-- view all dialog --}}

{{$user->name}}'s {{$label}}

+
@foreach($users as $user) @@ -44,16 +46,36 @@
{{$user->name}} -
- {{$user->name}} + +
+ {{$user->name}} {{__("Member Since")}} {{ $user->created_at->format("M d, h:m a") }}
- @endforeach
diff --git a/resources/views/livewire/user/profile.blade.php b/resources/views/livewire/user/profile.blade.php new file mode 100644 index 0000000..2d4f4e7 --- /dev/null +++ b/resources/views/livewire/user/profile.blade.php @@ -0,0 +1,81 @@ +
+
+ profile cover photo of {{ $user->name }} +
+
+
+
+ profile photo of {{ $user->name }} +
+
+
+

{{ $user->name }}

+

{{__("Member Since")}} {{ $user->created_at->format("M d, h:m a") }}

+
+ + @if(auth()->check()) + @if(auth()->id() != $user->id) + @if(auth()->user()->isFollowing($user)) +
+ +
+ @else +
+ +
+ @endif + @endif +
+ +
+ @endif +
+
+ +
+
+
+ {{-- column 1 placeholder --}} +
+
+
+ +
+
+ +
+
+
+
diff --git a/resources/views/user/show.blade.php b/resources/views/user/show.blade.php index 8233df5..99917e8 100644 --- a/resources/views/user/show.blade.php +++ b/resources/views/user/show.blade.php @@ -1,85 +1,3 @@ - -
-
- profile cover photo of {{ $user->name }} -
-
-
-
- profile photo of {{ $user->name }} -
-
-
-

{{ $user->name }}

-

{{__("Member Since")}} {{ $user->created_at->format("M d, h:m a") }}

-
- - @if(auth()->check()) - @if(auth()->id() != $user->id) - @if(auth()->user()->isFollowing($user)) -
- -
- @else -
- -
- @endif - @endif -
- -
- @endif -
-
- -
-
-
- {{-- column 1 placeholder --}} -
-
-
- @livewire('user-stack', ['label' => 'Followers', 'users' => $user->followers]) -
-
- @livewire('user-stack', ['label' => 'Following', 'users' => $user->following]) -
-
-
-
+ @livewire('user.profile', ['user' => $user])